Vous consultez la documentation Apigee Edge.
Accédez à la
documentation**Apigee X**. info
Ce document explique comment valider une chaîne de certificats avant de l'importer dans un keystore ou un truststore dans Apigee Edge. Le processus s'appuie sur le OpenSSL pour valider la chaîne de certificats et s'applique à tout environnement dans lequel OpenSSL est disponible.
Avant de commencer
Avant de suivre les étapes décrites dans ce document, assurez-vous de bien comprendre les sujets suivants :
- Si vous ne connaissez pas bien les chaînes de certificats, consultez Chaîne de confiance.
- Si vous ne connaissez pas bien la bibliothèque OpenSSL, consultez OpenSSL.
- Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, installez ou mettez à jour la dernière version du client OpenSSL.
- Assurez-vous que les certificats sont au format PEM. S'ils ne le sont pas, suivez les instructions de la section Conversion de certificats au format compatible pour les convertir au format PEM.
Valider le sujet et l'émetteur du certificat pour la chaîne complète
Pour valider la chaîne de certificats à l'aide de commandes OpenSSL, suivez les étapes décrites dans les sections suivantes :
- Diviser la chaîne de certificats
- Vérifier le sujet et l'émetteur du certificat
- Vérifier le hachage du sujet et de l'émetteur du certificat
- Vérifier l'expiration du certificat
Diviser la chaîne de certificats
Avant de valider le certificat, vous devez diviser la chaîne de certificats en certificats distincts en procédant comme suit :
- Connectez-vous au serveur sur lequel le client OpenSSL existe.
- Divisez la chaîne de certificats en certificats suivants (si ce n'est pas déjà fait) :
-
Certificat d'entité :
entity.pem -
Certificat intermédiaire :
intermediate.pem -
Certificat racine :
root.pem
La figure suivante montre un exemple de chaîne de certificats :
Vérifier le sujet et l'émetteur du certificat
Cette section explique comment obtenir le sujet et l'émetteur des certificats et vérifier que vous disposez d'une chaîne de certificats valide.
-
Exécutez la commande OpenSSL suivante pour obtenir le
SubjectetIssuerde chaque certificat de la chaîne, deentityàroot, et vérifiez qu'ils forment une chaîne de certificats appropriée :openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'Où certificate est le nom du certificat.
-
Vérifiez que les certificats de la chaîne respectent les consignes suivantes :
-
Subjectde chaque certificat correspond auIssuerdu certificat précédent dans la chaîne (à l'exception du certificatEntity). -
Le
Subjectet l'Issuersont identiques pour le certificat racine.
Si les certificats de la chaîne respectent ces consignes, la chaîne de certificats est considérée comme complète et valide.
Exemple de validation de chaîne de certificats
L'exemple suivant correspond au résultat des commandes OpenSSL pour un exemple de chaîne de certificats contenant trois certificats :
Certificat d'entité
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.comCertificat intermédiaire
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 1O1Certificat racine
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 = GlobalSignDans l'exemple ci-dessus, notez les points suivants :
-
Le
Subjectdu certificat intermédiaire correspond auIssuerdu certificat d'entité. -
Le
Subjectdu certificat racine correspond auIssuerdu certificat intermédiaire. -
Le
Subjectet l'Issuersont identiques dans le certificat racine.
Dans l'exemple ci-dessus, vous pouvez confirmer que l'exemple de chaîne de certificats est valide.
-
Vérifier le hachage du sujet et de l'émetteur du certificat
Cette section explique comment obtenir le hachage du sujet et de l'émetteur des certificats et vérifier que vous disposez d'une chaîne de certificats valide.
Il est toujours recommandé de vérifier la séquence de hachage des certificats, car cela peut vous aider à identifier des problèmes tels que le nom commun (CN) du certificat contenant des espaces ou des caractères spéciaux indésirables.
- Exécutez la commande OpenSSL suivante pour obtenir la séquence
hashde chaque certificat de la chaîne, deentityàroot, et vérifiez qu'ils forment une chaîne de certificats appropriée. - Vérifiez que les certificats de la chaîne respectent les consignes suivantes :
-
Subjectde chaque certificat correspond auIssuerdu certificat précédent dans la chaîne (à l'exception du certificatEntity). -
Le
Subjectet l'Issuersont identiques pour le certificat racine. -
Le
subject hashdu certificat intermédiaire correspond auissuer hashdu certificat d'entité. -
Le
subject hashdu certificat racine correspond auissuer hashdu certificat d'émetteur. -
Le
subjectet leissuer hashsont identiques dans le certificat racine.
openssl x509 -hash -issuer_hash -noout -in certificate
Où certificate est le nom du certificat.
Si les certificats de la chaîne respectent ces consignes, la chaîne de certificats est considérée comme complète et valide.
Exemple de validation de chaîne de certificats via une séquence de hachage
L'exemple suivant correspond au résultat des commandes OpenSSL pour un exemple de chaîne de certificats contenant trois certificats :
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
Dans l'exemple ci-dessus, notez les points suivants :
Dans l'exemple ci-dessus, vous pouvez confirmer que l'exemple de chaîne de certificats est valide.
Vérifier l'expiration du certificat
Cette section explique comment vérifier si tous les certificats de la chaîne ont expiré ou non à l'aide des méthodes suivantes :
- Obtenir les dates de début et de fin du certificat
- Obtenir l'état d'expiration
Date de début et de fin
Exécutez la commande OpenSSL suivante pour obtenir les dates de début et de fin de chaque certificat
de la chaîne, de entity à root, et vérifiez que tous les certificats
de la chaîne sont en vigueur (la date de début est antérieure à la date du jour) et n'ont pas expiré.
Exemple de validation de l'expiration du certificat via les dates de début et de fin
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
État d'expiration
Exécutez la commande OpenSSL suivante pour vérifier si le certificat a déjà expiré ou
s'il expirera dans les N seconds à venir. Cette commande renvoie l'état d'expiration du
certificat dans le contexte de la date système actuelle.
openssl x509 -checkend <N Seconds> -noout -in certificate
Où certificate est le nom du certificat.
Exemple de validation de l'expiration du certificat via l'option checkend
La commande suivante utilise 0 seconds pour vérifier si le certificat a déjà
expiré ou non :
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
Dans cet exemple, le message Certificate will not expire indique que le
certificat n'a pas encore expiré.