0. Introducción
Nos basamos en sslshopper , Serverfault , medium , Digicert
Segun Mkyong java reconoce los formatos JKS o PKCS#12 pero no PEM.
Veamos algunos formatos de certificados
.csr: (Certificate Signing Request) Para pedir certificados a las entidades certificadoras (en adelante CA). Incluye detalles como: "subject, organization, state.." y la clave pública del certificado a firmar. Se firman pot la CA y se devuelve el certificado que es el certificado público (que incluye la clave pública pero no la privada). El certificado devueltopor la CA puede estar en varios formatos.
.pem: (Privacy Enhanced Mail)Es un contenedor. Puede incluir:
- el certificado público ó
- una cadena entera de certificados (clave pública + clave privada + certificados raiz (root)
.key: Suele ser un fichero en formato ".pem" y contiene solo la clave privada de un determinado certificado.
.pkcs12 .pfx .p12 :(Public Key Cryptography Standards PKCS variante 12) Es un contenedor protegido por contraseña que contiene los pares de certificados privados y públicos). Al contrario que los ficheros ".pem" el contenedor está completamente encriptado.
Estos no son tan utilizados:
.der: Advertir que un fichero ".pem" es un ficcero ".der" codificado en Base64.
Para convertir der (.crt .cer .der) a pem:
.cert .cer .crt: Es un certificado ".pem" (a veces ".der") con una extensión distinta (reconocible por Windows Explorer)
.p7b .keystore: (Public Key Cryptography Standards PKCS variante 7). Al contrario que los certificados ".pem", tiene una forma definida de incluir los "certification-path certificates".
.crl: Lista de revocación de certificados. Lo producen las CAs para desautorizar loos certificados a punto de expirar.
Los mas utilizados son PEM, PKCS7, PKCS12 y DER
1. Conversiones
Para convertir de p12 (.pfx .p12) a pem:
openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Para convertir de p12 (.pfx .p12) conteniendo una clave privada y certificados a pem:
openssl pkcs12 -in keystore-to-convert.pfx -out keystore-converted.pem -nodes
Para convertir de p12 (.pfx .p12) a certificado pem(crt.pem) mas clave pem(key.pem) (stackoverflow):
openssl pkcs12 -in keystore-to-convert.pfx -out crt.pem -clcerts -nokeys
openssl pkcs12 -in keystore-to-convert.pfx -out key.pem -nocerts -nodes
Para convertir un certificado pem (.pem .crt) con una clave privada (.key) y la cadena de certificados (.pem .crt) a de p12 (.pfx .p12):
openssl pkcs12 -export -inkey privateKey.key -in cert.crt -certfile CACert.crt -out cert.pfx
Siendo:
privateKey.key: la clave privada
cert.cert : Certificado
CACert: La cadena de certificados de la entidad certificadora
Para convertir un certificado pem (.pem .crt que contiene tanto al certificado como la cadena de certrificados de la entidad certificadora) y una clave privada (.key) a de p12 (.pfx .p12) (Mkyong) con password "1234" :
openssl pkcs12 -export -inkey privateKey.key -in cert.crt -passout pass: 1234 -out cert.pfx
Para convertir der (.crt .cer .der) a pem:
openssl x509 -inform der -in file-to-convert.der -out converted-file.pem
Para convertir pem a der:
openssl x509 -outform der -in file-to-convert.pem -out converted-file.der
Para convertir p12 (PKCS#12 keystore) a jks (java keystore) IBM: OJO: Ver las observaciones!!
keytool -importkeystore -srckeystore <source_keystoreFile> -srcstoretype PKCS12 -destkeystore <destination_keystoreFile> -deststoretype JKS -srcstorepass mysecret -deststorepass mysecret -srcalias myalias -destalias myalias -srckeypass mykeypass -destkeypass mykeypass -noprompt
Para convertir jks (java keystore) a p12 (PKCS#12 keystore) (Baeldung):
keytool -importkeystore -srckeystore jks_keystore.jks -destkeystore keystore.p12 -srcstoretype jks -deststoretype pkcs12
OBSERVACIONES: La herramienta keytool no admite contraseñas con caracteres NO ASCII como ñ, acentos, etc. Por tanto para convertir un certificado en formato p12 con una contraseña como "Cañón", no podemos utilizar keytool. Para ello utilizamos Keystore Explorer
Tras seleccionar el certificado p12, nos pide la contraseña para poder verlo. Le damos "Cañón" en nuestro caso
En el menú Tools > Change Keystore Type > JKS Convertimos de p12 a JKS
Y le damos la misma contraseña (Cañón en nuestro caso.)
Ahora lo guardamos con otro nombre y extensión JKS (File > Save As ) y ya lo tenemos
No hay comentarios :
Publicar un comentario