Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
tutoriel:comment_creer_un_certificat_ssl [Le 18/04/2007, 21:23]
skateinmars Erreur : -in server.csr dans la dernière commande
tutoriel:comment_creer_un_certificat_ssl [Le 01/09/2022, 00:09] (Version actuelle)
moths-art Passage de http à https sur les liens externes (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>breezy dapper edgy serveur ​securite ​tutoriel}}+{{tag>trusty ​serveur ​sécurité ​tutoriel}}
  
 ---- ----
Ligne 9: Ligne 9:
 ===== Introduction ===== ===== Introduction =====
  
-Dans plusieurs documents du wiki, on aborde la question de la création de certificat SSL privé (c'​est-à-dire qu'ils ne sont pas certifiés par une autorité indépendante). +Dans plusieurs documents du wiki, on aborde la question de la création de certificat SSL.
- +
-Il existe beaucoup de sites expliquant comment créer un certificat SSL personnel. Voici une technique qui fonctionne mais dans laquelle je ne donne pas beaucoup de détails.+
  
 +Il existe beaucoup de sites expliquant comment créer un certificat SSL. Voici une technique qui fonctionne mais dans laquelle je ne donne pas de détails.
 ===== Pré-requis ===== ===== Pré-requis =====
  
Ligne 24: Ligne 23:
 ===== Marche à suivre ===== ===== Marche à suivre =====
  
-Commencez par créer un répertoire pour contenir les certificats :+==== Clef privée du serveur ====
  
 +Placez-vous dans le répertoire ''/​etc/​ssl''​ et créez la clé :
 <​code>​ <​code>​
-sudo mkdir /etc/ssl+cd /etc/ssl 
 +sudo openssl genrsa -out server.key 2048
 </​code>​ </​code>​
  
-Placez-vous dans ce répertoire et créez ​la clé :+Cette commande va créer ​la clé privée avec l'​algorithme RSA 2048 bits.
  
-<​code>​ +==== Demande de signature du certificat ====
-cd /etc/ssl +
-sudo openssl genrsa -out server.key 1024 +
-</​code>​+
  
-Introduisez les informations relatives au certificat. Veillez simplement à mettre le nom du serveur tel qu'il est appelé ​de l'​extérieur dans le champ ''​YOUR NAME''​ (par exemple ​''​relay.ubuntu-fr.org''​) ​:+Ensuite ​il faut générer un fichier ​de « demande de signature de certificat », en anglais CSR Certificate Signing Request  ​:
  
 <​code>​ <​code>​
Ligne 43: Ligne 41:
 </​code>​ </​code>​
  
-Enfin, générez ​le certificat final au format x509 pour 365 jours (1 an) :+Vous allez devoir répondre à un certain nombre de questions. Veillez surtout à mettre ​le nom du serveur tel qu'il est appelé de l'​extérieur dans le champ « Common Name » (par exemple ​"​www.example.com"​).
  
 +Optionnel : pour visualiser le contenu du fichier généré :
 <​code>​ <​code>​
-sudo openssl ​x509 -req -days 365 -in server.csr ​-signkey server.key -out server.crt+openssl req -text -noout ​-in server.csr
 </​code>​ </​code>​
 +==== Signature du certificat ====
 +
 +
 +Enfin, générez ou récupérez le certificat signé au format x509 suivant la méthode 1 ou 2 :
 +  - certificat auto-signé pour 365 jours (1 an) :<​code>​
 +sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
 +</​code>//​Remarque : ce certificat n'est authentifié par aucune autorité, vous aurez donc un message d'​avertissement quand vous vous connectez au serveur. //
 +  - certificat signé par une autorité tierce, par exemple :
 +    * [[https://​www.cacert.org|CACert]] : copier/​coller la demande (le fichier server.csr) à l'​autorité qui va signer le certificat à utiliser ([[https://​www.cacert.org/​account.php?​id=10|ici pour cacert]]).
 +    * [[https://​letsencrypt.org/​|Let'​s Encrypt]], avec l'​option --csr du client letsencrypt (CSR au format DER : option // -outform der// pour openssl)
 +
 +===== Usage avancé =====
 +
 +==== Usage non interactif ====
 +
 +Pour éviter de répondre aux questions de la localisation jusqu'​au domaine, il est possible de passer l'​argument subject à la commande openssl. Ajouter le paramètre : //-subj "/​OU=Domain Control Validated/​CN=exemple.fr"//​
 +
 +<note help>//​Domain Control Validated// indique simplement que seule la vérification du domaine est effectuée. Ce paramètre peut être omis. Il existe une vérification DV (celle indiquée) et EV, plus complète. Plus de détails sur [[https://​certsimple.com/​blog/​are-ev-ssl-certificates-worth-it|ce blog]] (en).</​note>​
 +
 +==== Paramétrage fin de la CSR ====
 +
 +Les CSR permettent de valider plusieurs domaines avec un même certificat. Pour l'​utiliser,​ créer un fichier //​openssl_SAN.cnf//​ comme-suit :
 +<​file>​
 +[req]
 +req_extensions = v3_req
 +distinguished_name = req_distinguished_name
 +
 +[req_distinguished_name]
 +
 +[v3_req]
 +# Extensions to add to a certificate request
 +basicConstraints = CA:FALSE
 +keyUsage = digitalSignature,​ keyEncipherment
 +
 +[SAN]
 +subjectAltName=DNS:​exemple.fr,​DNS:​www.exemple.fr
 +</​file>​
 +
 +Et ajouter les paramètres suivants à la commande openssl : //-config openssl_SAN.cnf -reqexts SAN//
 +
 +===== Voir aussi =====
  
-//Remarque : ce certificat n'​est ​authentifié par aucune autoritévous aurez donc un message ​d'avertissement quand vous vous connectez au serveur. //+  * **(fr)** [[https://www.magdiblog.fr/​divers/​creer-une-passerelle-securisee-avec-un-raspberry-pi/​|Qu'​est ​ce qu'un certificatcomment créer une CA ainsi qu'un exemple ​d'authentification par certificat client]] 
 +  * **(en)** [[https://​www.tty1.net/blog/2015/​using-letsencrypt-in-manual-mode_en.html|Utilisation détaillée avec Let's Encrypt]]
  
 ---- ----
  
-// Contributeur : [[utilisateurs:​ostaquet]] //+// Contributeur ​5: [[utilisateurs:​Jeremy]] //
  
  • tutoriel/comment_creer_un_certificat_ssl.1176924183.txt.gz
  • Dernière modification: Le 18/04/2011, 14:50
  • (modification externe)