0

Certificados: Diferencias de PEM, CRT y KEY

Recientemente me he encontrado con algunos compañeros que me han consultado la diferencia entre este tipo de formatos.

En principio para mí era lógica la diferencia al estar trabajando con ellos desde hace tiempo, pero me he dado cuenta de que esa lógica que yo uso, puede no ser tan «lógica» para los demás, así que voy a intentar hacer un refresco del proceso o como son, que diferencias tienen y como se pueden «convertir» unos en otros.

Si has jugueteado con los certificados autofirmados puede que te hayas dado cuenta de algunas de las cosas que voy a comentar a continuación.

KEY

Los ficheros KEY son los que contienen la parte privada del certificado y que complementan la parte publica del CRT / CERT.

El fichero tendrá un contenido semejante a esto:

-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDSUZfcBz+Xp0T1
wbNXgUvKx2oHbJbE+blybd2poOSMdHBOFk8d+oiBbtbBpf6AZ0Drc2fvcLh6KLLt
RMRuL9kwpkqutKGbpmrVD6SdIAwPj13PiZA3FMujHX//pvBpJifEMQzdztFFNhwI
27HncxnEB36Wl6v6L1RWzqxTjLKIKRyaLellQMIufFcezDIppf1mEbbJJXgKM4Xu
qD+DmYtXy/RggqjvDk9FS9R+q4FTttB4aTJAZG/hixO+gGRd1xc1nSOoWySIDv2B
emaJjAyZV27ynoYXv85R0bfVn1/5XuIoDkWO9Pm+EYrMiWlF+bG/2TCK7dnck92C
g0QTtwiJAgMBAAECggEAIIPkymuEdVmy25u6skiXAx6ZUdSD6qgA96PspRDuxJgr
1Ka2TJgzCm+sW/vhwNA1xTDuXKI8owYvw2biR3a2SUMsQJ5Ebd/onE/yzyfpNW6g
vjkyRpG8eddRtqCEgn0XoMlEh/Y1fFHFO8lbU8EDtr7B315LhD5U96a0Faam403P
5yMRQfVwylLit+RPaWE/jIXO0V7XPqXK4TK9+vrOGXDgQJ0GIM1fyGzdPkD/aqP6
pOBoHd4B4BAd39WCrEvecHOmng/M8wpWvhLPVfEvHtpuXssKmgPtdSgMbxrklCOI
Zla4sFJ/eQX1uJ57kukRqjJjYdvbknRIqo3+DoINQQKBgQD4oU9ycOgvd3kSCD/l
Fkcv52hjQgLwR8H28HkgJfb6SCmg9x7Ld4GEy2/vN84TO+jKAw92hi3Z7Xa56dfZ
gPRTIdsIwBwa04WGsITRLKvj18CmQH3Y83pELxoabDcu29czNlB1rJ6gk/9R+V3G
nmuBCPKY4fSA8n8zE2NHGISvTQKBgQDYjZAg6+Or4uIx6pviAQ+LJplGAXvbZ48h
3gEOpXkaM4nTOPKAPPG9sjzGkzbUyP0W6RhRjPuruzrovToDl0nIt9YjwftzJXIS
pkUwE2M3AWxoC7zJt3X2py03J4dt4WSZknVfUiMDEXnYpWHnJFsJUToiUPb8lTBh
SqyOM0kYLQKBgBZ7T5nDh9sy7GmrAUwPtaQpQpEnGOjtNCbGG83CYRDEka8SaWBw
j++YDakN3L50flo16KIJBABeroulD3WFaZJSz2F9LY1nbv183KWlam2RxsPBtR92
9KlRsQSOoHbGPjFNSf05/KX8e+vHpqkdDg9+5aDZXaiDROkzaZi2KNlJAoGBAI7z
NBdnYA1RYjvNQUW5qYcT3c4moJo/DG8w28XNWdn/95VlXD9m+7VbeV8kQufIHboH
+TOsO14r5EFK2IcSUXScVlGYdeKW72x8MeQAiFgBKoysYt1NrCM8TE7CW1YfmYb+
9VgNImueF675zV0F1MqbwiJxC/nEigFPiAT+udupAoGABt6xI5KYl6orZZoVEwjl
FwzMTGugMCnxyAk1s3GxOKIQDeHiW9eNYlsuBvZM8n8vn94tjDqfqw5VCxNHVcCb
liMKNQUdlJ88HrePWWxDhX2Yv6ah5Q0yyeFKRx0pdq2ditC/SDIp8c0G52tAZyxO
XW6W/W/bqcSuJanInaBM6f0=
-----END PRIVATE KEY-----

En caso de que hagamos un copia/pega del KEY de un servidor a otro, hemos de ir con cuidado de no poner espacios al final de ninguna línea, o nos puede llegar a dar bastantes quebraderos de cabeza.

