Ci-dessous, les différences entre deux révisions de la page.
| 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] – yoann | sysadmin: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' | + | Dans cette section, on va détailler les étapes permettant de créer et d' |
| - | ==== Préparer l' | + | ==== Préparer l' |
| 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/ | + | mkdir -p /path/to/ |
| + | cd / | ||
| touch index.txt | touch index.txt | ||
| echo 1000 > serial | echo 1000 > serial | ||
| </ | </ | ||
| - | Le résultat obtenu: | + | Le résultat obtenu : |
| < | < | ||
| ca/ | ca/ | ||
| Ligne 98: | Ligne 100: | ||
| </ | </ | ||
| - | On crée un fichier de configuration | + | On crée un fichier de configuration pour openssl |
| - | <code bash> | + | |
| - | </ | + | <file conf openssl.conf [highlight_lines_extra=" |
| + | # 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 | ||
| + | certs = $dir/ | ||
| + | crl_dir | ||
| + | new_certs_dir | ||
| + | database | ||
| + | serial | ||
| + | RANDFILE | ||
| + | |||
| + | # Chemin de la clé privée et du certificat du CA racine | ||
| + | private_key | ||
| + | certificate | ||
| + | |||
| + | # Liste des ceriticats révoqués | ||
| + | crlnumber | ||
| + | crl = $dir/ | ||
| + | crl_extensions | ||
| + | default_crl_days | ||
| + | |||
| + | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| + | default_md | ||
| + | |||
| + | name_opt | ||
| + | cert_opt | ||
| + | default_days | ||
| + | preserve | ||
| + | policy | ||
| + | |||
| + | [ policy_strict ] | ||
| + | # S' | ||
| + | # le certificat d'une autorité de certification intermédiaire. | ||
| + | countryName | ||
| + | stateOrProvinceName | ||
| + | organizationName | ||
| + | organizationalUnitName | ||
| + | commonName | ||
| + | emailAddress | ||
| + | |||
| + | [ policy_loose ] | ||
| + | # S' | ||
| + | # de signer une variété plus importantes de certificats. | ||
| + | countryName | ||
| + | stateOrProvinceName | ||
| + | localityName | ||
| + | organizationName | ||
| + | organizationalUnitName | ||
| + | commonName | ||
| + | emailAddress | ||
| + | |||
| + | [ req ] | ||
| + | # Options spécifiques à l' | ||
| + | default_bits | ||
| + | distinguished_name | ||
| + | string_mask | ||
| + | |||
| + | # SHA-1 is deprecated, so use SHA-2 instead. | ||
| + | default_md | ||
| + | |||
| + | # Extension to add when the -x509 option is used. | ||
| + | x509_extensions | ||
| + | |||
| + | [ req_distinguished_name ] | ||
| + | # See < | ||
| + | countryName | ||
| + | stateOrProvinceName | ||
| + | localityName | ||
| + | 0.organizationName | ||
| + | organizationalUnitName | ||
| + | commonName | ||
| + | emailAddress | ||
| + | |||
| + | # Optionally, specify some defaults. | ||
| + | countryName_default | ||
| + | stateOrProvinceName_default | ||
| + | localityName_default | ||
| + | 0.organizationName_default | ||
| + | organizationalUnitName_default | ||
| + | commonName_default | ||
| + | emailAddress_default | ||
| + | |||
| + | [ v3_ca ] | ||
| + | # Extensions for a typical CA (`man x509v3_config`). | ||
| + | subjectKeyIdentifier = hash | ||
| + | authorityKeyIdentifier = keyid: | ||
| + | basicConstraints = critical, CA:true | ||
| + | keyUsage = critical, digitalSignature, | ||
| + | |||
| + | [ v3_intermediate_ca ] | ||
| + | # Extensions for a typical intermediate CA (`man x509v3_config`). | ||
| + | subjectKeyIdentifier = hash | ||
| + | authorityKeyIdentifier = keyid: | ||
| + | basicConstraints = critical, CA:true, pathlen:0 | ||
| + | keyUsage = critical, digitalSignature, | ||
| + | |||
| + | [ usr_cert ] | ||
| + | # Extensions for client certificates (`man x509v3_config`). | ||
| + | basicConstraints = CA:FALSE | ||
| + | nsCertType = client, email | ||
| + | nsComment = " | ||
| + | subjectKeyIdentifier = hash | ||
| + | authorityKeyIdentifier = keyid, | ||
| + | keyUsage = critical, nonRepudiation, | ||
| + | extendedKeyUsage = clientAuth, emailProtection | ||
| + | |||
| + | [ server_cert ] | ||
| + | # Extensions for server certificates (`man x509v3_config`). | ||
| + | basicConstraints = CA:FALSE | ||
| + | nsCertType = server | ||
| + | nsComment = " | ||
| + | subjectKeyIdentifier = hash | ||
| + | authorityKeyIdentifier = keyid, | ||
| + | keyUsage = critical, digitalSignature, | ||
| + | extendedKeyUsage = serverAuth | ||
| + | |||
| + | [ crl_ext ] | ||
| + | # Extension for CRLs (`man x509v3_config`). | ||
| + | authorityKeyIdentifier=keyid: | ||
| + | |||
| + | [ ocsp ] | ||
| + | # Extension for OCSP signing certificates (`man ocsp`). | ||
| + | basicConstraints = CA:FALSE | ||
| + | subjectKeyIdentifier = hash | ||
| + | authorityKeyIdentifier = keyid, | ||
| + | keyUsage = critical, digitalSignature | ||
| + | extendedKeyUsage = critical, OCSPSigning | ||
| + | </file> | ||
| Ligne 124: | Ligne 259: | ||
| <code bash> | <code bash> | ||
| - | # Depuis le repertoire | + | # Depuis le répertoire |
| openssl req -config openssl.cnf \ | openssl req -config openssl.cnf \ | ||
| -key private/ | -key private/ | ||
| Ligne 141: | Ligne 276: | ||
| L' | L' | ||
| + | |||
| Le CA racine signe le certificat de l' | Le CA racine signe le certificat de l' | ||
| La raison d' | La raison d' | ||
| - | ==== Préparer le répertoire de travail ==== | + | ==== Préparer le répertoire de travail |
| 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 | ||