Structure des certificats X.509
Examinez les champs d’un certificat numérique — sujet, émetteur, période de validité, clé publique et extensions — et comprenez la signification de chacun.
Structure des certificats X.509 est une leçon Security+ Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Security+ Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Security+ Academy comprend 4 leçons au total.
Qu’est-ce qu’un X.509 Certificate ?
Un X.509 certificate est un document numérique standardisé qui associe une clé publique à une identité. La norme X.509 (définie dans la RFC 5280) précise le format, les champs et les extensions utilisés dans les certificats numériques partout dans le monde. Tous les certificats TLS/HTTPS, les certificats de messagerie S/MIME, les certificats de signature de code et les certificats d’authentification client suivent le format X.509. Comprendre la structure d’un X.509 certificate vous aide à lire les informations d’un certificat, à diagnostiquer les erreurs de certificat et à prendre des décisions éclairées concernant le déploiement et la validation des certificats.
# View an X.509 certificate in human-readable form
openssl x509 -in certificate.pem -noout -text
# Or view a website's certificate directly
openssl s_client -connect example.com:443 2>/dev/null | \
openssl x509 -noout -textVersion, Serial Number et Algorithm
Les premiers champs d’un certificat X.509 définissent son identité de base. Version : X.509 v3 est la norme actuelle (v3 a ajouté les extensions). Serial Number : entier unique attribué par la CA émettrice, qui identifie ce certificat précis — il est utilisé dans les CRL (listes de révocation) pour révoquer des certificats individuels. Signature Algorithm : précise l’algorithm utilisé par la CA pour signer le certificat (par exemple, sha256WithRSAEncryption ou ecdsa-with-SHA256). Ce champ apparaît deux fois : une fois dans le TBSCertificate et une fois dans l’enveloppe de signature externe — les deux valeurs doivent correspondre.
# Certificate header fields
# Version: 3 (v3 = supports extensions)
# Serial Number:
# 30:4b:7e:bf:36:e3:46:a8
# Signature Algorithm: sha256WithRSAEncryption
# The serial number is used for revocation:
# CRL lists serial numbers of revoked certificates from this CAChamps Issuer et Subject
Deux des champs les plus importants d’un certificat définissent les parties concernées. Le champ Issuer identifie la CA qui a signé le certificat (par exemple, CN=DigiCert Global CA G2, O=DigiCert Inc, C=US). Le champ Subject identifie l’entité à laquelle le certificat a été délivré (par exemple, CN=*.example.com, O=Example Corp, C=US). Pour un certificat TLS, le Common Name (CN) du Subject ou l’extension Subject Alternative Name (SAN) précise le ou les noms de domaine pour lesquels le certificat est valide. Les navigateurs comparent le nom d’hôte demandé à ces champs.
# Extract Issuer and Subject
openssl x509 -in cert.pem -noout -subject -issuer
# subject=CN = *.google.com, O = Google LLC, L = Mountain View, ST = California, C = US
# issuer=CN = GTS CA 1C3, O = Google Trust Services LLC, C = US
# Check Subject Alternative Names (critical for hostname validation)
openssl x509 -in cert.pem -noout -ext subjectAltName
# DNS:*.google.com, DNS:google.comPériode de validité : notBefore et notAfter
La période de validité définit la période pendant laquelle le certificat est actif. Elle se compose de deux horodatages : notBefore (le certificat n’est pas encore valide avant cette date) et notAfter (le certificat est expiré après cette date). Les clients TLS vérifient que l’heure actuelle se situe dans cette période. Les certificats présentés en dehors de leur période de validité provoquent une erreur de certificat dans les navigateurs et doivent être renouvelés. La bonne pratique actuelle consiste à émettre des certificats à courte durée de vie (90 jours, comme le fait Let’s Encrypt) afin de limiter l’exposition si une clé privée est compromise entre l’émission et l’expiration.
# Check certificate expiry dates
openssl x509 -in cert.pem -noout -dates
# notBefore=Jan 1 00:00:00 2026 GMT
# notAfter=Mar 31 23:59:59 2026 GMT
# Check how many days until expiry
echo | openssl s_client -connect example.com:443 2>/dev/null | \
openssl x509 -noout -enddate
# notAfter=Jun 15 12:00:00 2026 GMTChamp Public Key
La charge utile principale du certificat est le champ Subject Public Key Info, qui contient le public key certifié et précise l’algorithm avec lequel il est utilisé. Pour un certificat RSA, ce champ contient le module et l’exposant du public key RSA, ainsi que sa longueur en bits (2048, 4096). Pour un certificat ECC, il contient le nom de la courbe (par exemple, prime256v1) et le point du public key. La CA ne génère pas cette paire de clés : le demandeur du certificat génère sa propre paire de clés et soumet uniquement le public key dans une Certificate Signing Request (CSR).
# Generate a key pair and CSR (Certificate Signing Request)
# First, generate the private key
openssl genrsa -out server.key 2048
# Create a CSR containing the public key and subject info
openssl req -new -key server.key -out server.csr \
-subj '/CN=www.example.com/O=Example Corp/C=US'
# The CSR is sent to the CA for signing
# The CA returns the signed X.509 certificate
# Private key NEVER leaves your possessionExtensions X.509 v3
X.509 v3 a introduit des extensions qui étendent considérablement les fonctionnalités des certificats. Les extensions peuvent être critiques (un client qui ne peut pas traiter cette extension doit rejeter le certificat) ou non critiques (elles peuvent être ignorées si elles ne sont pas comprises). Les principales extensions sont les suivantes : Subject Alternative Name (SAN) — noms de domaine ou adresses IP supplémentaires couverts par le certificat ; Key Usage — limite les opérations pour lesquelles la clé peut être utilisée (signature numérique, chiffrement de clé) ; Extended Key Usage — restreint davantage l’usage prévu (authentification du serveur TLS, authentification du client, signature de code) ; et Basic Constraints — indique si le Subject est une CA.
# View X.509 v3 extensions
openssl x509 -in cert.pem -noout -text | grep -A 20 'X509v3 extensions'
# X509v3 Key Usage: critical
# Digital Signature, Key Encipherment
# X509v3 Extended Key Usage:
# TLS Web Server Authentication, TLS Web Client Authentication
# X509v3 Subject Alternative Name:
# DNS:example.com, DNS:www.example.com
# X509v3 Basic Constraints: critical
# CA:FALSESubject Alternative Name (SAN) ou Common Name
Historiquement, le champ Common Name (CN) du champ Subject distinctif était utilisé pour le nom de domaine principal. Les certificats modernes utilisent plutôt les Subject Alternative Names (SANs), car les navigateurs ont abandonné la correspondance fondée sur le CN (RFC 2818) au profit des SANs. Les SANs permettent à un seul certificat de couvrir plusieurs domaines (certificats multi-SAN) ou tous les sous-domaines d’un domaine (certificats génériques : *.example.com). Les caractères génériques des SANs ne couvrent qu’un seul niveau : *.example.com couvre www.example.com, mais pas sub.www.example.com.
Point de distribution CRL et extension OCSP
Deux extensions essentielles indiquent aux clients comment vérifier si un certificat a été révoqué avant sa date d’expiration. CRL Distribution Points (CDP) : contient les URL depuis lesquelles la Certificate Revocation List de la CA peut être téléchargée. Authority Information Access (AIA) : contient l’URL du répondeur OCSP (Online Certificate Status Protocol) de la CA pour effectuer une vérification de révocation en temps réel. Les clients modernes préfèrent OCSP aux téléchargements de CRL, car les CRL peuvent être des fichiers volumineux. La signature numérique de la CA sur les réponses OCSP garantit que les clients reçoivent des informations authentiques sur l’état de révocation.
# Check OCSP status of a certificate
openssl ocsp -issuer intermediate_ca.pem \
-cert server_cert.pem \
-url http://ocsp.digicert.com \
-text
# Response shows: good, revoked, or unknown
# server_cert.pem: good
# This Update: Jun 21 00:00:00 2026 GMTFormats de certificats : PEM, DER, PFX
Les certificats X.509 existent dans plusieurs formats d’encodage que vous rencontrerez en pratique. PEM (Privacy Enhanced Mail) : DER encodé en base64 et entouré d’en-têtes -----BEGIN CERTIFICATE-----. Lisible par l’être humain, il est utilisé sous Linux/Apache/nginx. DER (Distinguished Encoding Rules) : format binaire. Il est utilisé dans les applications Java et certains contextes Windows. PFX/PKCS#12 : format conteneur qui regroupe le certificat, sa chaîne et la clé privée dans un seul fichier protégé par mot de passe. Il est utilisé dans Windows IIS et lors de l’exportation de certificats avec leurs clés privées. P7B/PKCS#7 : chaîne de certificats uniquement, sans clé privée, utilisée dans les magasins de certificats Windows.
# Convert between certificate formats
# PEM to DER
openssl x509 -in cert.pem -outform DER -out cert.der
# DER to PEM
openssl x509 -in cert.der -inform DER -outform PEM -out cert.pem
# Export certificate + private key to PFX (for Windows IIS)
openssl pkcs12 -export -in cert.pem -inkey private.key \
-certfile chain.pem -out cert.pfx -passout pass:ExportPasswordCertificate Transparency (journaux CT)
Certificate Transparency (CT) est un cadre qui oblige les CA à inscrire tous les certificats émis dans des journaux accessibles pour audit public. Cela permet à n’importe qui de surveiller les certificats non autorisés émis pour ses domaines. Chrome et Safari exigent l’inclusion dans les journaux CT pour les certificats TLS. SCT (Signed Certificate Timestamp) constitue la preuve de cette inclusion dans un journal ; il est intégré au certificat ou transmis via une extension TLS. Les journaux CT révèlent rapidement les émissions incorrectes : si une CA émet par erreur un certificat pour votre domaine, vous le verrez dans des journaux comme crt.sh avant que des attaquants puissent en profiter.
# Search for all certificates issued for a domain using crt.sh
# This would be done via browser or API:
# https://crt.sh/?q=example.com
# Check CT log inclusion in a certificate
openssl x509 -in cert.pem -noout -text | grep -A 5 'CT Precertificate'
# X509v3 extension: CT Precertificate SCTs (critical)
# Signed Certificate Timestamp:
# Version: v1 (0x0)
# Log ID: A4:B9...Signature de la CA sur le certificat
Le dernier composant d’un certificat X.509 est la signature numérique de la CA. La CA calcule le hachage de toutes les données du certificat (TBSCertificate), puis signe ce hachage avec sa propre clé privée. Cette signature rend le certificat digne de confiance : n’importe qui peut la vérifier à l’aide du public key de la CA (présent dans le propre certificat de la CA). L’algorithm de signature utilisé (indiqué dans le champ de signature) doit correspondre à celui spécifié précédemment dans le certificat. Toute modification du certificat après sa signature invalide la signature et garantit ainsi l’intégrité du certificat.
# Verify that a certificate was signed by a specific CA
openssl verify -CAfile ca_chain.pem server_cert.pem
# server_cert.pem: OK
# If the signature is invalid or the chain is broken:
# server_cert.pem: C = US, O = Example, CN = www.example.com
# error 20 at 0 depth lookup: unable to get local issuer certificateVérification rapide
Évaluez votre compréhension des concepts de CompTIA Security+ (SY0-701) abordés dans cette leçon.
Récapitulatif de la leçon
Dans cette leçon, vous avez appris qu’un certificat X.509 contient une version, un numéro de série, un émetteur, un sujet, une période de validité, une clé publique et des extensions v3 ; l’extension SAN détermine les noms d’hôte couverts par le certificat ; les extensions CDP et AIA indiquent les points de terminaison utilisés pour vérifier les révocations ; et les journaux CT fournissent des pistes d’audit publiques de l’émission des certificats. Nous allons maintenant étudier le cycle de vie et la révocation des certificats.
Questions Fréquemment Posées
La leçon « Structure des certificats X.509 » est-elle gratuite ?
Oui — le texte complet de « Structure des certificats X.509 » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Security+ Academy, passe à CoddyKit PRO. Le cours Security+ Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Structure des certificats X.509 » ?
Examinez les champs d’un certificat numérique — sujet, émetteur, période de validité, clé publique et extensions — et comprenez la signification de chacun. Tu pratiques Security+ Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Security+ Academy ?
Aucune expérience préalable n'est requise. Security+ Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.
Combien de temps prend la leçon « Structure des certificats X.509 » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Security+ Academy ?
Oui. Chaque leçon Security+ Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Autorités de certification et chaînes de confiance
- Structure des certificats X.509
- Cycle de vie et révocation des certificats
- Cas d’utilisation de PKI : HTTPS, S/MIME et signature de code