首页 > 解决方案 > 带有 CA、-ext 和 -config 选项的 Python Cryptogrophy 模块

问题描述

我需要在 python 中重新创建这个 openssl 命令行,并被要求使用密码学模块。它使用扩展文件和配置文件以及使用 CA(不是 X509):

OPENSSL ca -extfile my_extfile.ext -config my_openssl.cnf -startdate $start_date -days $duration -md sha256 -cert $signing_ca -key $pk -in $csr -out $cert -batch

我实际上还没有找到任何关于将 CA 与 pyca/cryptography (仅 X509)一起使用的文档,或者就此而言,也没有找到任何使用密码术指定 ext 和 config 文件的方法。

我查看了 pyOpenSSL,上面写着“如果您将 pyOpenSSL 用于除了建立 TLS 连接之外的任何事情,您应该转向加密并放弃您的 pyOpenSSL 依赖项”。这意味着我应该能够使用密码术运行我的命令,但我很难弄清楚如何去做,所以欢迎任何帮助。

谢谢,马特。

标签: pythonopensslpython-cryptography

解决方案


cryptography与 OpenSSL 的 CLI 命令没有不同的前端。它是它自己的 API,能够使用 OpenSSL(库,而不是 CLI openssl)来执行加密操作。cryptographyX.509 文档包含足以创建 X.509 证书、CRL、CSR 甚至 OCSP 请求/响应对象的信息和示例,但开发人员需要将 OpenSSL 配置文件转换为这些 API 提供的不同编程环境。

您的问题强烈暗示了对这些库是什么以及它们如何工作的基本误解。您可能需要回到提出此请求的人那里,并与他们一起确定您当前的基础架构的功能以及如何使用cryptography或任何其他语言/库最有效地复制它。


推荐阅读