Outils pour utilisateurs

Outils du site


sysadmin:linux:gestion_certificats:devenir_autorite_de_certification_avec_openssl

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
sysadmin:linux:gestion_certificats:devenir_autorite_de_certification_avec_openssl [2022/05/30 18:17] yoannsysadmin:linux:gestion_certificats:devenir_autorite_de_certification_avec_openssl [2026/08/04 21:24] (Version actuelle) yoann
Ligne 71: Ligne 71:
  
  
-====== Agir comme Autorité de Certification =====+===== Agir comme Autorité de Certification =====
  
-Agir en tant qu'autorité de certification revient à manipuler des paires cryptographiques (clé privée de chiffrement, certificat public). La toute première paire à créer identifiera l'autorité de certification elle-même, elle se compose de la clé racine et du certificat racine.+Dans cette section, on va détailler les étapes permettant de créer et d'utiliser sa propre autorité de certification pour émettre des certificats. Agir en tant qu'autorité de certification revient à manipuler des paires cryptographiques (clé privée de chiffrement, clé publique et certificat). La toute première paire à créer identifiera l'autorité de certification elle-même, elle se compose de la clé racine et du certificat racine.
  
  
-==== Préparer l'espace de travail ====+==== Préparer l'espace de travail de la CA ====
  
 On commence par créer une arborescence de travail dédiée au stockage des différentes paires de clés: On commence par créer une arborescence de travail dédiée au stockage des différentes paires de clés:
Ligne 82: Ligne 82:
 <code bash> <code bash>
 # Répertoire de stockage # Répertoire de stockage
-mkdir -p ~/.private/ca/{certs,crl,newcerts,private}+mkdir -p /path/to/ca/{certs,crl,newcerts,private} 
 +cd /path/to/ca/
 touch index.txt touch index.txt
 echo 1000 > serial echo 1000 > serial
 </code> </code>
  
-Le résultat obtenu:+Le résultat obtenu : 
 <file> <file>
 ca/ ca/
Ligne 98: Ligne 100:
 </file> </file>
  
-On crée un fichier de configuration par défaut pour les outils openssl: +On crée un fichier de configuration pour openssl dans le répertoire de travail de l'autorité de certification :
-<code bash>+
  
