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

Ceci est le guide définitif pour créer des certificats sécurisés, tant pour les serveurs que pour les clients, en utilisant OpenSSL.

Procédure

Sur 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 (CA)

  1. Générer la clé privée de l'AC racine en utilisant la ligne de commande suivante :openssl ecparam -name prime256v1 -genkey -noout -out ca.key. Chaque certificat doit avoir une clé privée correspondante.
  2. Générer le Certificat AC Racine (Autorité de Certification) en utilisant la ligne de commande suivante : openssl req -new -x509 -sha256 -key ca.key -out ca.crt.
  3. Saisir les informations concernant le CA (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 exemple, ville) []:Toontown
    Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]:Acme inc.
    Nom de l'unité organisationnelle (par exemple, section) []:Sécurité
    Nom commun (par exemple, serveur FQDN ou votre nom) []:acme.com
    Adresse e-mail []:security@acme.com
    
  4. Installer le certificat.

Noter 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 également des particularités qui sont décrites dans la rubrique.

Certificat serveur

Ces étapes sont généralement exécutées sur chaque serveur ou appareil pour lequel vous avez l'intention 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 respecter des déploiements scriptés pour suivre les pratiques CloudOps/DevOps.

  1. Générer la Clé Privée du Certificat Serveur en utilisant la ligne de commande suivante : openssl ecparam -name prime256v1 -genkey -noout -out server.key (clé privée 256bit dans le fichier server.key). Chaque certificat doit avoir une clé privée correspondante.
  2. Générer la Demande de Signature de Certificat (CSR) du serveur en utilisant la ligne de commande suivante : openssl req -new -sha256 -key server.key -out server.csr. Cette demande sera ensuite traitée sur le serveur AC racine.
  3. Saisir les informations concernant 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 exemple, ville) []:Toontown
    Nom de l'organisation (par exemple, entreprise) [Internet Widgits Pty Ltd]:Acme inc.
    Nom de l'unité organisationnelle (par exemple, section) []:Sécurité
    Nom commun (par exemple, serveur FQDN ou votre nom) []:vault.acme.com
    Adresse e-mail []: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 fort est essentiel.
  5. Transférer le fichier server.csr vers le CA racine.
  6. Traiter la demande en suivant les instructions ci-dessous.
  7. Déployer le certificat.

Certificat client

Suivre la même procédure que pour le certificat de serveur, mais il faut adapter deux attributs des informations que vous entrez à vos besoins, à savoir le Nom Commun et l'Adresse Email.

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 racine (CA)

Traiter la CSR en générant un certificat.

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

Cela a pour résultat que le certificat est généré dans le fichier server.crt. Vous devez le déployer sur le serveur où vous avez généré la CSR.

Devolutions Forum logo Donnez-nous vos commentaires