Les commandes les plus couramment usitées avec openssl
Générer un certificat autosigné (clé privée avec mot de passe):
openssl req -x509 -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem
Générer un certificat autosigné (clé privée sans mot de passe):
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout mycert.key -out mycert.pem
Générer une clé privée:
openssl genrsa -aes128 -out mycert.key 2048
Générer une requête de signature de certificat:
openssl req -new -key mycert.key -out mycert.csr
Générer une requête de signature et une clé privée (clé privée sans mot de passe):
openssl req –new –nodes -newkey rsa:2048 -keyout mycert.key –out mycert.csr
Générer une requête de signature et une clé privée (clé privée avec mot de passe):
openssl req –new -newkey rsa:2048 -keyout mycert.key –out mycert.csr
Convertir un certificat au format PFX:
openssl pkcs12 -export -out mycert.pfx -in mycert.pem -inkey mycert.key -name "mycert"
Convertir un certificat du format DER vers PEM:
openssl x509 -inform DER -in mycert.cer -outform PEM -out mycert.crt
Extraire la clé privée d'un fichier PFX:
openssl pkcs12 -in mycert.pfx -nocerts -out mycert.key
Extraire le certificat d'un fichier PFX:
openssl pkcs12 -in mycert.pfx -clcerts -nokeys -out mycert.pem
Enlever le mot de passe d'une clé privée:
openssl rsa -in secure-mycert.key -out unsecure-mycert.key
Voir les informations d'un certificat:
openssl x509 -text -in mycert.pem
Voir les informations d'une requête de signature:
openssl req -noout -text -in mycert.csr
Voir les informations d'une liste de révocation:
openssl crl -inform DER -in revocation-list.crl -text -noout
Utilisation du Subject Alternative Name (SAN)
Editer le fichier "openssl.cnf" ou le copier
Trouver la section "[ req ]", et y ajouter l'option "req_extensions = v3_req"
[ req ]
distinguished_name = req_distinguished_name
req_extensions = v3_req
Ajouter (ou modifier) ensuite une section "[ v3_req ]", avec les options suivantes:
[ v3_req ]
basicConstraints = CA:FALSE
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
subjectAltName = @alt_names
Ajouter une section "[ alt_names ]" à la fin du fichier, avec les options suivantes:
[ alt_names ]
DNS.1 = nom1.mondomain.local
DNS.2 = nom2.mondomain.local
IP.1 = 127.0.0.1
Générez la requête de signature (voir ci-dessus).
ATTENTION: Si vous avez modifié le fichier "openssl.cnf" directement, toute nouvelle demande de CSR se fera avec le nouveau champs SAN. Pour générer des certificats avec d'autres valeurs pour le champs SAN, il faudra modifier le fichier de configuration.
Autrement faite une copie du fichier "openssl.cnf", modifiez la copie, et utilisez l'option "-config myopenssl.cnf" lors de la génération de la requête de signature.
openssl req –new -newkey rsa:2048 -keyout mycert.key –out mycert.csr -config myopenssl.cnf