Soy responsable de mantener dos servidores Debian. Cada vez que tengo que hacer algo con certificados de seguridad, busco tutoriales en Google y me alejo hasta que finalmente funciona.
Sin embargo, en mis búsquedas vengo a menudo a través de diferentes formatos de archivo ( .key
, .csr
, .pem
) pero nunca he sido capaz de encontrar una buena explicación de lo que el propósito de cada formato de archivo es.
Me preguntaba si las buenas personas aquí en ServerFault podrían proporcionar alguna aclaración sobre este asunto.
certificate
pki
Noah Goodrich
fuente
fuente
Respuestas:
SSL ha existido durante el tiempo suficiente como para pensar que se acordarían los formatos de contenedor. Y tienes razón, las hay. Demasiados estándares como sucede. Así que esto es lo que sé, y estoy seguro de que otros intervendrán.
/etc/ssl/certs
), o puede incluir una cadena de certificados completa que incluye clave pública, clave privada y certificados raíz Confusamente, también puede codificar una CSR (por ejemplo, como se usa aquí ) ya que el formato PKCS10 se puede traducir a PEM. El nombre es de Privacy Enhanced Mail (PEM) , un método fallido para el correo electrónico seguro, pero el formato del contenedor en el que se utiliza, y es una traducción en base64 de las claves x509 ASN.1./etc/ssl/private
. Los derechos sobre estos archivos son muy importantes, y algunos programas se negarán a cargar estos certificados si están configurados incorrectamente.openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes
Algunos otros formatos que aparecen de vez en cuando:
openssl x509 -inform der -in to-convert.der -out converted.pem
). Windows los ve como archivos de certificado. De manera predeterminada, Windows exportará los certificados como archivos con formato .DER con una extensión diferente. Me gusta....keystore
como una extensión. A diferencia de los certificados de estilo .pem, este formato tiene una forma definida de incluir certificados de ruta de certificación.En resumen, hay cuatro formas diferentes de presentar certificados y sus componentes:
Espero que esto ayude.
fuente
ssh-keygen
. Sería útil saber cómo se relaciona eso con el resto.PEM por sí solo no es un certificado, es solo una forma de codificar datos. Los certificados X.509 son un tipo de datos que comúnmente se codifican con PEM.
PEM es un certificado X.509 (cuya estructura se define utilizando ASN.1), codificado utilizando el ASN.1 DER (reglas de codificación distinguidas), luego se ejecuta a través de la codificación Base64 y se atasca entre líneas de anclaje de texto sin formato (BEGIN CERTIFICATE y END CERTIFICATE )
Puede representar los mismos datos usando las representaciones PKCS # 7 o PKCS # 12, y la utilidad de línea de comandos openssl puede usarse para hacer esto.
Los beneficios obvios de PEM es que es seguro pegarlo en el cuerpo de un mensaje de correo electrónico porque tiene líneas de anclaje y está limpio en 7 bits.
RFC1422 tiene más detalles sobre el estándar PEM en lo que se refiere a claves y certificados.
fuente
openssl x509 -inform der -in cert.cer -out cert.pem
. Para convertir un archivo PEM a DER:openssl x509 -outform der -in cert.pem -out certi.der
. Para convertir un archivo PKCS # 12 (.pfx p.12) que contiene una clave privada y certificados a PEM:openssl pkcs12 -in keyStore.pfx -out keyStore.pem -nodes
. Para convertir un archivo de certificado PEM y una clave privada a PKCS # 12 (.pfx .p12):openssl pkcs12 -export -out cert.pfx -inkey privateKey.key -in cert.crt -certfile CACert.crt
Desde aquíA veces un
.crt
archivo ya es un.pem
. Ver: https://stackoverflow.com/questions/991758/openssl-pem-keyfuente
.foobar
para todo lo que importa ...