Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| ssl [2022/10/10 14:31] – [Mode opératoire] admin | ssl [2025/02/15 12:16] (Version actuelle) – [Redirection de HTTP vers HTTPS] administrateur | ||
|---|---|---|---|
| Ligne 18: | Ligne 18: | ||
| La démarche est commune quel que soit le service que l'on souhaite sécuriser. | La démarche est commune quel que soit le service que l'on souhaite sécuriser. | ||
| Seuls les fichiers à modifier changent d'un service à l' | Seuls les fichiers à modifier changent d'un service à l' | ||
| - | < | + | < |
| - | | + | Créer le répertoire pour stocker les clés et certificats |
| - Créer la clé privée | - Créer la clé privée | ||
| - Créer le certificat X509 à partir de la clé privée en renseignant toutes les informations demandées | - Créer le certificat X509 à partir de la clé privée en renseignant toutes les informations demandées | ||
| - | - Paramétrer le service concerné | + | - Paramétrer le service concerné |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - Tester depuis un client en lui indiquant l' | - Tester depuis un client en lui indiquant l' | ||
| - | - Éventuellement, | + | * Éventuellement, |
| </ | </ | ||
| - | ==== Mode opératoire ==== | + | ===== Mode opératoire ===== |
| - | + | ||
| - | === Mise en place d'un certificat avec OpenSSL | + | |
| {{ : | {{ : | ||
| - | //OpenSSL// est une transposition //Open Source// ([[http:// | + | //OpenSSL// est une transposition //Open Source// ([[http:// |
| Le nom est resté //OpenSSL// mais la bibliothèque supporte aussi la version TLS. | Le nom est resté //OpenSSL// mais la bibliothèque supporte aussi la version TLS. | ||
| + | |||
| //OpenSSL// gère de nombreux <wrap em> | //OpenSSL// gère de nombreux <wrap em> | ||
| + | |||
| + | ==== Installation des outils ==== | ||
| __Installer la bibliothèque OpenSSL__ | __Installer la bibliothèque OpenSSL__ | ||
| Ligne 48: | Ligne 50: | ||
| 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//). | ||
| - | == 1 : Création d'une clé privée == | + | ==== Mise en place d'un certificat avec OpenSSL ==== |
| + | |||
| + | === 1 : Création d'une clé privée | ||
| La base des techniques de <wrap em> | La base des techniques de <wrap em> | ||
| Ligne 56: | Ligne 60: | ||
| <code lscript> | <code lscript> | ||
| + | <WRAP center round info 100%> | ||
| __Exemple : créer une clé privée dans le dossier private__ | __Exemple : créer une clé privée dans le dossier private__ | ||
| - | <code lscript> | + | {{ : |
| cd / | cd / | ||
| openssl genrsa -out cleGSB.key 2048 | openssl genrsa -out cleGSB.key 2048 | ||
| - | </ | + | </ |
| + | </ | ||
| On pourra alors éditer la clé (avec nano) 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 === |
| <WRAP center round important 60%> | <WRAP center round important 60%> | ||
| Ligne 80: | Ligne 87: | ||
| * Création d'un d'une <wrap em> | * Création d'un d'une <wrap em> | ||
| - | si la signature est faite par la même machine que la demande, le certificat est auto-signé et génèrera une alerte sur les navigateurs | + | si la signature est faite par la même machine que la demande, le <wrap em>certificat est auto-signé</ |
| </ | </ | ||
| <code lscript> | <code lscript> | ||
| Ligne 88: | Ligne 95: | ||
| <code lscript> | <code lscript> | ||
| + | <WRAP center round info 100%> | ||
| __Exemple : création d'un certificat dans le dossier des certificats SSL à 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 half column> | ||
| <code lscript> | <code lscript> | ||
| cd / | cd / | ||
| Ligne 96: | Ligne 102: | ||
| openssl x509 -req -days 365 -in GSBCertGen.csr -signkey ../ | openssl x509 -req -days 365 -in GSBCertGen.csr -signkey ../ | ||
| </ | </ | ||
| + | |||
| </ | </ | ||
| - | < | + | < |
| - | <WRAP center | + | |
| Penser à adapter les valeurs à votre environnement | Penser à adapter les valeurs à votre environnement | ||
| - | </ | ||
| - | </ | ||
| </ | </ | ||
| Ligne 112: | Ligne 116: | ||
| ===== Configuration d' | ===== Configuration d' | ||
| + | ====Activation du module SSL==== | ||
| La configuration nécessite l' | La configuration nécessite l' | ||
| - | | + | <code lscript> |
| | | ||
| // | // | ||
| <WRAP center round tip 90%> | <WRAP center round tip 90%> | ||
| - | Si la commande a2enmod ne fonctionne pas, faire les commandes suivantes : | + | <wrap em>Si la commande a2enmod ne fonctionne pas</ |
| * cp / | * cp / | ||
| * cp / | * cp / | ||
| Ligne 126: | Ligne 131: | ||
| | | ||
| + | <WRAP center round <WRAP center round info 90%> | ||
| + | |||
| **__Contrôle__** | **__Contrôle__** | ||
| Ligne 131: | Ligne 138: | ||
| <code apache> | <code apache> | ||
| + | |||
| + | |||
| + | </ | ||
| Dans le fichier // | Dans le fichier // | ||
| + | ====Prise en charge des éléments de sécurité==== | ||
| Se placer dans le dossier // / | Se placer dans le dossier // / | ||
| <code lscript> | <code lscript> | ||
| Ligne 139: | Ligne 150: | ||
| nano 000-default.conf | nano 000-default.conf | ||
| </ | </ | ||
| + | |||
| On <wrap em> | On <wrap em> | ||
| <code apache> | <code apache> | ||
| Ligne 153: | Ligne 165: | ||
| </ | </ | ||
| - | Il faudra redémarrer Apache, qui indiquera si une erreur éventuelle est rencontrée (dans le chemin, dans le nom du fichier, dans le contenu du certificat, etc). | + | Il faudra |
| + | <code lscript> | ||
| - | __Contrôle | + | ====Contrôle |
| Dans la barre de navigation du navigateur, on tapera [[https://< | Dans la barre de navigation du navigateur, on tapera [[https://< | ||
| Ligne 163: | Ligne 176: | ||
| Du fait que le certificat que nous avons créé n'est pas garanti par un organisme officiel, le navigateur met en garde sur le manque de confiance accordée à un certificat signé par son créateur. | Du fait que le certificat que nous avons créé n'est pas garanti par un organisme officiel, le navigateur met en garde sur le manque de confiance accordée à un certificat signé par son créateur. | ||
| On doit vérifier qu'un cadenas fermé au bas du navigateur atteste d'une navigation sécurisée. | On doit vérifier qu'un cadenas fermé au bas du navigateur atteste d'une navigation sécurisée. | ||
| + | |||
| + | ===== Redirection de HTTP vers HTTPS ===== | ||
| + | Lorsqu' | ||
| + | |||
| + | Pour cela, dans le **// | ||
| + | <code apache> | ||
| + | < | ||
| + | //ligne à ajouter en adaptant l adresse du serveur | ||
| + | Redirect permanent / https://< | ||
| + | |||
| + | </ | ||
| + | </ | ||
| ===== Configuration de ProFTP avec SSL/TLS ===== | ===== Configuration de ProFTP avec SSL/TLS ===== | ||
| + | ====Activation du module TLS==== | ||
| Pour commencer, on devra indiquer dans le fichier /// | Pour commencer, on devra indiquer dans le fichier /// | ||
| <code lscript> | <code lscript> | ||
| - | On ira ensuite préciser au fichier // | + | On ira ensuite préciser au fichier // |
| + | <code lscript> | ||
| + | On dé-commentera la ligne suivante : | ||
| <code apache> | <code apache> | ||
| + | |||
| + | ====Prise en charge des éléments de sécurité==== | ||
| + | La configuration se passe dans le fichier tls.conf: | ||
| + | <code lscript> | ||
| Dans ce fichier // | Dans ce fichier // | ||
| <code apache> | <code apache> | ||
| < | < | ||
| - | TLSEngine on #active le TLS | + | #active le TLS |
| - | TLSLog / | + | TLSEngine on |
| - | TLSProtocol SSLv23 | + | # dossier pour enregistrer les journaux tls |
| - | TLSRSACertificateFile / | + | TLSLog / |
| - | TLSRSACertificateKeyFile / | + | # versions supportées (2 et 3) |
| - | TLSVerifyClient off # n' | + | TLSProtocol SSLv23 |
| - | # | + | #chemin du certificat |
| + | TLSRSACertificateFile / | ||
| + | | ||
| + | TLSRSACertificateKeyFile / | ||
| + | # n' | ||
| + | TLSVerifyClient off | ||
| + | | ||
| + | # | ||
| </ | </ | ||
| </ | </ | ||
| Il faudra bien entendu redémarrer le service //proftpd// qui indiquera si une erreur est rencontrée (dans le chemin, dans le nom du fichier, dans le contenu du certificat, etc). | Il faudra bien entendu redémarrer le service //proftpd// qui indiquera si une erreur est rencontrée (dans le chemin, dans le nom du fichier, dans le contenu du certificat, etc). | ||
| + | <code lscript> | ||
| ==== Test depuis le client ==== | ==== Test depuis le client ==== | ||
| Ligne 193: | Ligne 233: | ||
| On accèdera depuis un client FTP en contactant le serveur par une connexion //FTP SSL/TLS Explicite// (ici sous FileZilla Client). | On accèdera depuis un client FTP en contactant le serveur par une connexion //FTP SSL/TLS Explicite// (ici sous FileZilla Client). | ||
| - | {{: | + | {{ : |
| On rencontrera une mise en garde indiquant que le certificat n' | On rencontrera une mise en garde indiquant que le certificat n' | ||
| - | {{: | + | {{ : |
| ===== Sources ===== | ===== Sources ===== | ||
| * [[http:// | * [[http:// | ||