【问题标题】:PyOpenSSL convert certificate object to .pem filePyOpenSSL 将证书对象转换为 .pem 文件
【发布时间】:2012-04-05 12:05:47
【问题描述】:

我想通过套接字将证书从“证书颁发机构”发送到节点。 我有一个使用此示例创建的证书 https://skippylovesmalorie.wordpress.com/2010/02/12/how-to-generate-a-self-signed-certificate-using-pyopenssl/ 如何将其转换为 .pem 文件,以便我可以通过套接字将其作为字符串发送,然后在另一端将其转换回 .pem 并使用 get_certificate 从中提取此证书。 Python: reading a pkcs12 certificate with pyOpenSSL.crypto 它可能是一种hacky方式,但我想为自己简化它。 (或不)

我正在复活这个问题没有得到回答的人的问题 How to convert PyOpenSSL object to PEM-encoded string?

【问题讨论】:

    标签: python sockets pem pyopenssl


    【解决方案1】:

    这是用于生成证书签名请求,但概念应该相同

    from OpenSSL import crypto
    
    req = crypto.X509Req()
    pkey = crypto.PKey()
    pkey.generate_key(crypto.TYPE_RSA, 2048)
    req.set_pubkey(pkey)
    req.sign(pkey, 'sha1')
    certreq = crypto.dump_certificate_request(crypto.FILETYPE_PEM, req)
    certreq = certreq.replace('-----BEGIN CERTIFICATE REQUEST-----\n', '').replace('-----END CERTIFICATE REQUEST-----\n', '')
    private_key = crypto.dump_privatekey(crypto.FILETYPE_PEM, pkey)
    

    对于您可以使用的证书:

    crypto.dump_certificate(type, cert)
    

    【讨论】:

    • 如果我只使用这一行 root_cert = crypto.load_certificate(crypto.FILETYPE_PEM, certreq) 它将证书转换为我以前的格式?
    • 您知道如何从证书中提取公钥吗? dump_privatekey 有一个功能很好,但我需要类似的东西。 get_pubkey 返回一个我不知道如何转换为公钥的对象 PKey
    • 可能你已经解决了这个问题。你想要的功能是dump_certificate
    猜你喜欢
    • 2010-10-22
    • 2012-03-19
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2021-09-29
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多