在 Python 中生成 CSR

2023-12-07

我正在尝试在 Python 中生成 CSR,而不使用 OpenSSL。如果有人能指出正确的方向,我将非常感激。


我假设你不想使用命令行 openssl 本身,Python 库就可以了。

这是我编写的用于创建 CSR 的辅助函数。它从生成的密钥对和 CSR 中返回私钥。该功能依赖于 pyOpenSSL.crypto。

def create_csr(self, common_name, country=None, state=None, city=None,
               organization=None, organizational_unit=None,
               email_address=None):
    """
    Args:
        common_name (str).

        country (str).

        state (str).

        city (str).

        organization (str).

        organizational_unit (str).

        email_address (str).

    Returns:
        (str, str).  Tuple containing private key and certificate
        signing request (PEM).
    """
    key = OpenSSL.crypto.PKey()
    key.generate_key(OpenSSL.crypto.TYPE_RSA, 2048)

    req = OpenSSL.crypto.X509Req()
    req.get_subject().CN = common_name
    if country:
        req.get_subject().C = country
    if state:
        req.get_subject().ST = state
    if city:
        req.get_subject().L = city
    if organization:
        req.get_subject().O = organization
    if organizational_unit:
        req.get_subject().OU = organizational_unit
    if email_address:
        req.get_subject().emailAddress = email_address

    req.set_pubkey(key)
    req.sign(key, 'sha256')

    private_key = OpenSSL.crypto.dump_privatekey(
        OpenSSL.crypto.FILETYPE_PEM, key)

    csr = OpenSSL.crypto.dump_certificate_request(
               OpenSSL.crypto.FILETYPE_PEM, req)

    return private_key, csr
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Python 中生成 CSR 的相关文章

  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • 通过最小元素比较对 5 个元素进行排序

    我必须在 python 中使用元素之间的最小比较次数来建模对 5 个元素的列表进行排序的执行计划 除此之外 复杂性是无关紧要的 结果是一个对的列表 表示在另一时间对列表进行排序所需的比较 我知道有一种算法可以通过 7 次比较 总是在元素之间
  • PyUSB 1.0:NotImplementedError:此平台不支持或未实现操作

    我刚刚开始使用 pyusb 基本上我正在玩示例代码here https github com walac pyusb blob master docs tutorial rst 我使用的是 Windows 7 64 位 并从以下地址下载 z
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 如何使用Python创建历史时间线

    So I ve seen a few answers on here that helped a bit but my dataset is larger than the ones that have been answered prev
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 每个 X 具有多个 Y 值的 Python 散点图

    我正在尝试使用 Python 创建一个散点图 其中包含两个 X 类别 cat1 cat2 每个类别都有多个 Y 值 如果每个 X 值的 Y 值的数量相同 我可以使用以下代码使其工作 import numpy as np import mat
  • 使用 Python 绘制 2D 核密度估计

    I would like to plot a 2D kernel density estimation I find the seaborn package very useful here However after searching
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • NotImplementedError:无法将符号张量 (lstm_2/strided_slice:0) 转换为 numpy 数组。时间

    张量流版本 2 3 1 numpy 版本 1 20 在代码下面 define model model Sequential model add LSTM 50 activation relu input shape n steps n fe