-</code>+<file conf openssl.conf [highlight_lines_extra="10"]> 
 +# OpenSSL Fichier de configuration pour le CA racine 
 + 
 +[ ca ] 
 +# `man ca` 
 +default_ca = CA_default 
 + 
 +[ CA_default ] 
 +# Répertoire de travail 
 +# Déclarations des fichiers et répertoires 
 +dir               /path/to/ca 
 +certs             = $dir/certs 
 +crl_dir           = $dir/crl 
 +new_certs_dir     = $dir/newcerts 
 +database          = $dir/index.txt 
 +serial            = $dir/serial 
 +RANDFILE          = $dir/private/.rand 
 + 
 +# Chemin de la clé privée et du certificat du CA racine 
 +private_key       = $dir/private/root_ca.key 
 +certificate       = $dir/certs/root_ca.cert.pem 
 + 
 +# Liste des ceriticats révoqués 
 +crlnumber         = $dir/crlnumber 
 +crl               = $dir/crl/ca.crl.pem 
 +crl_extensions    = crl_ext 
 +default_crl_days  = 30 
 + 
 +# SHA-1 is deprecated, so use SHA-2 instead. 
 +default_md        = sha256 
 + 
 +name_opt          = ca_default 
 +cert_opt          = ca_default 
 +default_days      = 365 
 +preserve          = no 
 +policy            = policy_strict 
 + 
 +[ policy_strict ] 
 +# S'applique au CA racine qui ne doit être utilisé que pour créer 
 +# le certificat d'une autorité de certification intermédiaire. 
 +countryName             = match 
 +stateOrProvinceName     = match 
 +organizationName        = match 
 +organizationalUnitName  = optional 
 +commonName              = supplied 
 +emailAddress            = optional 
 + 
 +[ policy_loose ] 
 +# S'applique aux signatures des CA intermédiaires permettant 
 +# de signer une variété plus importantes de certificats. 
 +countryName             = optional 
 +stateOrProvinceName     = optional 
 +localityName            = optional 
 +organizationName        = optional 
 +organizationalUnitName  = optional 
 +commonName              = supplied 
 +emailAddress            = optional 
 + 
 +[ req ] 
 +# Options spécifiques à l'outil de requete de certificat (`man req`). 
 +default_bits        = 2048 
 +distinguished_name  = req_distinguished_name 
 +string_mask         = utf8only 
 + 
 +# SHA-1 is deprecated, so use SHA-2 instead. 
 +default_md          = sha256 
 + 
 +# Extension to add when the -x509 option is used. 
 +x509_extensions     = v3_ca 
 + 
 +[ req_distinguished_name ] 
 +# See <https://en.wikipedia.org/wiki/Certificate_signing_request>
 +countryName                     = Country Name (2 letter code
 +stateOrProvinceName             = State or Province Name 
 +localityName                    = Locality Name 
 +0.organizationName              = Organization Name 
 +organizationalUnitName          = Organizational Unit Name 
 +commonName                      = Common Name 
 +emailAddress                    = Email Address 
 + 
 +# Optionally, specify some defaults. 
 +countryName_default             = FR 
 +stateOrProvinceName_default     = France 
 +localityName_default            = Haute Garonne 
 +0.organizationName_default      = Phobos 
 +organizationalUnitName_default  = IT Lab 
 +commonName_default              = Autorité de Certification interne 
 +emailAddress_default            = contact@example.net 
 + 
 +[ v3_ca ] 
 +# Extensions for a typical CA (`man x509v3_config`). 
 +subjectKeyIdentifier = hash 
 +authorityKeyIdentifier = keyid:always,issuer 
 +basicConstraints = critical, CA:true 
 +keyUsage = critical, digitalSignature, cRLSign, keyCertSign 
 + 
 +[ v3_intermediate_ca ] 
 +# Extensions for a typical intermediate CA (`man x509v3_config`). 
 +subjectKeyIdentifier = hash 
 +authorityKeyIdentifier = keyid:always,issuer 
 +basicConstraints = critical, CA:true, pathlen:0 
 +keyUsage = critical, digitalSignature, cRLSign, keyCertSign 
 + 
 +[ usr_cert ] 
 +# Extensions for client certificates (`man x509v3_config`). 
 +basicConstraints = CA:FALSE 
 +nsCertType = client, email 
 +nsComment = "OpenSSL Generated Client Certificate" 
 +subjectKeyIdentifier = hash 
 +authorityKeyIdentifier = keyid,issuer 
 +keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment 
 +extendedKeyUsage = clientAuth, emailProtection 
 + 
 +[ server_cert ] 
 +# Extensions for server certificates (`man x509v3_config`). 
 +basicConstraints = CA:FALSE 
 +nsCertType = server 
 +nsComment = "OpenSSL Generated Server Certificate" 
 +subjectKeyIdentifier = hash 
 +authorityKeyIdentifier = keyid,issuer:always 
 +keyUsage = critical, digitalSignature, keyEncipherment 
 +extendedKeyUsage = serverAuth 
 + 
 +[ crl_ext ] 
 +# Extension for CRLs (`man x509v3_config`). 
 +authorityKeyIdentifier=keyid:always 
 + 
 +[ ocsp ] 
 +# Extension for OCSP signing certificates (`man ocsp`). 
 +basicConstraints = CA:FALSE 
 +subjectKeyIdentifier = hash 
 +authorityKeyIdentifier = keyid,issuer 
 +keyUsage = critical, digitalSignature 
 +extendedKeyUsage = critical, OCSPSigning 
 +</file>
  
  
Ligne 124: Ligne 259:
  
 <code bash> <code bash>
-# Depuis le repertoire de travail+# Depuis le répertoire de travail de la CA
 openssl req -config openssl.cnf \ openssl req -config openssl.cnf \
       -key private/root_ca.key \       -key private/root_ca.key \
Ligne 141: Ligne 276:
  
 L'autorité de certification intermédiaire est une entité disposant de la confiance du CA racine et pouvant signer les certificats à sa place. L'autorité de certification intermédiaire est une entité disposant de la confiance du CA racine et pouvant signer les certificats à sa place.
 +
 Le CA racine signe le certificat de l'autorité intermédiaire formant ainsi une chaîne de confiance. Le CA racine signe le certificat de l'autorité intermédiaire formant ainsi une chaîne de confiance.
  
 La raison d'être de l'utilisation d'un CA intermédiaire est en premier lieu la sécurité. La clé privée du CA racine peut ainsi être conservée hors ligne et utilisée le moins souvent possible afin d'éviter toute compromission globale. Si la clé privée du CA intermédiaire est compromise, le CA racine peut toujours révoquer le certificat du CA intermédiaire et lui recréer une nouvelle paire cryptographique (clé privée/certificat). La raison d'être de l'utilisation d'un CA intermédiaire est en premier lieu la sécurité. La clé privée du CA racine peut ainsi être conservée hors ligne et utilisée le moins souvent possible afin d'éviter toute compromission globale. Si la clé privée du CA intermédiaire est compromise, le CA racine peut toujours révoquer le certificat du CA intermédiaire et lui recréer une nouvelle paire cryptographique (clé privée/certificat).
  
-==== Préparer le répertoire de travail ====+==== Préparer le répertoire de travail de l'autorité intermédiaire ====
  
 Depuis le répertoire de travail du CA Racine, créer un nouveau dossier pour le CA intermédiaire Depuis le répertoire de travail du CA Racine, créer un nouveau dossier pour le CA intermédiaire
 +
 <code bash> <code bash>
 # Dans le repertoire de travail du CA racine # Dans le repertoire de travail du CA racine
sysadmin/linux/gestion_certificats/devenir_autorite_de_certification_avec_openssl.txt · Dernière modification : 2026/08/04 21:24 de yoann