¿Cuáles son las diferencias entre .pem
, .cer
y .der
?
Por lo que yo sé, .cer
contiene clave pública. ¿Existe algún marco abierto que pueda utilizar para cifrar mis datos con esta clave pública?
¿Cuáles son las diferencias entre .pem
, .cer
y .der
?
Por lo que yo sé, .cer
contiene clave pública. ¿Existe algún marco abierto que pueda utilizar para cifrar mis datos con esta clave pública?
cp
comando puede funcionar :)
Respuestas:
.pem
, .cer
Y .der
son todas las extensiones de archivo para archivos que puedan contener un certificado X.509 v3.
.der
extensiónDER es el método de codificación de los datos que componen el certificado. DER en sí mismo podría representar cualquier tipo de datos, pero generalmente describe un certificado codificado o un contenedor CMS.
La estructura de un certificado se describe utilizando el lenguaje de representación de datos ASN.1. BER y DER son métodos de codificación binaria para datos descritos por ASN.1.
.pem
extensiónPEM es un método para codificar datos binarios como una cadena (armadura ASCII). Contiene un encabezado y una línea de pie de página (que especifica el tipo de datos que se codifican y muestra el comienzo / final si los datos están encadenados) y los datos en el medio son los datos de base 64. En el caso de que codifique un certificado, simplemente contendría la codificación base 64 del certificado DER. PEM son las siglas de Privacy Enhanced Mail; el correo no puede contener valores binarios no codificados como DER directamente.
PEM también puede codificar / proteger otros tipos de datos relacionados con certificados, como claves públicas / privadas, solicitudes de certificados, etc. Si el contenido es un certificado X509v3 común, entonces el PEM se codifica como:
-----BEGIN CERTIFICATE-----
... base 64 encoding of the DER encoded certificate
with line endings and padding with equals signs ...
-----END CERTIFICATE-----
Tenga en cuenta que un archivo PEM también puede contener una cadena de certificados completa, donde la cadena comienza con el certificado de hoja / final del servicio, seguido del certificado que lo firmó, generalmente hasta el certificado raíz de confianza, pero sin incluirlo. Entonces, si le faltan certificados, es posible que desee echar un vistazo detrás del primero.
.cer
o.crt
.cer
solo significa certificado. Normalmente son datos codificados en DER, pero Windows también puede aceptar datos codificados en PEM. Necesita echar un vistazo al contenido (por ejemplo, usando la file
utilidad en sistemas posix) para ver qué hay dentro del archivo para estar 100% seguro.
Eche un vistazo a esta respuesta para obtener una lista más extensa de lo que es compatible con OpenSSL.
Para usar la clave pública contenida en el certificado (y firmada por la firma en el certificado), debe usar cualquier biblioteca que analice certificados X.509 y realice el cifrado RSA. Puede usar una herramienta que detecte / maneje la codificación PEM o primero podría convertir el certificado a DER eliminando la codificación PEM.
La línea de comando de OpenSSL contiene muchas opciones para convertir entre PEM y DER, imprimir información de certificado de alto nivel o analizar el ASN.1 para obtener una vista de bajo nivel de lo que hay allí.
Como la mayoría de las estructuras ASN.1, el certificado codificado DER siempre comienza con un byte 30
que es la codificación de etiqueta de un ASN.1 SEQUENCE
. Si ve mucha repetición en el archivo, entonces está bien; es solo la estructura la que está estrictamente definida.
Del mismo modo, la base 64 dentro de un archivo codificado PEM siempre comienza con la letra M
como un ASN.1 SEQUENCE
comienza con un byte 30
, por lo que los primeros 6 bits son 001100
, que se traduce en el número 12, que es el índice de la letra M
, el decimotercera letra del alfabeto.