Convertir Certificados - OpenSSL
30 jun 2022
Convertir Certificados - OpenSSL
Conversión de Certificados de un Formato a Otro
Hay varios formatos de archivo diferentes que se pueden usar para contener certificados y sus llaves privadas, cada uno con sus propios beneficios. Las aplicaciones a menudo usan diferentes formatos de archivo, lo que significa que de vez en cuando es posible que deba convertir sus certificados de un formato a otro. Para entender cómo convertir un certificado de un formato a otro, es útil entender cómo identificar los formatos:
- Privacy Enhanced Mail (PEM) – Este es uno de los formatos más comunes que verás, es fácilmente identificable porque siempre comienza y termina con "PEM Armor", este es un encabezado y un pie de página que declara lo que está entre ellos. Por ejemplo:
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
O
-----BEGIN PRIVATE KEY-----
-----END PRIVATE KEY-----
O
-----BEGIN PKCS7-----
-----END PKCS7-----
- PKCS #7 B (P7B) – Este formato es el "Estándar de sintaxis de mensajes criptográficos". Por lo general, contiene una cadena de certificados completa que incluye el certificado raíz, intermedio y de entidad final. Este es el formato que generalmente se agrega a las firmas digitales.
- PKCS #12/PFX/P12 – Este formato es el "Estándar de sintaxis de intercambio de información personal". Un .pfx contendrá una llave privada y su correspondiente llave pública. También puede incluir certificados intermedios y raíz. Los archivos pfx/p12 están protegidos por contraseña. Estos se pueden importar fácilmente para su uso por muchos navegadores y servidores, incluidos OS X Keychain, IIS, Apache Tomcat y más.
- Base64: esta es la codificación estandarizada para archivos .pem, aunque otras extensiones de archivo como .cer y .crt también pueden usar la codificación Base64.
- DER – Reglas de Codificación Distinguidas; este es un formato binario comúnmente utilizado en los certificados X.509.
Si bien todo esto puede ser un poco confuso, afortunadamente OpenSSL puede ayudarlo a pasar de un formato a otro con bastante facilidad. Las plataformas GNU/Linux generalmente están preinstaladas con OpenSSL. Mac OS X también se suministra con OpenSSL preinstalado. Para Windows, hay disponible un instalador de Win32 OpenSSL.
Recuerde, es importante que mantenga su llave privada segura; asegúrese de limitar quién y qué tiene acceso a estas llaves.
Certificados
- Conversión de certificado codificado PEM a DER
openssl x509 -outform der -in certificado.pem -out certificado.der
- Conversión de certificado codificado DER a PEM
openssl x509 -inform der -in certificado.cer -out certificado.pem
- Conversión de certificados codificados PEM a PKCS7 (P7B)
openssl crl2pkcs7 -nocrl -certfile certificado.cer -out certificado.p7b -certfile CACert.cer
- Conversión de PKCS #7 (P7B) a certificados codificados PEM
openssl pkcs7 -print_certs -in certificado.p7b -out certificado.cer
Certificados y Llaves
- Conversión de certificado codificado PEM y llave privada a PKCS #12 / PFX
openssl pkcs12 -export -out certificado.pfx -inkey LlavePrivada.key -in certificado.crt -certfile CACert.crt
- Conversión de PKCS #7 (P7B) y llave privada a PKCS #12 / PFX
openssl pkcs7 -print_certs -in certificado.p7b -out certificado.cer
openssl pkcs12 -export -in certificado.cer -inkey LlavePrivada.key -out certificado.pfx -certfile CACert.cer
- Conversión de PKCS #12 / PFX a PKCS #7 (P7B) y llave privada
openssl pkcs12 -in certificado.pfx -out certificado.cer -nodes