Comment sécuriser Nginx avec Let's Encrypt sur Ubuntu et Debian
- 3333
- 874
- Victor Charpentier
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
- Sécurisez Apache avec Free Let's Encrypt sur Ubuntu et Debian
- 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 DebianExigences
- Un domaine enregistré avec DNS valide
UN
Enregistrements pour pointer de l'adresse IP de votre serveur. - 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 nginxInstallez 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 80Vé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.TLDObtenez 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-mail7. D'accord avec les termes de la licence en appuyant sur la touche Entrée.
Accepter l'accord de linge8. 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.tkCertificats 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 2048Gé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.htmlVé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 0Auto 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> & 1La 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.
- « Comment installer le serveur NTP et le client sur Ubuntu
- Comment installer OpenSSH 8.0 serveur de Source dans Linux »