Décodeur X.509
Décoder les certificats X.509
Les certificats X.509 sont des documents numeriques qui lient une cle publique a une identite. Ils sont le fondement de TLS/SSL -- chaque connexion HTTPS les utilise.
Qu’est-ce que X.509 ?
X.509 est une norme internationale (ITU-T X.509, egalement publiee sous la RFC 5280) qui definit le format des certificats a cle publique. Un certificat X.509 est un document signe numeriquement qui lie une cle publique a une identite — comme un nom de domaine, une organisation ou un individu. Les certificats sont les ancres de confiance d’Internet : chaque connexion HTTPS, chaque application signee numeriquement et chaque email S/MIME repose sur des certificats X.509.
Lorsque vous visitez un site web en HTTPS, votre navigateur recoit le certificat X.509 du serveur, verifie qu’il a ete emis par une autorite de certification (AC) de confiance, verifie qu’il n’a pas expire ou n’a pas ete revoque, et confirme que le nom de domaine correspond. Ce n’est qu’apres que toutes ces verifications sont reussies que le navigateur etablit une connexion chiffree.
La norme X.509 a ete publiee pour la premiere fois en 1988 dans le cadre de la specification des services d’annuaire X.500. La version actuelle (v3) a introduit les extensions, qui permettent aux certificats de transporter des metadonnees supplementaires telles que les Subject Alternative Names, les contraintes d’utilisation de cle et les informations de revocation. Les certificats version 3 sont universellement utilises aujourd’hui.
Structure d’un certificat
Chaque certificat X.509 v3 contient les champs suivants, encodes au format ASN.1 DER et generalement distribues sous forme PEM (Base64 avec en-tetes) :
| Champ | Description | Exemple |
|---|---|---|
| Version | Version du certificat (presque toujours v3) | v3 |
| Numero de serie | Identifiant unique attribue par l’AC | 03:A1:F2:... |
| Algorithme de signature | Algorithme utilise par l’AC pour signer | SHA256withRSA |
| Emetteur | Distinguished Name de l’AC signataire | CN=Let's Encrypt Authority X3, O=Let's Encrypt |
| Validite (Pas avant) | Debut de la periode de validite du certificat | 2024-01-15T00:00:00Z |
| Validite (Pas apres) | Fin de la periode de validite du certificat | 2024-04-14T23:59:59Z |
| Sujet | Distinguished Name du titulaire du certificat | CN=example.com |
| Cle publique | La cle publique du sujet et son algorithme | RSA 2048-bit |
| Extensions | Extensions v3 optionnelles (voir tableau ci-dessous) | SAN, Key Usage, etc. |
Extensions courantes
Les extensions conferent aux certificats X.509 v3 leur flexibilite. Certaines sont marquees comme critiques (le certificat doit etre rejete si l’extension n’est pas comprise) et d’autres sont non critiques.
| Extension | OID | Objectif |
|---|---|---|
| Subject Alternative Name (SAN) | 2.5.29.17 | Liste les identites supplementaires (noms DNS, IP, emails) pour lesquelles le certificat est valide |
| Key Usage | 2.5.29.15 | Restreint les operations cryptographiques que la cle peut effectuer (ex. : digitalSignature, keyEncipherment) |
| Extended Key Usage (EKU) | 2.5.29.37 | Specifie les usages comme l’authentification serveur TLS, l’authentification client TLS ou la signature de code |
| Authority Key Identifier (AKI) | 2.5.29.35 | Identifie la cle publique de l’AC qui a signe ce certificat |
| CRL Distribution Points | 2.5.29.31 | URL ou la liste de revocation de certificats (CRL) peut etre telechargee |
| Authority Information Access (OCSP) | 1.3.6.1.5.5.7.1.1 | URL pour les verifications OCSP (Online Certificate Status Protocol) et la recuperation du certificat de l’AC emettrice |
Chaine de confiance
Les certificats X.509 n’existent pas de maniere isolee. Ils forment une chaine de confiance (egalement appelee chaine de certification ou chemin de certification) depuis le certificat d’entite finale jusqu’a une autorite de certification racine de confiance.
La chaine fonctionne comme suit :
-
AC racine : Un certificat auto-signe pre-installe dans le magasin de confiance de votre systeme d’exploitation ou navigateur. Les AC racines sont les ancres de confiance ultimes — elles sont approuvees car elles ont ete evaluees et explicitement incluses par les editeurs d’OS et de navigateurs (Apple, Microsoft, Mozilla, Google)
-
AC intermediaire : Un certificat signe par l’AC racine (ou un autre intermediaire). Les AC racines signent rarement les certificats d’entite finale directement. Elles delegent plutot a des intermediaires, ce qui limite l’exposition — si un intermediaire est compromis, seul cet intermediaire doit etre revoque, pas la racine
-
Certificat feuille (entite finale) : Le certificat presente par le serveur (votre site web). Il est signe par une AC intermediaire et contient la cle publique du serveur et le(s) nom(s) de domaine
Lors d’une poignee de main TLS, le serveur envoie le certificat feuille et les intermediaires. Le client construit la chaine jusqu’a une racine de confiance et verifie chaque signature dans le chemin. Si un maillon est rompu — expire, revoque ou signe par une AC non approuvee — la connexion echoue.
Certificate Transparency
Certificate Transparency (CT) est un systeme de journaux publics, en ajout seul, qui enregistrent chaque certificat emis par les AC participantes. CT permet aux proprietaires de domaines et au public de detecter les certificats emis par erreur ou frauduleusement. Depuis 2018, Google Chrome exige que tous les certificats de confiance publique soient enregistres dans au moins deux journaux CT.
Cas d’utilisation courants
- HTTPS / TLS : Chaque site web securise utilise un certificat X.509 pour prouver son identite et permettre la communication chiffree. Le navigateur verifie la chaine de certificats avant d’etablir la connexion TLS
- Signature de code : Les developpeurs de logiciels signent les executables, pilotes et paquets avec des certificats X.509 afin que les systemes d’exploitation et les utilisateurs puissent verifier que le code n’a pas ete altere et provient d’un editeur connu
- Signature et chiffrement d’emails (S/MIME) : Les certificats X.509 permettent le chiffrement de bout en bout des emails et les signatures numeriques, prouvant l’identite de l’expediteur et garantissant l’integrite du message
- TLS mutuel (mTLS) : Dans les architectures zero-trust, le client et le serveur presentent tous deux des certificats pour s’authentifier mutuellement. C’est courant dans la communication service-a-service au sein des architectures microservices
- Authentification VPN : Les VPN d’entreprise utilisent des certificats X.509 pour l’authentification des clients, en remplacement ou en complement de l’authentification par nom d’utilisateur/mot de passe
- Signature de documents : Les signatures numeriques PDF utilisent des certificats X.509 pour fournir la non-repudiation — la preuve que le signataire a signe le document et qu’il n’a pas ete modifie
- Identite des appareils IoT : Les appareils connectes utilisent des certificats X.509 pour s’authentifier aupres des plateformes cloud (AWS IoT, Azure IoT Hub), garantissant que seuls les appareils autorises peuvent se connecter
Essayez ces exemples
Un certificat X.509 encode en PEM, encadre par les marqueurs BEGIN/END. Le contenu Base64 entre les marqueurs encode la structure DER (binaire) du certificat contenant le sujet, l'emetteur, la cle publique, la periode de validite et les extensions.
-----BEGIN CERTIFICATE-----
MIIBkTCB+wIUEjRW...base64...==
-----END CERTIFICATE----- Un certificat PEM structurellement valide dont la date notAfter est depassee. Le decodeur analysera le certificat mais le signalera comme expire. Les navigateurs et clients TLS rejettent les certificats expires pour empecher l'utilisation de cles potentiellement compromises.
-----BEGIN CERTIFICATE-----
MIIC...expired...==
-----END CERTIFICATE-----