Outils pour utilisateurs

Outils du site


kb:crypto:creer_ca

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
Prochaine révision
Révision précédente
kb:crypto:creer_ca [2018/08/22 21:49] beukb:crypto:creer_ca [2021/03/30 14:01] (Version actuelle) beu
Ligne 1: Ligne 1:
 ======Créer sa CA et signer ses certificats====== ======Créer sa CA et signer ses certificats======
  
 +
 +==== Création de la CA ====
 Pour cela, on va se rendre dans un dossier isolé : Pour cela, on va se rendre dans un dossier isolé :
  
 <code bash> <code bash>
 # mkdir /root/ca && cd /root/ca # mkdir /root/ca && cd /root/ca
-</bash>+</code>
  
 puis on va créer l'organisation de dossier suivante: puis on va créer l'organisation de dossier suivante:
  
 <code bash> <code bash>
-# mkdir certs crl newcerts private+# mkdir certs crl newcerts private csr 
 +</code><code bash>
 # chmod 700 private # chmod 700 private
 </code> </code>
Ligne 18: Ligne 21:
 <code bash> <code bash>
 # touch index.txt # touch index.txt
 +</code><code bash>
 # echo 1000 > serial # echo 1000 > serial
 +</code><code bash>
 +# echo 0000 > crlnumber
 </code> </code>
 +
  
 puis on créer le fichier : puis on créer le fichier :
  
-<code openssl openssf.cfg>+<code openssl openssl.cnf>
 [ ca ] [ ca ]
 # `man ca` # `man ca`
Ligne 30: Ligne 37:
 [ CA_default ] [ CA_default ]
 # Directory and file locations. # Directory and file locations.
-dir               /root/ca+dir               .
 certs             = $dir/certs certs             = $dir/certs
 crl_dir           = $dir/crl crl_dir           = $dir/crl
Ligne 39: Ligne 46:
  
 # The root key and root certificate. # The root key and root certificate.
-private_key       = $dir/private/ca.key.pem +private_key       = $dir/private/ca.key 
-certificate       = $dir/certs/ca.cert.pem+certificate       = $dir/certs/ca.pem
  
 # For certificate revocation lists. # For certificate revocation lists.
 crlnumber         = $dir/crlnumber crlnumber         = $dir/crlnumber
-crl               = $dir/crl/ca.crl.pem+crl               = $dir/crl/ca.crl
 crl_extensions    = crl_ext crl_extensions    = crl_ext
 default_crl_days  = 30 default_crl_days  = 30
Ligne 55: Ligne 62:
 default_days      = 375 default_days      = 375
 preserve          = no preserve          = no
 +policy            = policy_loose
  
 [ req ] [ req ]
Ligne 80: Ligne 88:
  
 countryName_default             = FR countryName_default             = FR
-stateOrProvinceName_default     Deux-Sèvres +stateOrProvinceName_default     =  
-localityName_default            = Niort+localityName_default            = 
 0.organizationName_default      = VirtIT 0.organizationName_default      = VirtIT
 #organizationalUnitName_default = #organizationalUnitName_default =
-emailAddress_default           contact@virtit.fr+emailAddress_default           
  
 [ v3_ca ] [ v3_ca ]
Ligne 92: Ligne 100:
 basicConstraints = critical, CA:true basicConstraints = critical, CA:true
 keyUsage = critical, digitalSignature, cRLSign, keyCertSign keyUsage = critical, digitalSignature, cRLSign, keyCertSign
 +
 +[ policy_loose ]
 +# Allow the intermediate CA to sign a more diverse range of certificates.
 +# See the POLICY FORMAT section of the `ca` man page.
 +countryName             = optional
 +stateOrProvinceName     = optional
 +localityName            = optional
 +organizationName        = optional
 +organizationalUnitName  = optional
 +commonName              = supplied
 +emailAddress            = optional
 +
 +[ 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
 +
 +
 +[ 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
 +
 +[ crl_ext ]
 +authorityKeyIdentifier = keyid:always
 +issuerAltName = issuer:copy
 +
 +</code>
 +
 +On génére ensuite la clé privé du CA root :
 +
 +<code bash>
 +# openssl genrsa -out private/ca.key 4096
 +</code>
 +
 +et puis le certificat : 
 +
 +<code bash>
 +# openssl req -config openssl.cnf \
 +      -key private/ca.key \
 +      -new -x509 -days 7300 -extensions v3_ca \
 +      -out certs/ca.pem
 +</code>
 +
 +
 +==== Création d'un certificat ====
 +
 +If faut d’abord créer la clé privée du certificat :
 +
 +<code bash>
 +# openssl genrsa -out private/server.key 4096
 +</code>
 +
 +puis le CSR :
 +
 +<code bash>
 +# openssl req -config openssl.cnf -key private/server.key -new -out csr/server.csr
 +</code>
 +
 +Et puis on le signe :
 +
 +<code bash>
 +# openssl ca -config openssl.cnf -extensions server_cert -days 375 -notext -in csr/server.csr -out certs/server.pem
 +</code>
 +
 +==== Révoquer un certificat ====
 +
 +On va donc révoquer le certificat :
 +
 +<code bash>
 +# openssl ca -config openssl.cnf -revoke certs/server.pem
 +</code>
 +
 +puis pour garder un peu de clarté, on va le déplacer dans le dossier crl : 
 +
 +<code bash>
 +# mv certs/server.pem crl/
 +</code>
 +
 +Et puis on génère le fichier CRL:
 +
 +<code bash>
 +# openssl ca -config openssl.cnf -gencrl -out crl/ca-crl.pem
 </code> </code>
  
kb/crypto/creer_ca.1534974547.txt.gz · Dernière modification : 2018/08/22 21:49 de beu