Certificado SSL/CA y archivos de certificados relacionados (pem, crt, cer, key, csr)

Los certificados digitales son tarjetas de identificación en el mundo en línea. Los certificados digitales proporcionan autenticación electrónica para una comunicación segura entre ambas partes. El certificado digital contiene la información de identificación del propietario del par de claves y la identidad del titular del certificado se autentica verificando la autenticidad de la información de identificación. Los certificados digitales pueden establecer una relación de confianza segura y confiable para los usuarios que no se encuentran entre sí en el mundo en línea. El establecimiento de esta relación de confianza se origina en el centro de certificación PKI/CA. Por lo tanto, es crucial construir una PKI/CA segura. centro de certificación. .

ppyyJUJ.jpg

Todos los diversos conceptos y tecnologías relacionados con los certificados digitales se denominan colectivamente PKI (Infraestructura de clave pública). Al introducir CA, certificados digitales, LDAP, CRL, OCSP y otras tecnologías y formular los estándares correspondientes, PKI resuelve eficazmente problemas como la clave pública y la relación de mapeo de usuarios, los cuellos de botella en el rendimiento del servicio centralizado y las consultas de estado fuera de línea. Al mismo tiempo, para promover y mejorar la estandarización de la solicitud de certificados, se han formulado muchas normas relacionadas con la solicitud de certificados.

En el corazón de PKI está la confianza establecida entre clientes, servidores y autoridades de certificación (CA). Esta confianza se establece y propaga mediante la generación, intercambio y verificación de certificados.

La siguiente ilustración ilustra la diferencia entre autenticación y certificación (la diferencia entre dos partes y tres partes).

pp6WTAK.md.png

Descripción general

Un certificado SSL es un tipo de certificado digital, similar a las copias electrónicas de licencias de conducir, pasaportes y licencias comerciales. Debido a que está configurado en el servidor, también se le llama certificado de servidor.

Solo cuando el certificado SSL esté correctamente instalado en el servidor web se podrá lograr la comunicación https entre el cliente y el servidor. Dado que implica la configuración de diferentes tipos de servidores web, es necesario instalar el certificado de acuerdo con el entorno real del servidor después de emitir el certificado.

CA es una autoridad de certificación de comercio electrónico, también conocida como centro de certificación de comercio electrónico. Es una organización autorizada responsable de emitir y gestionar certificados digitales. Como tercero de confianza en las transacciones de comercio electrónico, es responsable de la legalidad de las declaraciones públicas. claves en el sistema de clave pública Responsabilidad de las pruebas de sexo. El certificado que emite es el certificado CA.

La relación entre los certificados SSL y los certificados CA se puede considerar desde las dos perspectivas siguientes.

El certificado CA contiene un certificado SSL

Además de emitir certificados SSL, las organizaciones de CA también pueden emitir otros certificados digitales, como certificados de firma de código y certificados de correo electrónico. Desde esta perspectiva, un certificado SSL es un certificado CA.

El certificado CA es igual al certificado SSL

La autoridad certificadora, denominada CA en inglés, es responsable de emitir, invalidar y guardar los certificados. El certificado emitido por la CA se llama certificado CA. La esencia del certificado CA es utilizar el protocolo SSL/TLS para proteger el seguridad de los datos transmitidos, por eso también se le llama certificado SSL.

¿Qué es SSL/TSL?

SSL (Capa de conexión segura, Capa de conexión segura)

Una capa de protocolo ubicada entre protocolos confiables de capa de red orientados a la conexión y protocolos de capa de aplicación. SSL permite una comunicación segura entre clientes y servidores al autenticarse entre sí, utilizar firmas digitales para garantizar la integridad y utilizar cifrado para garantizar la privacidad. El protocolo consta de dos capas: protocolo de registro SSL y protocolo de protocolo de enlace SSL.

TLS (Seguridad de la capa de transporte, Protocolo de seguridad de la capa de transporte)

