Générer des certificats de serveur et de client auto-signés avec OpenSSL

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`.

Autorité de certification racine (AC)

  1. 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.

  2. Generate the Root CA Certificate (Certificate Authority) using the following command line: openssl req -new -x509 -sha256 -key ca.key -out ca.crt.

  3. 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
    
  4. 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.

  1. 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.

  2. 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.

  3. 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
    
  4. 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.

  5. Transférer le fichier server.csr à la CA racine.

  6. Process the request by following the instructions below.

  7. 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.

Devolutions Forum logo Donnez-nous vos commentaires