This is the definitive guide to create secure certificates, for both servers and clients, using OpenSSL.
Procedure
Sous Windows, il est recommandé d'utiliser Chocolatey pour installer OpenSSL et ses dépendances. La ligne de commande est simplement `choco install openssl`.
- Créer l'Autorité de Certification (CA) racine
- Générer une demande de signature de certificat (CSR) – Serveur
- Generate a Certificate Signing Request (CSR) – Client
- Process a Certificate Signing Request (CSR) on the Root Certificate Authority (CA)
Autorité de certification racine (AC)
- 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 sur l'AC (le certificat sera généré dans le fichier ca.crt):
Nom du pays (code à 2 lettres) [AU]:US Nom de l'État ou de la province (nom complet) [Some-State]:CA Nom de la localité (par ex., ville) []:Toontown Nom de l'organisation (par ex., société) [Internet Widgits Pty Ltd]:Acme inc. Nom de l'unité organisationnelle (par ex., section) []:Sécurité Nom commun (par ex. FQDN du serveur ou votre nom) []:acme.com Adresse électronique []:security@acme.com
- Install the certificate.
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.
Server certificate
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 sur le certificat du serveur (le FQDN exact utilisé par le serveur doit être spécifié). Par exemple :
Nom du pays (code à 2 lettres) [AU]:US Nom de l'État ou de la province (nom complet) [Some-State]:CA Nom de la localité (par ex., ville) []:Toontown Nom de l'organisation (par ex., société) [Internet Widgits Pty Ltd]:Acme inc. Nom de l'unité organisationnelle (par ex., section) []:Sécurité Nom commun (par ex. FQDN du serveur ou votre nom) []:vault.acme.com Adresse électronique []: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.
Certificat client
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
Traiter une demande de signature de certificat (CSR) sur l'Autorité de Certification (CA) racine
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.