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:// |