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édenteProchaine révisionLes deux révisions suivantes | ||
tutoriel:internet:nginx:ssl:letsencrypt:start [2021/01/24 09:02] – [SSL pour Nginx : mettre en place un certificat SSL Let's Encrypt] admin | tutoriel:internet:nginx:ssl:letsencrypt:start [2022/02/13 14:36] – admin | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
{{tag> | {{tag> | ||
- | ====== SSL pour Nginx : mettre en place un certificat SSL Let's Encrypt ====== | + | ====== SSL pour Nginx : mettre en place un certificat SSL Let's Encrypt |
Les protocoles Web **TLS** (et son prédécesseur **SSL**) englobent le trafic dans un contenant protégé et chiffré pour : | Les protocoles Web **TLS** (et son prédécesseur **SSL**) englobent le trafic dans un contenant protégé et chiffré pour : | ||
Ligne 8: | Ligne 8: | ||
L' | L' | ||
+ | |||
+ | Normalement, | ||
+ | |||
+ | Cette page décrit l' | ||
Ce tutoriel utilise Certbot pour obtenir un certificat SSL gratuit pour Nginx et le configurer pour qu'il se renouvelle automatiquement. | Ce tutoriel utilise Certbot pour obtenir un certificat SSL gratuit pour Nginx et le configurer pour qu'il se renouvelle automatiquement. | ||
Ce didacticiel utilise un fichier d' | Ce didacticiel utilise un fichier d' | ||
- | ====== Pré-requis ====== | ||
- | * Un serveur Ubuntu avec un utilisateur non root disposant des privilèges sudo. | + | ===== Pré-requis ===== |
- | * **Nginx** installé | + | |
- | * posséder le **nom de domaine** enregistré avec lequel vous souhaitez utiliser le certificat. | + | |
- | * Un **enregistrement DNS A** qui fait pointer votre domaine vers l' | + | |
- | ====== Première étape : Installation | + | * **avoir enregistré officiellement le nom de domaine** avec lequel vous souhaitez utiliser le certificat. Ce nom de domaine doit être configuré et pointer vers votre site (adresse IP)<WRAP center round info 60%> |
+ | Dans ce tutoriel, ce sera le domaine **mondomaine.fr** | ||
+ | </ | ||
+ | * **Python** | ||
+ | * **[[logiciel: | ||
+ | Ce tutoriel utilisera **/ | ||
+ | </ | ||
- | Pour installer | + | ===== Première étape : Installation de Certbot |
- | ====== Autres étapes | + | Sous SSH, installez Certbot sur le serveur web :<cli prompt='$ '> |
+ | ...@...:~ $ sudo apt install certbot python-certbot-nginx</ | ||
+ | <WRAP center round info 60%> | ||
+ | Si vous êtes sous **Apache**, installez **python-certbot-apache** au lieu de python3-certbot-nginx | ||
+ | </ | ||
+ | |||
+ | ===== Autres étapes ===== | ||
Nous allons récupérer depuis Let’s Encrypt un certificat SSL pour notre serveur. | Nous allons récupérer depuis Let’s Encrypt un certificat SSL pour notre serveur. | ||
- | ===== Configuration de Nginx ===== | + | ==== Obtenir et installer vos certificats |
- | + | ||
- | Pour configurer automatiquement SSL pour Nginx, **Certbot** doit pouvoir de trouver le bloc server correct dans votre config. | + | |
- | + | ||
- | Pour ce faire, il recherche une directive server_name correspondant au domaine pour lequel vous demandez un certificat. | + | |
- | Si vous avez bien configuré l' | + | < |
- | - Pour le vérifier, ouvrez avec les droits d' | + | - **__Configuration de Nginx__** : |
+ | - **Certbot** recherche dans votre config de Nginx une directive **server_name** correspondant au domaine pour lequel vous demandez un certificat. | ||
+ | * Si vous avez bien configuré l' | ||
server { | server { | ||
<...> | <...> | ||
- | server_name | + | server_name |
<...> | <...> | ||
} | } | ||
</ | </ | ||
- | | + | |
nginx: the configuration file / | nginx: the configuration file / | ||
nginx: configuration file / | nginx: configuration file / | ||
- | | + | |
- | + | | |
- | Certbot peut maintenant trouver le bon bloc server et le mettre à jour. | + | - **__Autoriser |
- | + | - Affichez le réglage actuel :< | |
- | ===== Autoriser | + | |
- | + | ||
- | Si le pare-feu **ufw** est activé, | + | |
- | - Affichez le réglage actuel :< | + | |
Status: active | Status: active | ||
Ligne 60: | Ligne 66: | ||
80 (v6) ALLOW | 80 (v6) ALLOW | ||
22/tcp (v6) ALLOW | 22/tcp (v6) ALLOW | ||
- | | + | |
- | + | - **__Obtention | |
- | ===== Obtention | + | |
- | + | ... | |
- | Certbot fournit des plugins pour obtenir des certificats SSL. Le plugin --nginx reconfigure Nginx et recharge la configuration autant que nécessaire. Pour utiliser ce plugin, tapez :< | + | |
- | <...> | + | |
Enter email address (used for urgent renewal and security notices) (Enter ' | Enter email address (used for urgent renewal and security notices) (Enter ' | ||
cancel): votre@email.fr | cancel): votre@email.fr | ||
- | <...> | + | ... |
Please read the Terms of Service at | Please read the Terms of Service at | ||
- | <...> | + | ... |
(A)gree/ | (A)gree/ | ||
<...> | <...> | ||
- | Would you be willing to share your email address with <...> | + | Would you be willing to share your email address with ... |
- | <...> | + | ... |
(Y)es/(N)o: N | (Y)es/(N)o: N | ||
- | <...> | + | ... |
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. | Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. | ||
- | <...> | + | ... |
1: No redirect - Make no further changes to the webserver configuration. | 1: No redirect - Make no further changes to the webserver configuration. | ||
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for | 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for | ||
new sites, or if you're confident your site works on HTTPS. You can undo this | new sites, or if you're confident your site works on HTTPS. You can undo this | ||
change by editing your web server' | change by editing your web server' | ||
- | <...> | + | ... |
Select the appropriate number [1-2] then [enter] (press ' | Select the appropriate number [1-2] then [enter] (press ' | ||
<...> | <...> | ||
- | </ | + | </ |
- | Cette commande lance certbot avec le plugin **--nginx**, | + | |
- | + | * Puis certbot vérifie que vous êtes le propriétaire du domaine pour lequel vous demandez un certificat. | |
- | La première fois que vous exécutez certbot, vous serez invité à saisir une adresse e-mail et à accepter les conditions d' | + | |
- | + | * **1** : Pas de redirection - Ne faites plus de modification à la configuration du serveur Web. | |
- | Ensuite, | + | * **2** : Redirection - Rediriger toutes les demandes vers un accès sécurisé HTTPS. |
- | + | | |
- | Si cela réussit, certbot vous demande comment configurer vos paramètres HTTPS : | + | |
- | | + | |
- | | + | |
- | Sélectionnez votre choix puis appuyez sur < | + | |
- | + | ||
- | La configuration est mise à jour et Nginx se recharge pour récupérer les nouveaux paramètres. | + | |
- | + | ||
- | certbot termine avec un message vous indiquant que le processus a réussi et où sont stockés vos certificats : | + | |
- | <cli> | + | |
IMPORTANT NOTES: | IMPORTANT NOTES: | ||
- Congratulations! Your certificate and chain have been saved at | - Congratulations! Your certificate and chain have been saved at | ||
Ligne 119: | Ligne 116: | ||
| | ||
</ | </ | ||
+ | * Vos certificats sont maintenant téléchargés, | ||
+ | * Rechargez votre site Web en utilisant %%https:// | ||
+ | * Si vous testez votre serveur à l'aide du test de [[https:// | ||
+ | - **__Vérification du renouvellement automatique de Certbot__** : | ||
+ | * Les certificats de Let’s Encrypt ne sont valables que quatre-vingt-dix jours. | ||
+ | * certbot renouvelle automatiquement le certificat en ajoutant à /etc/cron.d un script qui s' | ||
+ | * Pour tester le processus de renouvellement :< | ||
+ | * Si nécessaire, | ||
+ | * Si le processus de renouvellement automatisé échoue, Let’s Encrypt enverra un message à l' | ||
+ | </ | ||
- | Vos certificats sont maintenant téléchargés, | ||
- | |||
- | Essayez de recharger votre site Web avec %%https:// | ||
- | |||
- | Il doit indiquer que le site est correctement sécurisé, généralement avec une icône de cadenas verte. | ||
- | |||
- | Si vous testez votre serveur à l'aide du test de [[https:// | ||
- | |||
- | ===== Vérification du renouvellement automatique de Certbot ===== | ||
- | |||
- | Les certificats de Let’s Encrypt ne sont valables que quatre-vingt-dix jours pour encourager les utilisateurs à automatiser leur processus de renouvellement de certificat. | ||
- | |||
- | certbot s'en charge pour nous en ajoutant un script de renouvellement à / | ||
- | |||
- | Ce script s' | ||
- | |||
- | Pour tester le processus de renouvellement, | ||
- | |||
- | Si vous ne voyez aucune erreur, vous êtes prêt. | ||
- | Si nécessaire, | + | ==== Obtenir seulement un certificat ==== |
- | Si le processus de renouvellement automatisé échoue, Let’s Encrypt enverra un message à l'e-mail que vous avez spécifié, vous avertissant que votre certificat est sur le point d'expirer. | + | <cli prompt='$ '>...@...:~ $ sudo certbot certonly --nginx</ |
- | ====== Conclusion | + | ===== Conclusion ===== |
Dans ce didacticiel, | Dans ce didacticiel, | ||
- | ====== Problèmes connus | + | ===== Problèmes connus ===== |
- | ====== Voir aussi ====== | + | ===== Voir aussi ===== |
+ | * **(fr)** [[https:// | ||
+ | * **(fr)** [[https:// | ||
+ | * **(en)** [[https:// | ||
+ | * **(en)** [[https:// | ||
* **(en)** [[https:// | * **(en)** [[https:// | ||
* **(en)** [[https:// | * **(en)** [[https:// | ||
- | * Pour Raspberry | + | * **(en)** [[https:// |
+ | * **(en)** [[https:// | ||
+ | * **(en)** [[https:// | ||
+ | * **(en)** [[https:// | ||
---- | ---- | ||
- | //Basé sur << [[https:// | + | //Basé sur << [[https:// |