Convertir un certificado *.p12 a *.pem y *.crt
-----------
Crear *.pem
-----------
import tempfile
import OpenSSL.crypto
import base64
t_pem = tempfile.NamedTemporaryFile(
prefix='private_', suffix='.pem', delete=False,
dir='/home/user/certificado/')
p12 = OpenSSL.crypto.load_pkcs12(open('/home/user/certificado/sello_entidad_act.p12', 'rb').read(), 'laclave')
f_pem = open(t_pem.name, 'wb')
f_pem.write(OpenSSL.crypto.dump_privatekey(
OpenSSL.crypto.FILETYPE_PEM, p12.get_privatekey()))
f_pem.close()
------------
Crear *.crt
------------
t_crt = tempfile.NamedTemporaryFile(
prefix='public_', suffix='.crt', delete=False,
dir='/home/user/certificado/')
p12 = OpenSSL.crypto.load_pkcs12(open('/home/user/certificado/sello_entidad_act.p12', 'rb').read(), 'laclave')
f_crt = open(t_crt.name, 'wb')
f_crt.write(OpenSSL.crypto.dump_certificate(
OpenSSL.crypto.FILETYPE_PEM, p12.get_certificate()))
f_crt.close()
==========================
Si no se quiere usar OpenSSL también se puede usar: