2012-03-20 76 views
4

我想通过套接字将证书从“证书颁发机构”发送到节点。 我有一个使用此示例创建的证书 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 它可能是一个诡计多端的方式来做到这一点,但我想为自己简化它。 (或没有)PyOpenSSL将证书对象转换为.pem文件

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

回答

7

这是生成证书签名请求,但这个概念应该是一样的

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) 
+0

,如果我只是用这条线 root_cert = crypto.load_证书(crypto.FILETYPE_PEM,certreq)它会将证书转换为我以前的格式? – DustBunny 2012-03-21 14:07:22

+0

我相信是这样。 – turtlebender 2012-03-21 15:05:41

+0

您是否知道我如何从证书中提取公钥? dump_privatekey有一个很好的功能,但我需要类似的东西。 get_pubkey返回一个对象PKey,我不知道如何转换为公钥 – DustBunny 2012-03-21 21:12:48

相关问题