Saltar al contenido

¿Qué es un archivo Pem y en qué se diferencia de otros formatos de archivo de clave generados por OpenSSL?

La guía paso a paso o código que verás en este artículo es la solución más fácil y efectiva que encontramos a tus dudas o dilema.

Solución:

Solución 1:

SSL ha existido durante el tiempo suficiente para pensar que se acordarían formatos de contenedor. Y tienes razón, los hay. Demasiados estándares como sucede. Así que esto es lo que sé, y estoy seguro de que otros intervendrán.

  • .csr – Esta es una solicitud de firma de certificado. Algunas aplicaciones pueden generarlos para enviarlos a las autoridades de certificación. El formato real es PKCS10, que se define en RFC 2986. Incluye algunos/todos los key detalles del certificado solicitado, como el tema, la organización, el estado, etc., así como el público key del certificado para ser firmado. Estos son firmados por la CA y se devuelve un certificado. El certificado devuelto es público. certificado (que incluye al público key pero no el privado key), que a su vez puede estar en un par de formatos.
  • .pem – Definido en los RFC 1421 a 1424, este es un formato de contenedor que puede incluir solo el certificado público (como con las instalaciones de Apache y los archivos de certificado de CA). /etc/ssl/certs), o puede incluir una cadena de certificados completa, incluidos keyprivado keyy certificados raíz. De manera confusa, también puede codificar una CSR (por ejemplo, como se usa aquí) ya que el formato PKCS10 se puede traducir a PEM. El nombre proviene de Privacy Enhanced Mail (PEM), un método fallido para el correo electrónico seguro, pero el formato de contenedor que usó sigue vivo y es una traducción base64 del x509 ASN.1 keys.
  • .key – Este es un archivo con formato PEM que contiene solo el privado-key de un certificado específico y es meramente un nombre convencional y no estandarizado. En las instalaciones de Apache, esto reside con frecuencia en /etc/ssl/private. Los derechos sobre estos archivos son muy importantes y algunos programas se negarán a cargar estos certificados si están mal configurados.
  • .pkcs12 .pfx .p12 – Originalmente definido por RSA en los Estándares de criptografía de clave pública (PKCS abreviado), la variante “12” fue mejorada originalmente por Microsoft y luego enviada como RFC 7292. Este es un formato de contenedor con contraseña que contiene pares de certificados públicos y privados. A diferencia de los archivos .pem, este contenedor está completamente encriptado. Openssl puede convertir esto en un archivo .pem con público y privado keys: openssl pkcs12 -in file-to-convert.p12 -out converted-file.pem -nodes

Algunos otros formatos que aparecen de vez en cuando:

  • .der – Una forma de codificar la sintaxis ASN.1 en binario, un archivo .pem es solo un archivo .der codificado en Base64. OpenSSL puede convertirlos a .pem (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…
  • .cert .cer .crt – Un archivo con formato .pem (o rara vez .der) con una extensión diferente, que el Explorador de Windows reconoce como un certificado, mientras que .pem no lo es.
  • .p7b .almacén de claves – Definido en RFC 2315 como PKCS número 7, este es un formato utilizado por Windows para el intercambio de certificados. Java los entiende de forma nativa y, a menudo, usa .keystore como una extensión en su lugar. A diferencia de los certificados de estilo .pem, este formato tiene un definido forma de incluir certificados de ruta de certificación.
  • .crl – Una lista de revocación de certificados. Las autoridades de certificación los producen como una forma de desautorizar los certificados antes de su vencimiento. A veces puede descargarlos de los sitios web de CA.

En resumen, existen cuatro formas diferentes de presentar los certificados y sus componentes:

  • PEM – Gobernado por RFCs, es utilizado preferentemente por software de código abierto. Puede tener una variedad de extensiones (.pem, .key.cer, .cert, más)
  • PKCS7 – Un estándar abierto utilizado por Java y compatible con Windows. No contiene privado key material.
  • PKCS12 – Un estándar privado de Microsoft que se definió posteriormente en un RFC que brinda seguridad mejorada en comparación con el formato PEM de texto sin formato. Esto puede contener información privada. key material. Se utiliza preferentemente en sistemas Windows y se puede convertir libremente al formato PEM mediante el uso de openssl.
  • DER – El formato principal de PEM. Es útil considerarlo como una versión binaria del archivo PEM codificado en base64. No se usa habitualmente mucho fuera de Windows.

Espero que esto ayude.

Solución 2:

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 codifica mediante PEM.

PEM es un certificado X.509 (cuya estructura se define usando ASN.1), codificado usando 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 de openssl se puede usar 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 es limpio de 7 bits.

RFC1422 tiene más detalles sobre el estándar PEM en relación con keys y certificados.


Solución 3:

A veces un .crt el archivo ya es un .pem. Ver: https://stackoverflow.com/questions/991758/openssl-pem-key

Si te mola el proyecto, tienes la opción de dejar una noticia acerca de qué le añadirías a este ensayo.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *