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édentesRévision précédente
Prochaine révision
Révision précédente
ssl [2020/09/25 13:42] wikisiossl [2021/09/08 09:50] (Version actuelle) wikisio
Ligne 42: Ligne 42:
 __Installer la bibliothèque OpenSSL__  __Installer la bibliothèque OpenSSL__ 
 <code lscript>apt install openssl</code> <code lscript>apt install openssl</code>
 +
 +__Installer les outils de manipulation des éléments de sécurité__
 +<code lscript>apt install easy-rsa</code>
  
 Cet outil propose notamment des commandes pour la création de clé secrète (//gendh//, //genrsa//, ...) ou la génération de certificat (//x509//). Cet outil propose notamment des commandes pour la création de clé secrète (//gendh//, //genrsa//, ...) ou la génération de certificat (//x509//).
Ligne 47: Ligne 50:
 == 1 : Création d'une clé privée == == 1 : Création d'une clé privée ==
  
-La base des techniques de cryptage asymétrique repose sur la présence, à un endroit unique, d'une **clé privée**.  +La base des techniques de <wrap em>cryptage asymétrique</wrap> repose sur la présence, à un endroit unique, d'une **//clé privée//**.  
-Elle permettra de créer une **clé publique** (dans un **certificat**) et de décrypter ce qui aura été chiffré par cette **clé publique**. +Elle permettra de créer une **//clé publique//** (dans un **//certificat//**) et de décrypter ce qui aura été chiffré par cette **//clé publique//**. 
  
 On utilisera (pour l'algorithme RSA) la commande **//genrsa//** de //OpenSSL//. On utilisera (pour l'algorithme RSA) la commande **//genrsa//** de //OpenSSL//.
 <code lscript>openssl genrsa -out <nom_fichier_cle> <taille_cle></code> <code lscript>openssl genrsa -out <nom_fichier_cle> <taille_cle></code>
  
-__Exemple : crée une clé privée dans un dossier personnalisé__+__Exemple : créer une clé privée dans le dossier private__
  
 <code lscript> <code lscript>
-cd /etc/ssl +cd /etc/ssl/private
-mkdir mesCles +
-cd mesCles+
 openssl genrsa -out cleGSB.key 2048 openssl genrsa -out cleGSB.key 2048
 </code> {{ :clersa.png?direct&200|}} </code> {{ :clersa.png?direct&200|}}
  
-On pourra alors éditer la clé et en lire le contenu (évidemment inaccessible). +On pourra alors éditer la clé (avec nano) et en lire le contenu (évidemment inaccessible). 
 Cette même clé peut servir à établir des certificats différents pour des usages distincts (serveur FTP, serveur Web, messagerie, etc).  Cette même clé peut servir à établir des certificats différents pour des usages distincts (serveur FTP, serveur Web, messagerie, etc). 
  
 == 2 : Création d'un certificat X509 == == 2 : Création d'un certificat X509 ==
  
-La clé privée ne doit jamais être diffusée. On va donc générer la partie publique sous forme d'un certificat. +<wrap em>La clé privée ne doit jamais être diffusée</wrap>. On va donc générer la **//partie publique//** sous forme d'un <wrap em>certificat</wrap> 
 Pour que ce dernier soit accessible aux navigateurs, on a recours au format standard X509.  Pour que ce dernier soit accessible aux navigateurs, on a recours au format standard X509. 
 +
 +Les certificats sont à stocker dans le dossier **//certs//** du dossier SSL.
  
 La création va donc passer par deux étapes :  La création va donc passer par deux étapes : 
Ligne 79: Ligne 83:
 <code lscript>openssl x509 -req -days <nb_jours> -in <nom_certif_generic.csr> -signkey <nom_fichier_cle> -out <nom_certif_X509.crt></code> <code lscript>openssl x509 -req -days <nb_jours> -in <nom_certif_generic.csr> -signkey <nom_fichier_cle> -out <nom_certif_X509.crt></code>
  
-__Exemple : création d'un certificat dans un dossier spécifique à partir de la clé RSA__+__Exemple : création d'un certificat dans le dossier des certificats SSL à partir de la clé RSA__
 <WRAP group> <WRAP group>
 <WRAP half column> <WRAP half column>
 <code lscript> <code lscript>
-cd /etc/ssl +cd /etc/ssl/certs 
-mkdir mesCertifs +openssl req -new -key ../private/cleGSB.key -out GSBCertGen.csr 
-cd mesCertifs +openssl x509 -req -days 365 -in GSBCertGen.csr -signkey ../private/cleGSB.key -out GSBcertif.crt 
-openssl req -new -key ../mesCles/cleGSB.key -out GSBCertGen.csr +
-openssl x509 -req -days 365 -in GSBCertGen.csr -signkey ../mesCles/cleGSB.key -out GSBcertif.crt +
 </code> </code>
 </WRAP> </WRAP>
Ligne 110: Ligne 112:
      
 //remarque// : Si le module est déjà activé, un message l'indique.  //remarque// : Si le module est déjà activé, un message l'indique. 
 +
 +<WRAP center round tip 60%>
 +Si la commande ne fonctionne pas, faire les commandes suivantes :
 +  * cp  /etc/apache2/mods-available/ssl.load  /etc/apache2/mods-enabled/
 +  * cp  /etc/apache2/mods-available/ssl.conf  /etc/apache2/mods-enabled/
 +  * cp  /etc/apache2/mods-available/socache_shmcb.load  /etc/apache2/mods-enabled/
 +  * systemctl restart apache2 ou service apache2 restart
 +</WRAP>
 +
 +  
  
 On peut alors voir dans ///etc/apache2/mods-enabled/ssl.load// que la ligne ci-dessous est dé-commentée On peut alors voir dans ///etc/apache2/mods-enabled/ssl.load// que la ligne ci-dessous est dé-commentée
Ligne 122: Ligne 134:
 nano 000-default.conf nano 000-default.conf
 </code> </code>
-On **ajoutera** un hôte virtuel pour cette écoute : +On <wrap em>ajoutera</wrap> un hôte virtuel pour cette écoute : 
 <code apache> <code apache>
 #on adaptera le numéro de port conformément à ce qui a été écrit dans ports.conf #on adaptera le numéro de port conformément à ce qui a été écrit dans ports.conf
Ligne 128: Ligne 140:
  DocumentRoot /var/www/html  DocumentRoot /var/www/html
  SSLEngine on # active le SSL  SSLEngine on # active le SSL
- SSLCertificateFile /etc/ssl/mesCertifs/GSBCertif.crt # chemin du certificat X509 + SSLCertificateFile /etc/ssl/certs/GSBCertif.crt # chemin du certificat X509 
- SSLCertificateKeyFile /etc/ssl/mesCles/cleGSB.key # chemin de la clé privée+ SSLCertificateKeyFile /etc/ssl/private/cleGSB.key # chemin de la clé privée
 </VirtualHost> </VirtualHost>
 </code> </code>
Ligne 137: Ligne 149:
 __Contrôle depuis un navigateur__ __Contrôle depuis un navigateur__
  
-Dans la barre de navigation du navigateur, on tapera [[https://adresseServeur]].+Dans la barre de navigation du navigateur, on tapera [[https://<adresseServeur>]].
  
 {{:connexionnoncertifieee.png?direct&300|}} {{:connexionnoncertifieee.png?direct&300|}}
Ligne 160: Ligne 172:
  TLSLog /var/log/proftpd/tls.log # dossier pour enregistrer les journaux tls  TLSLog /var/log/proftpd/tls.log # dossier pour enregistrer les journaux tls
  TLSProtocol SSLv23 # versions supportées (2 et 3)  TLSProtocol SSLv23 # versions supportées (2 et 3)
- TLSRSACertificateFile /etc/ssl/mesCertifs/GSBCertif.crt #chemin du certif + TLSRSACertificateFile /etc/ssl/certs/GSBCertif.crt #chemin du certif 
- TLSRSACertificateKeyFile /etc/ssl/mesCles/cleGSB.key # chemin de la clé+ TLSRSACertificateKeyFile /etc/ssl/private/cleGSB.key # chemin de la clé
  TLSVerifyClient off # n'oblige pas l'authentification des clients pour TLS  TLSVerifyClient off # n'oblige pas l'authentification des clients pour TLS
  #TLSRequired on # peut obliger les clients à utiliser TLS  #TLSRequired on # peut obliger les clients à utiliser TLS