Se utiliza para proporcionar confidencialidad e integridad de datos entre dos aplicaciones. El protocolo consta de dos capas: protocolo de registro TLS y protocolo de protocolo de enlace TLS.

La relación entre los dos

No existe diferencia en el proceso de conexión entre TLS y SSL, se puede entender que SSL es la vida pasada de TLS y TLS es la vida actual de SSL. Y los dos protocolos TLS y SSL (protocolo de grabación y protocolo de protocolo de enlace) funcionan de la misma manera.

Sin embargo, los algoritmos utilizados por SSL y TLS son diferentes y TLS agrega muchos códigos de alarma nuevos. Debido a estas diferencias, podemos considerar TLS como una versión mejorada incompatible de SSL. TLS debe intercambiar certificados con TLS y SSL debe intercambiar certificados con SSL al autenticar certificados.

Emisión de certificado

Formato de certificado

En términos de estándares de clasificación, los formatos de certificados SSL incluyen principalmente

  • PEM y DER definidos en el estándar de formato de certificado de clave pública X.509
  • PKCS#7 y PKCS#12 definidos en el estándar de cifrado de clave pública PKCS
  • JKS para entorno Java

En cuanto al formato de archivo, los principales formatos de certificados SSL son:

  1. Uno es un formato de texto codificado en Base64 (ASCII). Este tipo de archivo de certificado se puede abrir e incluso editar a través de un editor de texto. El formato de certificado PEM común tiene extensiones que incluyen PEM, CRT y KEY.
  2. El otro son los archivos binarios binarios. El formato de certificado DER común tiene extensiones que incluyen DER y CER.

Los sistemas Linux usan CRT y los sistemas Windows usan CER.

sustantivo significado
X.509 Un formato de certificado común que contiene la clave pública del titular del certificado, el algoritmo de cifrado y otra información.
pkcs1 ~pkcs12 Un estándar para el cifrado de clave pública (cifrado asimétrico) (Estándares de criptografía de clave pública), generalmente almacenado como .pN, .p12 es un formato de encapsulación que contiene certificados y claves.
*.el El formato de almacenamiento binario del certificado (no se usa comúnmente)
*.pem El formato de almacenamiento de texto Base64 del certificado o clave. El certificado o clave se puede almacenar por separado o al mismo tiempo.
*.llave Claves en formato pem almacenadas por separado, generalmente guardadas como *.key
*.cer *.crt Ambos se refieren a certificados, llamados crt en Linux y cer en Windows; el formato de almacenamiento puede ser pem o der.
*.csr Solicitud de firma de certificado (Solicitud de firma de certificado), contiene información sobre el titular del certificado, como: país, correo electrónico, nombre de dominio, etc.
*.pfx Implementación de Microsoft IIS
*.jks Formato de certificado implementado por la herramienta clave de Java
Proceso de emisión

pp64iOs.png

Generar la clave privada de la CA (el sufijo puede ser .pem o .key)

openssl genrsa -out ca.key 2048

Genere un archivo de solicitud de certificado de CA y solicite una serie de información básica después de la reunión.

openssl req -new -key ca.key -out ca.csr

Genere un certificado (la clave pública está incluida en el certificado). En circunstancias normales, debe llevar la clave privada y solicitar el archivo a una organización de CA reconocida para la solicitud y emisión del certificado. Aquí elegimos utilizar openssl para simular la autoridad de CA para emitir un certificado.

openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt

Después de completar los tres pasos anteriores, obtendrá tres archivos en la carpeta:

ca.key
ca.csr
ca.crt

El archivo de certificado generado puede considerarse como el certificado raíz para ayudar en la discusión posterior de la cadena de confianza del certificado.

El formato del certificado generado generalmente es el formato universal X509, que contiene la clave pública, el algoritmo de cifrado y otra información del titular del certificado.

Certificado X.509