随机推荐

  • 应该将composer.lock提交给版本控制吗?

    我有点困惑composer lock在带有存储库的应用程序中使用 我看到很多人说我们不应该 gitignore composer lock从存储库中 如果我在我的开发环境中更新我的库 我将有一个新的composer lock但我无法将它们更
  • PowerPoint(或Excel)VBA捕获鼠标点击坐标

    一些背景 简单的背景是 我正处于构建 PowerPoint 加载项的研究阶段 我的最终目标是开发 CAD 尺寸标注插件来帮助加快工程演示的创建 我们必须做大量的 PowerPoint 工程 其中组件的一般尺寸显示在使用 PPT 形状或 CA
  • 通配符 Firebase 查询[重复]

    这个问题在这里已经有答案了 是否可以在我的 Firebase 查询中插入通配符 let query await Firebase db collection lokale where name name get e g let query
  • 如何在 Oracle SQL 中添加约束来限制值? [复制]

    这个问题在这里已经有答案了 如何在oracle中设置一列不接受大于10000且小于0的数字 您正在寻找一个check约束 alter table t add constraint chk t col check col gt 0 and c
  • MSVC++ 编译器错误 C2143

    以下代码摘录导致了一个神秘的 MSVC 编译器错误 template
  • 仅填充猫鼬中的特定字段

    我有一个这样的文档 信息采集 infoType Appointment contact ObjectId 5baa28a3f1268917e9220138 联系方式收藏 name ABC email email protected 我想通过
  • 无服务器框架、typescript、nodejs 和 mysql - 错误:收到的数据包顺序错误

    使用安装的 mysqljs mysql 调用函数时 npm install save dev mysql 我收到以下错误并跟踪 errorMessage RequestId be7822cc 8e1d 11e8 83b8 a1383ecfa
  • 在 ubuntu ARMHF 上使用 mySQL 触发器 WHITOUT sys_exec 调用外部脚本

    我需要从触发器调用外部脚本来拦截数据库中的每个插入 这是因为我无法轮询该值 所以我正在为具有 ARM 架构且只有 250MB RAM 的嵌入式系统进行编码 触发器是正确的选项 并且触发器的代码运行良好 我得到 FUNCTION mydb s
  • android - facebook 处理共享意图的方式 - 如何处理它

    刚刚偶然发现 脸书上的讨论 Android 意图共享已损坏 并了解到 Facebook 在处理共享意图方面的立场是 我们的 FB 应用程序处理意图 因为它是用户在 Facebook 上共享链接 例如您的应用程序 URL 等内容的有效方式 然
  • Google Map V2 Android 地图参考

    我正在尝试为 Android 设置谷歌地图 我看到两个缩放按钮 但没有显示地图 在过去的 6 7 个小时里我一直在努力奋斗 早些时候它显示错误 没有打开 现在它不显示地图
  • memcmp 返回值的大小是什么意思?

    我只是碰巧调试了一个令人难以置信的令人讨厌的错误 在我自己的 PC Windows 7 x64 MinGw 上 我的 C 程序将使用以下命令成功对数组进行排序 memcmp比较数组成员时 我的函数使用冒泡排序算法 它的骨架如下所示 void
  • 具有管理权限的进程在用户登录时运行

    我正在尝试找出如何解决特权获取问题 该应用程序需要桌面访问 因此它不能作为Windows服务执行 它必须创建一个窗口来接收其他进程使用SendMessage发送的消息 它必须用于等待消息确认 该应用程序应在用户登录时启动 并将管理用户会话
  • OpenGL ES 中的大滚动背景

    我正在为 iPhone 开发一款 2D 卷轴游戏 我有一个大图像背景 比如 480 6000 像素 只有一部分可见 正好一个屏幕的大小 480 320 像素 在屏幕上获得这样的背景的最佳方法是什么 目前 我将背景分为多个纹理 以绕过最大纹理
  • 从浏览器执行 HTTP PUT

    我想知道最终的 答案是什么 除了从浏览器进行 POST GET 之外 如何做其他事情 无论是 HTML 表单还是 Ajax 因为我听到关于哪些浏览器允许什么 特别是在 ajax 方面 的混合报告 当以 RESTful 风格构建后端时 最好使
  • Java序列化

    我现在正在学习如何使用进行序列化Java语言 我已经阅读了一些有关该主题的帖子和文档 并且尝试做一个简单的示例 如下 public class SterializeObject implements java io Serializable
  • 获取一系列待处理的承诺

    var arr 1 2 3 4 5 6 67 8 10 function f1 return arr map function member console log member return Promise resolve member
  • Angular 6 在两个不相关的组件之间传递数据

    我有课程详细信息组件 其中包含来自后端应用程序的数据 名为课程 我想将该数据传递给与该组件无关的另一个组件 课程播放 我想在这两个组件中显示从后端获得的相同数据 这是相关文件 应用程序路由模块 import NgModule from an
  • 批处理文件中的字符串替换

    我们可以使用以下命令替换批处理文件中的字符串 set str jump over the chair set str str chair table 这些行工作正常 并将字符串 jump over the chair 更改为 jump ov
  • Google 地图 API 错误:此 API 密钥无权使用此服务或 API。地点 API 错误:ApiTargetBlockedMapError

    我开始从我使用的 CMS 内的 Google 地图小部件收到此错误 This API key is not authorized to use this service or API Places API error ApiTargetBl
  • 在 Python 中生成 CSR

    我正在尝试在 Python 中生成 CSR 而不使用 OpenSSL 如果有人能指出正确的方向 我将非常感激 我假设你不想使用命令行 openssl 本身 Python 库就可以了 这是我编写的用于创建 CSR 的辅助函数 它从生成的密钥对