Un guide étape par étape pour implémenter le certificat Let's Encrypt TLS dans Nginx.
Sécuriser le site avec un certificat TLS est essentiel. Il y a deux principales raisons:
- Transmission sécurisée des données entre l'appareil d'un utilisateur et l'appareil de déchargement SSL / TLS
- Améliorer le classement de recherche Google
Dernièrement, Google annoncé ce site sans https: // serait marqué comme «No Secure» dans le navigateur Chrome.
Alors oui, dites OUI au HTTPS.
Si vous utilisez un blog, un site personnel, un site sans abonnement, un site transactionnel non financier, vous pouvez opter pour le certificat Let's Encrypt.
Let's Encrypt offre un Certificat GRATUIT.
Cependant, si vous acceptez une transaction financière, vous voudrez peut-être opter pour une certificat commercial.
Implémentons TLS dans Nginx…
Je suppose que vous avez déjà Nginx installé et en cours d'exécution sinon vous y référez guide d'installation.
Il existe plusieurs façons d'y parvenir.
Let’s Encrypt using Certbot
L'une des méthodes les plus simples et recommandées pour l'installer.
Certbot propose un menu déroulant où vous pouvez sélectionner le serveur Web et le système d'exploitation pour obtenir les instructions.
J'ai sélectionné Nginx et Ubuntu comme vous pouvez le voir ci-dessous.
Et j'exécuterai ce qui suit sur le serveur Nginx pour installer le plugin certbot.
# apt-get install software-properties-common # add-apt-repository ppa: certbot / certbot # apt-get update # apt-get install python-certbot-nginx
Une fois que tout va bien, il est temps d'utiliser un plugin certbot pour installer un certificat dans Nginx.
Vous pouvez utiliser la commande ci-dessous qui se chargera de modifier le fichier nécessaire pour configurer le certificat.
# certbot --nginx
Il vérifiera le CN (nom commun) dans le fichier de configuration Nginx existant, et il ne le trouve pas, puis il vous demandera d'entrer.
Ex:
root@instance-1:/etc/nginx/sites-available# certbot --nginx Enregistrement du journal de débogage dans /var/log/letsencrypt/letsencrypt.log Plugins sélectionnés : Authenticator nginx, Installer nginx Démarrage d'une nouvelle connexion HTTPS (1) : acme -v01.api.letsencrypt.org Aucun nom n'a été trouvé dans vos fichiers de configuration. Veuillez saisir votre ou vos noms de domaine (séparés par des virgules et/ou des espaces) (Entrez 'c' pour annuler) : bloggerflare.com Obtention d'un nouveau certificat Réalisation des challenges suivants : challenge http-01 pour bloggerflare.com En attente de vérification. .. Nettoyage des défis Certificat déployé sur VirtualHost /etc/nginx/sites-enabled/default pour bloggerflare.com Veuillez choisir de rediriger ou non le trafic HTTP vers HTTPS, en supprimant l'accès HTTP. -------------------------------------------------- ----------------------------- 1 : Pas de redirection - N'apportez aucune autre modification à la configuration du serveur Web. 2 : Rediriger - Rediriger toutes les demandes vers un accès HTTPS sécurisé. Choisissez cette option pour les nouveaux sites ou si vous êtes sûr que votre site fonctionne sur HTTPS. Vous pouvez annuler cette modification en modifiant la configuration de votre serveur Web. -------------------------------------------------- ----------------------------- Sélectionnez le numéro approprié [1-2] puis [enter] (appuyez sur 'c' pour annuler) : 2 Rediriger tout le trafic sur le port 80 vers ssl dans /etc/nginx/sites-enabled/default ----------------------------- -------------------------------------------------- Toutes nos félicitations! Vous avez activé avec succès https://bloggerflare.com Vous devriez tester votre configuration sur : https://www.ssllabs.com/ssltest/analyze.html?d=bloggerflare.com ----------- -------------------------------------------------- ------------------ REMARQUES IMPORTANTES : - Félicitations ! Votre certificat et votre chaîne ont été enregistrés sur : /etc/letsencrypt/live/bloggerflare.com/fullchain.pem Votre fichier de clé a été enregistré sur : /etc/letsencrypt/live/bloggerflare.com/privkey.pem Votre certificat expirera le 2018-05-27. Pour obtenir une nouvelle version ou une version modifiée de ce certificat à l'avenir, exécutez simplement certbot à nouveau avec l'option "certonly". Pour renouveler *tous* vos certificats de manière non interactive, exécutez "certbot renouveler" - Si vous aimez Certbot, veuillez envisager de soutenir notre travail en : faisant un don à l'ISRG / Let's Encrypt: https://letsencrypt.org/donate Faire un don à EFF : https://eff.org/donate-le root@instance-1:/etc/nginx/sites-available#
L'automatisation Certbot est smart!
Comme vous pouvez le voir, il a pris en charge toute la configuration nécessaire pour rendre mon Nginx prêt à servir sur https.
Cependant, si vous ne souhaitez pas que Certbot modifie la configuration pour vous, vous pouvez simplement demander la commande ci-dessous.
# certbot --nginx certonly
La commande ci-dessus n'effectuera aucune modification au lieu de vous fournir simplement le certificat afin que vous puissiez configurer comme vous le souhaitez.
Mais que faire si vous ne pouvez pas ou ne voulez pas utiliser Certbot?
Manual Procedure
Il existe de nombreuses façons d'obtenir le certificat émis par Let's Encrypt, mais l'une des méthodes recommandées provient de SSL gratuitement outil en ligne.
Fournissez votre URL et procédez à la méthode de vérification. Une fois vérifié, vous obtiendrez le certificat, la clé privée et l'autorité de certification.
Téléchargez-les et transférez-les sur le serveur Nginx. Gardons-les sous le dossier ssl (créer s'il n'existe pas) du chemin d'installation de Nginx
root@instance-2 :/etc/nginx/ssl# ls -ltr -rw-r - r-- 1 root root 1704 26 février 10:04 private.key -rw-r - r-- 1 racine racine 1647 26 février 10:04 ca_bundle.crt -rw-r - r-- 1 racine racine 3478 26 février 10:57 certificate.crt root@instance-2 :/etc/nginx/ssl#
Avant de procéder à la modification de la configuration, vous devez concaténer certificate.crt
et ca_bundle.crt
en un seul fichier. Appelons-le tlscert.crt
cat certificate.crt ca_bundle.crt >> tlscert.crt
- Cliquez sur
sites-available
dossier et ajoutez ce qui suit dans le fichier de configuration du site respectif
serveur { écoutez 443; ssl sur; certificat_ssl /etc/nginx/ssl/tlscert.crt; ssl_certificate_key /etc/nginx/ssl/private.key ; }
- Redémarrer Nginx
service nginx restart
Essayez d'accéder au domaine respectif via HTTPS
Alors voilà, c'est un succès!
Une alternative à Let's Encrypt, vous pouvez également utiliser Zéro SSL ce qui est expliqué ici sur la mise en œuvre.
Ensuite, vous souhaiterez peut-être tester votre site pour Vulnérabilité SSL / TLS et les réparer si trouvé.