Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tutoriel:reseau:http:serveur:nginx:ssl:autosigne:start [2024/09/21 10:27] – supprimée - modification externe (Unknown date) 127.0.0.1 | tutoriel:reseau:http:serveur:nginx:ssl:autosigne:start [2024/09/21 10:43] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. admin | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ====== SSL pour Nginx : mettre en place un certificat SSL auto-signé ====== | ||
| + | |||
| + | Les protocoles Web **TLS** (et son prédécesseur **SSL**) englobent le trafic dans un contenant protégé et chiffré pour : | ||
| + | < | ||
| + | - échanger en toute sécurité sans que les messages soient interceptés par un tiers. | ||
| + | - permettre aux utilisateurs de vérifier l' | ||
| + | </ | ||
| + | |||
| + | Nous allons configurer un certificat SSL auto-signé pour un serveur Web Nginx sous Ubuntu. | ||
| + | |||
| + | <WRAP center round important 60%> | ||
| + | Un certificat auto-signé ne valide pas l' | ||
| + | |||
| + | Il permet cependant de crypter les communications avec vos clients Web. | ||
| + | |||
| + | Au lieu d'un certificat auto-signé, | ||
| + | |||
| + | Consultez le tutoriel **[[tutoriel: | ||
| + | </ | ||
| + | ===== Pré-requis ===== | ||
| + | |||
| + | * un serveur Web Nginx installé : | ||
| + | * **[[tutoriel: | ||
| + | * ou **[[logiciel: | ||
| + | ===== Première étape : créer le dossier pour mettre les certificats SSL ===== | ||
| + | |||
| + | Créez le répertoire **/ | ||
| + | USER@MACHINE: | ||
| + | ===== Autres étapes ===== | ||
| + | |||
| + | ==== Créer la clé et le certificat ==== | ||
| + | |||
| + | Créez en une seule commande la clé SSL **/ | ||
| + | |||
| + | Generating a RSA private key | ||
| + | <...> | ||
| + | writing new private key to ' | ||
| + | <...> | ||
| + | ----- | ||
| + | Country Name (2 letter code) [AU]:FR | ||
| + | State or Province Name (full name) [Some-State]: | ||
| + | Locality Name (eg, city) []:. | ||
| + | Organization Name (eg, company) [Internet Widgits Pty Ltd]:. | ||
| + | Organizational Unit Name (eg, section) []:. | ||
| + | Common Name (e.g. server FQDN or YOUR name) []: | ||
| + | Email Address []:. | ||
| + | ...@...:/ | ||
| + | <...> | ||
| + | -rw------- 1 root root 1,7K juil. 8 20:29 monsite.fr.key | ||
| + | -rw-r--r-- 1 root root 1,5K juil. 8 20:32 monsite.fr.crt</ | ||
| + | |||
| + | <WRAP center round tip 60%> | ||
| + | **Réponses à fournir** : | ||
| + | < | ||
| + | - **Country Name (2 letter code) [AU]** : FR | ||
| + | - **Common Name (e.g. server FQDN or YOUR name) []:** : monsite.fr (nom ou IP de votre site) | ||
| + | - **Les autres lignes** : auxquelles vous répondez par un point (.) seront laissées vides. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP center round info 60%> | ||
| + | **Explication de la commande** : | ||
| + | < | ||
| + | - **openssl** : commande pour créer et gérer les certificats, | ||
| + | - **req -x509** : le type de certificat à créer = certificat auto-signé | ||
| + | - **-days 365** : durée de validité du certificat, ici un an | ||
| + | - **-nodes** : sauter la sécurisation du certificat avec une phrase secrète. Nginx doit pouvoir lire le fichier sans intervention de l' | ||
| + | - **-newkey rsa:2048** : générer un nouveau certificat et une nouvelle clé en même temps | ||
| + | - **rsa: | ||
| + | - **-keyout** : fichier de clé privée | ||
| + | - **-out** : fichier du certificat | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Configurer Nginx pour utiliser SSL ==== | ||
| + | |||
| + | Il nous reste à modifier les blocs **server** des fichiers de configuration de Nginx. | ||
| + | |||
| + | Nginx peut activer SSL dans le même bloc server que le trafic HTTP normal. | ||
| + | |||
| + | Cela simplifie la configuration du site. | ||
| + | |||
| + | Pour que SSL fonctionne sur un bloc serveur, tout en autorisant les connexions HTTP régulières, | ||
| + | server { | ||
| + | <...> | ||
| + | listen 443 ssl; | ||
| + | <...> | ||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | <...> | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Ce qui peut donner par exemple :<code - / | ||
| + | server { | ||
| + | listen 80 defaultserver; | ||
| + | listen [::]:80 defaultserver ipv6only=on; | ||
| + | listen 443 ssl; | ||
| + | |||
| + | root / | ||
| + | index index.html index.htm; | ||
| + | |||
| + | server_name monsite.fr; | ||
| + | |||
| + | ssl_certificate / | ||
| + | ssl_certificate_key / | ||
| + | |||
| + | location / { | ||
| + | try_files $uri $uri/ =404; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Redémarrez Nginx :<cli prompt=' | ||
| + | |||
| + | Votre site répond désormais aux demandes HTTP et HTTPS (SSL). | ||
| + | |||
| + | ==== Tester votre configuration ==== | ||
| + | |||
| + | < | ||
| + | - **Ouvrez en hhtp** le nom de domaine [[http:// | ||
| + | - **Ouvrez en hhtps** (donc utilisez SSL) le nom de domaine [[https:// | ||
| + | </ | ||
| + | ===== Conclusion ===== | ||
| + | |||
| + | Vous avez configuré votre serveur Nginx pour gérer à la fois les requêtes HTTP et SSL. | ||
| + | |||
| + | Cela vous aidera à communiquer avec vos clients en toute sécurité et à éviter que des tiers ne puissent lire votre trafic. | ||
| + | |||
| + | Si vous envisagez d' | ||
| + | |||
| + | ===== Problèmes connus ===== | ||
| + | |||
| + | ===== Voir aussi ===== | ||
| + | |||
| + | * **(en)** [[https:// | ||
| + | |||
| + | ---- | ||
| + | //Basé sur << [[https:// | ||