首页 > 解决方案 > Python,OpenSSL:自签名证书生成

问题描述

from cryptography.hazmat.primitives.asymmetric import rsa   
private_key = rsa.generate_private_key(
            public_exponent=65537,
            key_size=2048,
            backend=default_backend()
        )
public_key = private_key.public_key()

我是密码学的初学者,我使用上面的 python 代码生成了一个私钥和一个公钥。我正在使用公钥来加密密码。
我的问题是,如何使用 openssl 工具使用自签名 X.509 证书对私钥进行密码保护?

标签: pythoncryptography

解决方案


我认为您不需要使用自签名 X.509 证书加密私钥。私钥使用密码短语进行加密。

您可以使用下面的代码片段来实现相同的目的:

from cryptography.hazmat.primitives import serilization

key.private_bytes(encoding=serialization.Encoding.PEM,
                  format = serialization.PrivateFormat.TraditionalOpenSSL,
                  encryption_algorithm = serialization.BestAvailableEncryption(user_pass))

user_pass是您希望用来加密私钥的密码。


推荐阅读