Openssl: commandes usuelles

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

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

Les commentaires sont fermés.