Estás viendo la documentación de Apigee Edge.
Ve a la
Documentación de Apigee X. información
En este documento, se explica cómo validar una cadena de certificados antes de subirlo a un almacén de claves o un almacén de confianza en Apigee Edge. El proceso se basa en OpenSSL para validar el certificado y se puede aplicar en cualquier entorno en el que OpenSSL esté disponible.
Antes de comenzar
Antes de seguir los pasos de este documento, asegúrate de comprender los siguientes temas:
- Si no conoces una cadena de certificados, lee lo siguiente: Cadena de confianza.
- Si todavía no conoces la biblioteca de OpenSSL, OpenSSL.
- Si quieres usar los ejemplos de línea de comandos de esta guía, instala o actualiza la versión más reciente del cliente OpenSSL.
- Asegúrate de que los certificados estén en formato PEM. Si los certificados no están en formato PEM, sigue las instrucciones de Cómo convertir certificados a un formato compatible para convertirlos al formato PEM.
Validar el sujeto y el emisor del certificado para toda la cadena
Para validar la cadena de certificados con comandos de OpenSSL, completa los pasos descritos en las siguientes secciones:
- Divide la cadena de certificados
- Cómo verificar el sujeto y la entidad emisora del certificado
- Verifica el asunto del certificado y el hash de la entidad emisora
- Verifica el vencimiento del certificado
Divide la cadena de certificados
Antes de validar el certificado, debes dividir la cadena de certificados en diferentes certificados siguiendo estos pasos:
- Accede al servidor en el que existe el cliente de OpenSSL.
- Divide la cadena de certificados en los siguientes certificados (si aún no lo hiciste):
-
Certificado de la entidad:
entity.pem
-
Certificado intermedio:
intermediate.pem
-
Certificado raíz:
root.pem
En la siguiente figura, se muestra un ejemplo de cadena de certificados:
Verifica el sujeto y el emisor del certificado
En esta sección, se describe cómo obtener el sujeto y la entidad emisora de los certificados y verificar que tienes una cadena de certificados válida.
-
Ejecuta el siguiente comando de OpenSSL para obtener
Subject
yIssuer
para cada certificado de la cadena deentity
aroot
y verifica que formen una cadena de certificados adecuada:openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
En el ejemplo anterior, certificate es el nombre del certificado.
-
Verifica que los certificados de la cadena cumplan con los siguientes lineamientos:
-
El
Subject
de cada certificado coincide con laIssuer
de las certificado anterior en la cadena (excepto el certificadoEntity
). -
Subject
yIssuer
son iguales para el certificado raíz.
Si los certificados de la cadena cumplen con estos lineamientos, se considerará que está completa y es válida.
Ejemplo de validación de la cadena de certificados
El siguiente ejemplo es el resultado de los comandos de OpenSSL para una cadena de certificados de muestra que contiene tres certificados:
Certificado de entidad
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
Certificado intermedio
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
Certificado raíz
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
En el ejemplo anterior, observa lo siguiente:
-
El
Subject
del certificado intermedio coincide con laIssuer
del certificado de entidad. -
El
Subject
del certificado raíz coincide con laIssuer
del el certificado intermedio. -
Subject
yIssuer
son iguales en el certificado raíz.
En el ejemplo anterior, puedes confirmar que la cadena de certificados de muestra es válida.
-
El
Verifica el asunto del certificado y el hash de la entidad emisora
En esta sección, se explica cómo obtener el hash del sujeto y la entidad emisora de los certificados y que tienes una cadena de certificados válida.
Siempre es una buena práctica verificar la secuencia de hash de los certificados, ya que puede ayudar a de identificación de problemas, como que el nombre común (CN) del certificado tenga espacio no deseado caracteres especiales.
- Ejecuta el siguiente comando de OpenSSL para obtener la secuencia
hash
para cada uno. certificado de la cadena deentity
aroot
y verifica que formar una cadena de certificados apropiada. - Verifica que los certificados de la cadena cumplan con los siguientes lineamientos:
-
El
Subject
de cada certificado coincide con laIssuer
del valor anterior certificado de la cadena (excepto el certificadoEntity
). -
Subject
yIssuer
son iguales para el certificado raíz. -
El
subject hash
del certificado intermedio coincide con elissuer hash
de la entidad certificado. -
El
subject hash
del certificado raíz coincide con elissuer hash
del certificado de la entidad emisora. -
subject
yissuer hash
son iguales en el certificado raíz.
openssl x509 -hash -issuer_hash -noout -in certificate
En el ejemplo anterior, certificate es el nombre del certificado.
Si los certificados de la cadena cumplen con estos lineamientos, se considerará completa y válida.
Ejemplo de validación de la cadena de certificados a través de una secuencia de hash
El siguiente ejemplo es el resultado de los comandos de OpenSSL para una cadena de certificados de muestra que contiene tres certificados:
openssl x509 -in entity.pem -hash -issuer_hash -noout c54c66ba #this is subject hash 99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout 99bdd351 4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout 4a6481c9 4a6481c9
En el ejemplo anterior, observa lo siguiente:
En el ejemplo anterior, puedes confirmar que la cadena de certificados de muestra es válida.
Verifica el vencimiento del certificado
En esta sección, se explica cómo verificar si todos los certificados de la cadena se venció mediante alguno de los siguientes métodos:
- Obtén la fecha de inicio y finalización del certificado.
- Obtén el estado de vencimiento.
Fechas de inicio y finalización
Ejecuta el siguiente comando OpenSSL para obtener la fecha de inicio y finalización de cada certificado.
en la cadena de entity
a root
y verifica que todos los certificados
de la cadena estén vigentes (la fecha de inicio es anterior a la fecha actual) y no hayan vencido.
Ejemplo de validación del vencimiento del certificado mediante fechas de inicio y finalización
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
Estado de vencimiento
Ejecuta el siguiente comando OpenSSL para comprobar si el certificado ya venció o
vencerá en el próximo N seconds
. Esto devuelve el estado de vencimiento del
certificado en el contexto de la fecha actual del sistema.
openssl x509 -checkend <N Seconds> -noout -in certificate
En el ejemplo anterior, certificate es el nombre del certificado.
Ejemplo de validación del vencimiento del certificado mediante la opción de comprobación
El siguiente comando usa 0 seconds
para verificar si el certificado está bien leído
vencido o no:
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
En este ejemplo, el mensaje Certificate will not expire
indica que
certificado aún no haya vencido.