Certificats numériques (X.509)

Définition

Un certificat numérique est un fichier attestant qu’une clé publique appartient bien à une entité (personne, serveur, organisation). Il est délivré et signé par une autorité de certification.

Structure d’un certificat X.509

ChampDescription
VersionSouvent v3 (X.509v3)
Numéro de sérieIdentifiant unique du certificat
Algorithme de signatureAlgo utilisé pour signer (ex : SHA256withRSA)
Émetteur (Issuer)CA ayant délivré le certificat
ValiditéDates de début et d’expiration
Sujet (Subject)Entité détentrice du certificat
Clé publiqueClé publique liée au sujet
ExtensionsInformations supplémentaires (voir ci-dessous)
SignatureSignature numérique de l’AC sur le certificat

Exemple (extrait OpenSSL)

Subject: CN=serveur.exemple.com
Issuer: CN=Root CA Pilote
Validity: Not Before: Jan 1 2024 / Not After: Jan 1 2026
Public-Key: (2048 bit)
Signature Algorithm: sha256WithRSAEncryption

CSR — Certificate Signing Request

Avant d’obtenir un certificat, l’entité génère :

  • une paire de clés
  • un CSR contenant :
    • sa clé publique
    • des informations sur elle-même (CN, OU, email…)
    • une signature faite avec sa clé privée

Ce CSR est ensuite soumis à l’AC pour vérification.

Usages de clés

UsageDescription
digitalSignatureSignature électronique
keyEnciphermentChiffrement d’une clé (ex: TLS)
dataEnciphermentChiffrement de données
keyAgreementDiffie-Hellman (ex: VPN IPSec)
keyCertSignAutorise la signature d’autres certificats
cRLSignAutorise la signature de listes de révocation (CRL)

Extensions

Les extensions enrichissent un certificat :

  • KeyUsage / ExtendedKeyUsage
  • SubjectAltName : IP, DNS, URI, email…
  • BasicConstraints : CA:true (autorité) ou CA:false
  • AuthorityKeyIdentifier / SubjectKeyIdentifier

Example

SubjectAltName = DNS:example.com, DNS:www.example.com

Formats de certificats

FormatExtensionDescription
PEM.pem / .crtEncodé en Base64, lisible en texte
DER.derEncodé en binaire
PFX / PKCS#12.pfx / .p12Contient clé privée + certificat (protégé par mot de passe)

Période de validité

  • Durée typique :
    • 1 an pour les certificats SSL/TLS publics
    • 2 à 3 ans pour les certificats internes
  • Déterminée à l’émission
  • Peut être révoquée avant échéance (CRL / OCSP)

Empreintes

Chaque certificat a une empreinte unique (fingerprint) :

openssl x509 -in cert.pem -noout -fingerprint -sha256

Success

Un certificat est un identifiant numérique sécurisé, indispensable à la confiance dans un environnement distribué.