Chaîne de certificats Exemple

Aliaksandr Prysmakou
Aliaksandr Prysmakou

Follow

Dec 8, 2017 – 3 min lu

Je vois beaucoup de questions comme « comment obtenir une chaîne de certificats » ou « quel est le bon ordre de la chaîne de certificats ». Faisons la lumière sur ce sujet.

TL;DR La chaîne de certificats commence par votre certificat suivi d’un certificat intermédiaire ou par le certificat de l’autorité de certification racine. L’émetteur de tout certificat dans la chaîne doit être égal au sujet du suivant jusqu’au certificat de l’AC racine où le sujet est égal à l’émetteur.

Tout d’abord – Pour qu’un certificat SSL soit fiable, il doit être émis par une AC qui est dans le magasin de confiance de l’appareil que vous utilisez (magasin du système d’exploitation ou magasin d’applications comme avec Firefox).

Regardons un des certificats:

un certificat

Pour mon domaine (voir les flèches) les systèmes essaient de trouver l’émetteur de mon certificat dans Store et s’il n’est pas trouvé (dans mon exemple il ne l’est pas) il essaiera de trouver l’émetteur de l’émetteur de mon certificat et ainsi de suite.

La relation entre les certificats crée une chaîne de certificats où le certificat d’une ressource doit être émis soit par l’AC racine (une des installées sur votre système) soit par une AC intermédiaire (émise par une des AC racine ou par une AC intermédiaire « supérieure »).

Très souvent, nous recevons des fichiers de certificats (par exemple, un tas de .crt) sans fichier spécifique de « chaîne de certificats ».

Pour (re)créer la chaîne, vous devez commencer à partir de votre fichier de certificat, dans mon cas, c’est STAR_mon_domaine.crt

openssl x509 -text -noout -in STAR_my_domain.crt

Nous sommes intéressés par deux champs de la sortie : Subject et Issuer.

Le premier dans le fichier de la chaîne devrait être le certificat de votre domaine (il y a des exceptions. eg pour AWS Certificate Manager vous devriez soumettre votre certificat et la chaîne sans votre certificat séparément)

Il y a deux types de CA : racine et intermédiaire. Tout cert de CA intermédiaire a des champs émetteur et sujet différents. Le certificat de l’AC racine a un émetteur et un sujet égaux.

Le deuxième devrait être le certificat de l’émetteur de votre certificat et ainsi de suite jusqu’à la racine.

Dans mon cas, la chaîne ressemble à ceci:

Premier va mon certificat (STAR_mydomain.crt)

Issuer: C=US, ST=DE, L=Wilmington, O=Corporation Service Company, CN=Trusted Secure Certificate Authority 5
Subject: my subject

Second dans la chaîne (TrustedSecureCertificateAuthority5.crt). Note : Le sujet est égal à l’émetteur du fichier précédent :

Issuer: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
Subject: C=US, ST=DE, L=Wilmington, O=Corporation Service Company, CN=Trusted Secure Certificate Authority 5

Le troisième est USERTrustRSAAddTrustCA.crt:

Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority

Le dernier est AddTrustExternalCARoot.crt. Note : Issuer = Subject, signifie que c’est l’autorité de certification racine. Il n’est pas nécessaire d’ajouter le certificat de l’autorité de certification racine à la chaîne. Cela ne la freine pas mais augmente la quantité de poignée de main et la quantité de données transmises.

Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
Subject: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root

Pour créer un fichier avec la chaîne de certificats, vous pouvez exécuter:

$cat STAR_mydomain.crt TrustedSecureCertificateAuthority5.crt USERTrustRSAAddTrustCA.crt > Certificate_Chain.crt

Pour des services tels que AWS Certificate manager:

cat TrustedSecureCertificateAuthority5.crt USERTrustRSAAddTrustCA.crt > Certificate_Chain.crt

Le fichier devrait ressembler à:

-----BEGIN CERTIFICATE-----
content of your domain certificate
-----END CERTIFICATE-----
...
-----BEGIN CERTIFICATE-----
content of any intermediate CA certificate
-----END CERTIFICATE-----

Pour vérifier si tout Ok avec votre chaîne de certificats, vous pouvez utiliser l’un des services en ligne comme par exemple DigiCert fournit.

MISE À JOUR : Information mise à jour après de multiples problèmes avec AddTrust External CA Root expiration le 30 mai 2020. Il n’est pas nécessaire d’ajouter un certificat racine. Il n’est pas recommandé, sauf si vous utilisez un auto-signé.