Présentation
Cet article explique comment générer une demande de signature de certificat (CSR). Vous devrez soumettre un CSR lors de l'obtention d'un certificat SSL/TLS auprès d'une autorité de certification (CA).
Prérequis
Toute distribution Linux avec OpenSSL installé. Si vous n'avez pas de serveur, pourquoi ne pas envisager un VPS Linux d'Atlantic.Net et être opérationnel en moins de 30 secondes.
Générer une demande de signature de certificat (CSR)
Le CSR et la clé privée de votre serveur peuvent être générés en une seule étape facile. Assurez-vous de garder l'accès à votre clé privée aussi restreint que possible, car cet identifiant unique est utilisé pour vérifier l'authenticité de votre serveur.
Remarque :Si vous rencontrez des difficultés pour exécuter la commande avec succès, vous devrez peut-être vous connecter en tant que sudo ou root.
openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr
Les informations suivantes vous seront alors demandées :
You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [XX]: State or Province Name (full name) []: Locality Name (eg, city) [Default City]: Organization Name (eg, company) [Default Company Ltd]: Organizational Unit Name (eg, section) []: Common Name (eg, your name or your server's hostname) []: Email Address []: Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Remarque :Le mot de passe de défi n'est pas lié au mot de passe de la clé privée. Laissez-le vide sauf si requis par votre autorité de certification. Vous pouvez également laisser la question « nom de société facultatif » vide.
Vous disposez maintenant du fichier ".csr" (Certificate Signing Request) qui devra être soumis à une autorité de certification (CA). Une fois que l'autorité de certification a signé le certificat, elle renverra un fichier de certificat. Le format du certificat émis varie en fonction de l'autorité de certification. Le type le plus courant sera le format PEM qui utilise des extensions telles que .crt , .clé , .csr , .cer , et .pem .
Selon les besoins de votre application ou de votre serveur Web, vous devrez peut-être convertir l'un de ces formats vers d'autres formats tels que PKCS#7, PKCS#12 ou DER. Voici quelques commandes de conversion de fichiers utiles :
PEM → PKCS#7 (P7B)
openssl crl2pkcs7 -nocrl -certfile yourdomain.cer -out yourdomain.p7b -certfile CACert.cer
Le -nocrl
L'option indique que vous n'inclurez pas de liste de révocation de certificats (CRL) dans la structure PKCS#7. La plupart des nouveaux déploiements utiliseront cette option, car il n'y aura pas d'anciens certificats à révoquer.
Chaque -certfile
L'option indique un fichier de certificat qui sera inclus dans le fichier de sortie, ce qui est utile pour créer une chaîne de certificats comprenant le certificat du serveur et le certificat intermédiaire de l'autorité de certification ("votredomaine.cer" et "CACert.cer", respectivement, dans l'exemple ci-dessus).
Le -out
L'option indique le nom du fichier dans lequel écrire la sortie PKCS#7.
PEM → PKCS#12 (PFX)
openssl pkcs12 -export -out yourdomain.pfx -inkey yourdomain.key -in yourdomain.crt -certfile CACert.crt
Le -export
L'option indique que cette commande va créer un fichier PKCS#12. Le comportement par défaut sans le -export
est d'analyser l'entrée.
Le -in
L'option indique le fichier au format PEM à lire. Si ce fichier n'inclut pas également la clé privée, vous aurez besoin du -inkey
option pour indiquer également le fichier de clé privée.
Le -certfile
L'option indique des certificats supplémentaires à inclure dans le fichier PKCS#12, tels que des certificats intermédiaires.
Le -out
L'option indique le fichier dans lequel écrire la sortie, généralement un fichier ".pfx".
PEM → DER
openssl x509 -outform der -in yourdomain.pem -out yourdomain.der
Le -in
L'option indique le fichier de certificat d'entrée à convertir.
Le -out
L'option indique le nom du fichier de sortie.
Le -outform
L'option indique le format de fichier pour la sortie (dans cet exemple, le fichier d'entrée est au format PEM, et cette commande prendrait ce fichier et créerait un fichier au format DER).