Tal como podemos ver empieza y termina con las claves » BEGIN PRIVATE KEY » y » END PRIVATE KEY » respectivamente.

Este fichero no se puede o no se debe renombrar, puesto que es recomendable tener el original siempre a buen recaudo.

CRT / CERT

Este fichero es el que contiene la parte pública y que al unirse al KEY, genera el certificado completo.

En cuanto a su contenido, el fichero contiene algo parecido a esto:

-----BEGIN CERTIFICATE-----
MIIDazCCAlOgAwIBAgIUNXqdLCndOS40C2pbfcuOACzp57YwDQYJKoZIhvcNAQEL
BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM
GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMjEwMDUxMDE5MDBaFw0yMzEw
MDUxMDE5MDBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw
HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB
AQUAA4IBDwAwggEKAoIBAQDSUZfcBz+Xp0T1wbNXgUvKx2oHbJbE+blybd2poOSM
dHBOFk8d+oiBbtbBpf6AZ0Drc2fvcLh6KLLtRMRuL9kwpkqutKGbpmrVD6SdIAwP
j13PiZA3FMujHX//pvBpJifEMQzdztFFNhwI27HncxnEB36Wl6v6L1RWzqxTjLKI
KRyaLellQMIufFcezDIppf1mEbbJJXgKM4XuqD+DmYtXy/RggqjvDk9FS9R+q4FT
ttB4aTJAZG/hixO+gGRd1xc1nSOoWySIDv2BemaJjAyZV27ynoYXv85R0bfVn1/5
XuIoDkWO9Pm+EYrMiWlF+bG/2TCK7dnck92Cg0QTtwiJAgMBAAGjUzBRMB0GA1Ud
DgQWBBTEmLzzo8gKusBt8e0uklb+06CkdjAfBgNVHSMEGDAWgBTEmLzzo8gKusBt
8e0uklb+06CkdjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQAM
9uB66FFTYwanFhhzhSoEMcx1POcxX06uNlYwA+OZLUMPz17YfUa0yAVC934gg7Xv
Dg6zVpcY3PHUjPnTvlHzOpbM7cmVXL7GidSsYaAC+R2V9C4+Y9vHgsZUaaPqfyIZ
4O1567ZsreDd43GCCjRALMthZyDVciXlI+0o+yZ4k/d6W75f0PJbf3xRGXhHpvXr
5oIFJmkTj3Jkf7mCEAKhTnakZhZrk//kcNgY3czd26EKP9Q5r7jUrNpdL2WBD0im
PjnBYo79cRQtsxmWc6sLK850wQwHHLpCHGzPwx1+bc91ez3ScpifsvbMdGddSNNW
BJh37a3y2MRg9+Rf1A1v
-----END CERTIFICATE-----

Cuando guardemos en un servidor los ficheros de certificados, siempre suelen guardarse los CRT / CERT por un lado y los KEY por otro.

En este caso, al igual que en el anterior, en el copia/pega de un servidor a otro, hemos de ir con cuidado de no poner espacios al final de ninguna línea.

Siempre veremos que empieza y termina con » BEGIN CERTIFICATE » y » END CERTIFICATE » respectivamente.

PEM

Ahora llegamos a lo que viene a ser el punto álgido de los certificados.

Los ficheros PEM no dejan de ser simplemente un standard a la hora de contener certificados y su formato siempre se caracteriza por tener la siguiente estructura, empezando por » -----BEGIN <tipo>----- » y terminando por » -----END <tipo>----- «.

Si nos fijamos bien, es precisamente como empiezan tanto los KEY como los CRT / CERT.

Por lo tanto, un único PEM puede contener múltiples secciones en caso de que sea necesario.

Esto puede representar múltiples informaciones que de manera «común» quedaría solo en los diferentes ficheros, pero en este caso, condensado en uno solo, por lo que podemos llegar a encontrarnos algo como lo que mostramos a continuación:
-----BEGIN PRIVATE KEY-----
//Nuestra KEY
-----END PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
//Certificado intermedio del proveedor
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
//root
-----END CERTIFICATE-----

De esta manera, se puede usar el mismo fichero para múltiples ubicaciones o usos (Apache, F5, etc)

En algunos casos, puede que dentro del PEM solo veamos el contenido equivalente a un certificados, por lo que podremos renombra el fichero tranquilamente a CRT / CERT y no deberíamos tener problemas en su uso, siendo el mismo caso si solo hay en su interior el denominado KEY.

Conclusión

Los certificados son siempre algo necesario pero que terminan dando problemas, no obstante, si entendemos el concepto de lo que integra cada fichero, será mucho más sencillo y fácil que cuando veamos o nos pidan uno de estos ficheros, sepamos lo que nos vamos a encontrar.

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies