Skip to content

Instantly share code, notes, and snippets.

@manchot0
Last active April 26, 2017 10:48
Show Gist options
  • Save manchot0/56a9348cf81ebc1c18c4 to your computer and use it in GitHub Desktop.
Save manchot0/56a9348cf81ebc1c18c4 to your computer and use it in GitHub Desktop.
openssl cert
générer la clé privée et le certificat racine de notre autorité de certification (CA)
openssl req -new -x509 -extensions v3_ca -keyout cert_ca.key -out cert_ca.crt -days 3650 -newkey rsa:4096
Maintenant que nous avons notre autorité, nous allons passer au certificat finalpour tout soutade.fr. Il faut commencer par créer une clé privée (2048 bits dans cet exemple) :
openssl genrsa -out cert2.fr.key 2048
La requête de signature (sans mot de passe)
openssl req -key cert2.fr.key -new -out cert2.fr.csr
Enfin, le certificat final (signé par notre autorité) et valide 1 an (maximum recommandé)
openssl x509 -req -days 365 -in cert2.fr.csr -CA cert_ca.crt -CAkey cert_ca.key -out cert2.fr.cert
ajouter -CAcreateserial la premiere fois (erreur .slr)
Pour créer un .pfx (windows, contient le certificat + la clé)
openssl pkcs12 -export -out cert2.pfx -inkey cert2.fr.key -in cert2.fr.cert
Pour créer un .p7b (chaine de certificat)
openssl crl2pkcs7 -nocrl -certfile cert1.cert -certfile cert2.cert -out p7cert.p7b
-nocrl pour ne pas utiliser de liste de revocation, pour en utiliser : -in crl.pem
MAJ pour prendre en charge l'extension SAN :
config dans /etc/ssl/openssl.cnf :
----------------------------------------------------------------------------------------------------------
[ ca ]
...
# Extension copying option: use with caution.
copy_extensions = copy
...
[ req ]
...
req_extensions = v3_req
...
[ usr_cert ]
...
subjectAltName = @alt_names
...
[ v3_req ]
# Extensions to add to a certificate request
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
...
[ v3_ca ]
...
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
...
[ alt_names ]
DNS.1 = *.soutade.fr
DNS.2 = soutade.fr
-----------------------------------------------------------------------------------------------------------
Maintenant que nous avons notre autorité, nous allons passer au certificat final pour tout soutade.fr. Il faut commencer par créer une clé privée :
openssl genrsa -out soutade.fr.key 4096
La requête de signature (sans mot de passe)
openssl req -new -out soutade.fr.csr -key soutade.fr.key -sha256 -extensions v3_req
Enfin, le certificat final (signé par notre autorité)
openssl x509 -req -days 730 -in soutade.fr.csr -CA cert_ca.crt -CAkey cert_ca.key -out soutade.fr.cert -sha256 -extensions v3_req -extfile /etc/ssl/openssl.cnf
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment