Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu et Debian

Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu et Debian

Après le précédent Escryptons tutoriel concernant Apache ssl, Dans cet article, nous discuterons de la façon de générer et d'installer un certificat SSL / TLS gratuit délivré par Saisissons Ca pour Nginx serveur Web sur Ubuntu ou Debian.

Également lire
  1. Sécurisez Apache avec Free Let's Encrypt sur Ubuntu et Debian
  2. Installez, cryptant SSL pour sécuriser Apache sur Rhel et Centos
Test de l'échantillon d'environnement
L'installation permet de crypter pour sécuriser Nginx sur Ubuntu et Debian

Exigences

  1. Un domaine enregistré avec DNS valide UN Enregistrements pour pointer de l'adresse IP de votre serveur.
  2. Un serveur Web Nginx installé avec SSL et VHOST activés, au cas où vous prévoyez d'héberger plusieurs domaines ou sous-domaines.

Étape 1: Installation du serveur Web Nginx

1. Sur la première étape, installez le serveur Web Nginx, s'il n'est pas déjà installé, en émettant la commande ci-dessous:

$ sudo apt-get install nginx 
Installez le serveur Web Nginx sur Ubuntu 14.04 et Debian 8

Étape 2: Générez un certificat SSL Let's Encrypt pour Nginx

2. Avant de générer un certificat SSL / TLS gratuit, installer Escryptons logiciel / usr / local / Hiérarchie du système de fichiers à l'aide de git Client en émettant les commandes ci-dessous:

$ sudo apt-get -y installer git $ cd / usr / local / $ sudo git clone https: // github.com / lesencrypt / lesencrypt 

3. Bien que la procédure d'obtention d'un certificat pour Nginx est automatisé, vous pouvez toujours créer et installer manuellement un certificat SSL gratuit pour nginx en utilisant le plugin autonome de Let's Encrypt.

Cette méthode nécessite ce port 80 ne doit pas être utilisé sur votre système pendant une courte période tandis que Let’s Crypt Client valide l'identité du serveur avant de générer le certificat.

Dans le cas où vous exécutez déjà Nginx, arrêtez le service en émettant la commande suivante.

$ sudo service nginx stop ou $ sudo systemctl stop nginx 

Dans le cas où vous exécutez un autre service qui se lie au port 80 Arrêtez également ce service.

4. Confirmer ce port 80 est libre en exécutant la commande netstat:

$ sudo netstat -tlpn | grep 80 
Vérifiez les ports d'écoute actuels dans Linux

5. Maintenant, il est temps de courir Laissez-le Afin d'obtenir un certificat SSL. Aller à Escryptons Répertoire d'installation trouvé dans / usr / local / lesencrypt Chemin du système et exécuter le Letsencrypt-Autito commande en fournissant le certificat --autonome option et -d Indicateur pour chaque domaine ou sous-domaine Vous souhaitez générer un certificat.

$ cd / usr / local / lesencrypt $ sudo ./ LetSencrypt-Auto Certonly --standalone -d your_domain.TLD 
Obtenez le certificat SSL Let's Encrypt

6. Entrez l'adresse e-mail qui sera utilisée par Let's Encrypt for Lost Key Recovery ou Urgent Notices.

Entrer l'adresse e-mail

7. D'accord avec les termes de la licence en appuyant sur la touche Entrée.

Accepter l'accord de linge

8. Enfin, si tout a réussi, un message similaire à la capture d'écran ci-dessous devrait apparaître sur votre console terminale.

LETSENCRYPRY FINITION D'INSTALLATION

Étape 3: Installez le certificat SSL, Let's Encrypt en Nginx

9. Maintenant que votre certificat SSL a été généré, il est temps de configurer Nginx Webserver pour l'utiliser. Les certificats SSL nouvellement / etc / lesencrypt / live / sous un répertoire nommé d'après votre nom de domaine. Exécutez la commande LS pour répertorier les fichiers de certificat émis pour votre domaine.

$ sudo ls / etc / lesencrypt / live / $ sudo ls -al / etc / lesencrypt / live / Caeszar.tk 
Certificats SSL LETSENCRYPT

dix. Ensuite, ouvrez / etc / nginx / sites-disponible / par défaut fichier avec un éditeur de texte et ajouter le bloc suivant après la première ligne commentée qui spécifie le début du bloc SSL. Utilisez la capture d'écran ci-dessous comme guide.

$ sudo nano / etc / nginx / sites compatible / par défaut 

Extrait de blocs Nginx:

# Configuration SSL # Écoute 443 SSL Default_Server; ssl_certificate / etc.tk / fullchain.pem; ssl_certificate_key / etc / lesencrypt / live / Caeszar.tk / privkey.pem; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers sur; SSL_CIPHERS 'EECDH + AESGCM: EDH + AESGCM: AES256 + EECDH: AES256 + EDH'; ssl_dhparam / etc / nginx / ssl / dhparams.pem; 
Configurer nginx pour utiliser Let's Encrypt SSL

Remplacez les valeurs de nom de domaine pour les certificats SSL en conséquence.

11. À l'étape suivante, générez un fort Diffie-hellman Cipher / etc / nginx / ssl / répertoire afin de protéger votre serveur contre le Logjam Attaquez en exécutant les commandes suivantes.

$ sudo mkdir / etc / nginx / ssl $ cd / etc / nginx / ssl $ sudo openssl dhparam -out dhparams.PEM 2048 
Générer Diffie Hellman Cipher pour Nginx

12. Enfin, redémarrez le démon Nginx pour refléter les changements.

$ sudo systemctl redémarrer nginx 

et tester votre certificat SSL en visitant l'URL ci-dessous.

https: // www.sllabs.com / ssltest / analyser.html 
Vérifier Nginx permet de crypter le certificat SSL

Étape 4: Auto Renew Let’s Crypt Nginx Certificats

13. Certificats délivrés par Saisissons Ca sont valables pendant 90 jours. Afin de renouveler automatiquement les fichiers avant la date d'expiration SSL-Renw.shot scripter / usr / local / bin / Répertoire avec le contenu suivant.

$ sudo nano / usr / local / bin / ssl-renew.shot 

Ajouter le contenu suivant à SSL-Renw.shot déposer.

#!/ bin / bash cd / usr / local / lesencrypt sudo ./ letSencrypt-Auto certitonly -a webroot --agree-tos --renew-by-default - webroot-path = / var / www / html / -d your_domain.TLD sudo systemctl recharger nginx exit 0 
Auto Renew Nginx permet de crypter le certificat SSL

Remplace le --webroot path variable pour correspondre à votre racine de document Nginx. Assurez-vous que le script est exécutable en émettant la commande suivante.

$ sudo chmod + x / usr / local / bin / ssl-renew.shot 

14. Enfin, ajoutez un travail cron pour exécuter le script tous les deux mois à minuit afin de vous assurer que votre certificat sera mis à jour dans environ 30 jours avant son expiration.

$ sudo crontab -e 

Ajouter la ligne suivante au bas du fichier.

0 1 1 * / 2 * / usr / local / bin / ssl-renew.sh >> / var / log / your_domain.TLD-Renwing.journal 2> & 1 
La mise à jour permet de crypter les certificats SSL

C'est ça! Votre serveur Nginx sert maintenant du contenu SSL en utilisant un Cryptons SSL certificat.