Voici le guide définitif pour créer des certificats sécurisés, pour les serveurs comme pour les clients, en utilisant OpenSSL.
Sous Windows, il est recommandé d'utiliser Chocolatey pour installer OpenSSL et ses dépendances. La ligne de commande est simplement `choco install openssl`.
Générer une demande de signature de certificat (CSR) – Serveur
Générer une demande de signature de certificat (CSR) – Client
Traiter une demande de signature de certificat (CSR) sur l'autorité de certification racine (CA)
Générer la clé privée de la CA racine à l'aide de la ligne de commande suivante :
openssl ecparam -name prime256v1 -genkey -noout -out ca.key. Chaque certificat doit avoir une clé privée correspondante.Générer le certificat CA racine (autorité de certification) à l'aide de la ligne de commande suivante :
openssl req -new -x509 -sha256 -key ca.key -out ca.crt.Saisir les informations concernant l'autorité de certification (le certificat sera généré dans le fichier ca.crt) :
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:CA Locality Name (eg, city) []:Toontown Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc. Organizational Unit Name (eg, section) []:Security Common Name (e.g. server FQDN or your name) []:acme.com Email Address []:security@acme.com
Noter que le certificat doit être installé sur le serveur et sur tous les clients pour valider la légitimité des certificats délivrés. Certains navigateurs présentent également des particularités qui sont décrites dans la rubrique.
Effectuer ces étapes habituellement sur chaque serveur ou appareil pour lequel demander un certificat. Installer OpenSSL s'il n'est pas présent. L'alternative consiste à déployer de façon sécurisée la clé privée sur le serveur de destination en même temps que le certificat. Il est recommandé de n'utiliser cette dernière approche que si suivre des déploiements scriptés pour appliquer les pratiques CloudOps/DevOps.
Générer la clé privée du certificat serveur à l'aide de la ligne de commande suivante :
openssl ecparam -name prime256v1 -genkey -noout -out server.key(clé privée 256 bits dans le fichier server.key). Chaque certificat doit avoir une clé privée correspondante.Générer la demande de signature de certificat (CSR) serveur à l'aide de la ligne de commande suivante :
openssl req -new -sha256 -key server.key -out server.csr. Cette demande sera traitée plus tard sur le serveur CA racine.Saisir les informations relatives au certificat serveur (le FQDN exact utilisé par le serveur doit être précisé). Par exemple :
Country Name (2 letter code) [AU]:US State or Province Name (full name) [Some-State]:CA Locality Name (eg, city) []:Toontown Organization Name (eg, company) [Internet Widgits Pty Ltd]:Acme inc. Organizational Unit Name (eg, section) []:Security Common Name (e.g. server FQDN or your name) []:vault.acme.com Email Address []:security@acme.comSaisir un mot de passe dans l’invite, utiliser un gestionnaire de mots de passe ainsi qu’un générateur de mots de passe fort est essentiel.
Transférer le fichier server.csr à l'autorité de certification racine.
Traiter la demande en suivant les instructions ci-dessous.
Déployer le certificat.
Suivre la même procédure que pour le certificat serveur, mais adapter deux attributs des informations saisies selon vos besoins, à savoir le Nom commun et l'adresse courriel.
Common Name (e.g. server FQDN or your name) []:John Doe
Email Address []:JohnDoe@acme.com
Traiter la CSR en générant un certificat.
Le générer en utilisant la ligne de commande suivante, où le fichier server.csr a été généré sur le serveur :\nopenssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1000 -sha256
Cela a pour résultat la génération du certificat dans le fichier server.crt. Le déployer sur le serveur où la CSR a été générée.