PyOpenSSL конвертирует объект сертификата в файл .pem - PullRequest
6 голосов
/ 21 марта 2012

Я хочу отправить сертификат из «центра сертификации» на узел через сокеты. У меня есть сертификат, созданный на этом примере https://skippylovesmalorie.wordpress.com/2010/02/12/how-to-generate-a-self-signed-certificate-using-pyopenssl/ Как мне преобразовать это в файл .pem, чтобы я мог отправить его в виде строки через сокет, а затем преобразовать его на другом конце обратно в .pem и использовать get_certificate для извлечения этого сертификата из него. Python: чтение сертификата pkcs12 с помощью pyOpenSSL.crypto Это, вероятно, хакерский способ сделать это, но я хочу упростить это для себя. (или нет)

Я воскрешаю вопрос об этом человеке, на который не был дан ответ Как преобразовать объект PyOpenSSL в строку в кодировке PEM?

1 Ответ

9 голосов
/ 21 марта 2012

Это для генерации запроса на подпись сертификата, но концепция должна быть такой же

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)
...