Los certificados basados ​​en el estándar X.509 V3 garantizan la autenticación y la seguridad de los datos (coherencia, confidencialidad) al vincular la identidad a un par de claves electrónicas que se pueden utilizar para cifrar, firmar y descifrar información digital.

Cada certificado X.509 se construye en base a un par de claves que consta de una clave pública y una clave privada, que se pueden utilizar para cifrado y descifrado, verificación de identidad y confirmación de seguridad de la información. El formato y método de verificación del certificado generalmente siguen el estándar internacional X.509.

El estándar X.509 utiliza un lenguaje de descripción de interfaz llamado Abstract Syntax Notation One (ASN.1) para definir, codificar y decodificar solicitudes de certificados y certificados transmitidos entre clientes y autoridades de certificación.

La siguiente es la sintaxis de representación del certificado utilizando ASN.1.

SignedContent ::= SEQUENCE 
{certificate         CertificateToBeSigned,algorithm           Object Identifier,signature           BITSTRING
}CertificateToBeSigned ::= SEQUENCE 
{version                 [0] CertificateVersion DEFAULT v1,serialNumber            CertificateSerialNumber,signature               AlgorithmIdentifier,issuer                  Namevalidity                Validity,subject                 NamesubjectPublicKeyInfo    SubjectPublicKeyInfo,issuerUniqueIdentifier  [1] IMPLICIT UniqueIdentifier OPTIONAL,subjectUniqueIdentifier [2] IMPLICIT UniqueIdentifier OPTIONAL,extensions              [3] Extensions OPTIONAL
}

Tanto la clave pública como la privada están compuestas por una larga cadena de números aleatorios. La clave pública es pública y la longitud determina la solidez de la protección, pero la información se cifra mediante la clave pública. La clave privada se almacena en secreto sólo en el destinatario, y el destinatario puede descifrar y leer la información utilizando la clave privada asociada con la clave pública.

Utilice openssl para ver el certificado de clave pública en modo texto:, openssl x509 -in ca.crt -noout -text la siguiente figura es su contenido principal.

ppcbLN9.md.png

El certificado contiene la siguiente información: la clave pública del solicitante, la información organizacional y personal del solicitante, la información de la autoridad emisora ​​CA, el tiempo de validez, el texto sin formato del número de serie del certificado y otra información, y también contiene una firma;

Las siguientes son operaciones comunes para operaciones de certificados:

# 查看证书序列号
openssl x509 -in ca.crt -noout -serial
# 打印证书名称以 RFC2253 规定的格式打印出证书的拥有者名字
openssl x509 -in ca.crt -noout -subject
# 打印出证书的 MD5 特征参数
openssl x509 -in ca.crt -noout -fingerprint
# 打印出证书的 SHA 特征参数
openssl x509 -sha1 -in ca.crt -noout -fingerprint
conversión de formato

La conversión del formato del certificado es en realidad la conversión del formato de codificación, como la conversión de der y pem.

Formato PEM a DER:

openssl x509 -inform pem -in certificate.pem -outform der -out certificate.der

Formato DER a PEM:

openssl x509 -inform der -in certificate.der -outform pem -out certificate.pem
importante

Nota 1: Certificado = clave pública + información del solicitante y emisor + firma.

Nota 2: El sufijo del archivo del certificado no se puede utilizar como base para juzgar qué codificación es el certificado. Para el sufijo de archivo de clave privada/clave pública, a veces se usa key/crt y otras veces se usa pem. De hecho, esto no es importante, lo importante es el formato del contenido del archivo.

Cadena de emisión y fideicomiso

Cadena de confianza

El sistema de CA es una estructura de árbol. Cada CA puede tener una o más subCA. La CA de nivel superior se denomina CA raíz. Además de la CA raíz, el emisor de otros certificados de CA es su CA superior. Esta relación jerárquica forma una cadena de confianza.

pp6W2p4.png

