PyOpenSSL将证书对象转换为.pem文件

Dus*_*nny 6 python sockets pyopenssl pem

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

我正在复活这个问题没有回答的问题 如何将PyOpenSSL对象转换为PEM编码的字符串?

tur*_*der 9

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

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)
Run Code Online (Sandbox Code Playgroud)

您可以使用的证书:

crypto.dump_certificate(type, cert)
Run Code Online (Sandbox Code Playgroud)