This is the definitive guide to create secure certificates, for both servers and clients, using 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
Process a Certificate Signing Request (CSR) on the Root Certificate Authority (CA)
Generate the Root CA Private Key using the following command line:
openssl ecparam -name prime256v1 -genkey -noout -out ca.key
. Every certificate must have a corresponding private key.Generate the Root CA Certificate (Certificate Authority) using the following command line:
openssl req -new -x509 -sha256 -key ca.key -out ca.crt
.Entrer les informations concernant l'AC (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
Notez que le certificat doit être installé sur le serveur et sur tous les clients pour valider la légitimité des certificats émis. Certains navigateurs ont aussi des particularités décrites dans le sujet.
Ces étapes sont généralement effectuées sur chaque serveur ou appareil pour lequel vous envisagez de demander un certificat. Installer OpenSSL s'il n'est pas présent. L'alternative est de déployer de manière sécurisée la clé privée sur le serveur de destination en même temps que le certificat. Il est recommandé d'utiliser cette dernière approche uniquement si vous devez adhérer à des déploiements scriptés pour suivre les pratiques CloudOps/DevOps.
Generate the Server Certificate Private Key using the following command line:
openssl ecparam -name prime256v1 -genkey -noout -out server.key
(256bit private key in the server.key file). Every certificate must have a corresponding private key.Generate the server Certificate Signing Request (CSR) using the following command line:
openssl req -new -sha256 -key server.key -out server.csr
. This request will later be processed on the Root CA server.Entrer les informations concernant le certificat serveur (le FQDN exact utilisé par le serveur doit être spécifié). 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.com
Saisir un mot de passe dans l'invite, utiliser un gestionnaire de mots de passe ainsi qu'un générateur de mots de passe forts est essentiel.
Transférer le fichier server.csr à la CA racine.
Process the request by following the instructions below.
Déployer le certificat.
Follow the same procedure as for the Server certificate, but you must adapt two attributes of the information you enter to your needs, namely the Common Name and the Email Address.
Common Name (e.g. server FQDN or your name) []:John Doe
Email Address []:JohnDoe@acme.com
Process the CSR by generating a certificate.
Générer-le à l'aide de la ligne de commande suivante, où le server.csr a été généré sur le serveur:
openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 1000 -sha256
This results in the certificate being generated in the server.crt file. You must deploy it to the server where you generated the CSR.