Tomando un ejemplo práctico, como es baidu, al visualizar el certificado se puede ver que su raíz es GlobalSign, el certificado intermedio es Validación CA-SHA256-G2 y finalmente es baidu.com.

pp6WfXR.jpg

Los certificados se dividen en dos tipos (sin diferencia esencial):

  • Certificado de CA
  • Certificado de entidad final: la entidad final que acepta certificados de CA.
Ejemplo de autenticación

Utilice el ca.crt generado anteriormente como certificado raíz para emitir un nuevo certificado.

Generar una clave privada para un certificado

openssl genrsa -out server.key 1024

Generar archivo de solicitud de certificado

openssl req -new -key server.key -out server.csr

O simule openssl como autoridad de CA y utilice el certificado raíz ca.crt generado anteriormente para emitir un nuevo certificado.

openssl x509 -req -days 3000 -sha1 -extensions v3_req -CA ca.crt -CAkey ca.key -CAserial ca.srl -CAcreateserial -in server.csr -out server.crt
  • -CA: especifique la ruta al certificado de CA
  • -CAkey: especifique la ruta de la clave privada del certificado de CA
  • -CAserial: especifica la ruta al archivo del número de serie del certificado.
  • -CAcreateserial: indica la creación de un archivo de número de serie de certificado (el archivo de serie mencionado anteriormente). El nombre predeterminado del archivo de número de serie creado es -CA, y el sufijo .srl se agrega al nombre del certificado especificado.

Verificación del certificado, utilice el siguiente comando para verificar si la emisión se realizó correctamente.

openssl verify -CAfile ca.crt server.crt
# server.crt: OK

Documentación de referencia

[1] La diferencia entre certificado SSL y certificado CA https://baijiahao.baidu.com/s?id=1653402538679672349&wfr=spider&for=pc
[2] La diferencia y conexión entre SSL y TSL, y cómo HTTPS cifra y descifra https: / /www.cnblogs.com/hanzhengjie/p/13920581.html
[3] La diferencia entre ssl y tsl https://blog.csdn.net/M_0307/article/details/73543591
[4] Alfabetización sobre certificados de CA, explicación de https https://www.cnblogs.com/handsomeBoys/p/6556336.html
[5] PKI/CA y certificado digital https://blog.csdn.net/u013066292/article/details/79538069
[6] ¿Cuál es la diferencia? entre formatos de certificado SSL? https://www.gworg.com/problems/1194.html
[7] ¿Cómo convertir .pem a .crt y .key? https://vimsky.com/article/3608.html
[8] Herramienta: openssl para ver los detalles del certificado en formato pem https://blog.csdn.net/du_lijun/article/details/115367633
[9] Serie http: OpenSSL generado CA de certificado raíz y emisión de subcertificados https://blog.csdn.net/lipviolet/article/details/109456104
[10] Explicación detallada del certificado de CA https://zhuanlan.zhihu.com/p/267047441
[11] Introducción a Let's Encrypt https://www.jianshu.com/p/449047437697
[12] Serie de gestión de certificados de Kubernetes (1 ) https://mp.weixin.qq.com/s?__biz=MzI2ODAwMzUwNA==&mid=2649298078&idx=1&sn=24d17a25ccf1c97337e0ed7bc951a8a2&chksm=f2eb8541c59c0c576b3dbbc0fc32bbb087495
5a6a83d852b8aa6f35685220d1eb8a135253b47&token=972017317&lang=zh_CN&scene=21#wechat_redirect [13] Introducción al certificado digital CA https:// zhuanlan.zhihu.com /p/413401722
[14] En SSL, ¿cuáles son los sufijos de claves públicas, claves privadas y certificados (pem, crt, cer, key, csr)? https://blog.csdn.net/HD243608836/article/details/127441701

Supongo que te gusta

Origin blog.csdn.net/weixin_44388689/article/details/132500070
Recomendado
Clasificación