So sichern Sie Nginx mit Let's Encrypt on Ubuntu und Debian

So sichern Sie Nginx mit Let's Encrypt on Ubuntu und Debian

Nach dem vorherigen Lassen Sie uns verschlüsseln Tutorial bezüglich Apache SSL, In diesem Artikel werden wir diskutieren, wie ein kostenloses SSL/TLS -Zertifikat generiert und installiert wird, das von ausgestellt wird Lassen Sie uns CA verschlüsseln für Nginx Webserver auf Ubuntu oder Debian.

Lesen Sie auch
  1. Sichern Sie Apache mit kostenlosem Verschlüsselung auf Ubuntu und Debian
  2. Installieren Sie lasst uns SSL verschlüsseln, um Apache auf RHEL und CentOS zu sichern
Probenumgebung testen
Installieren Sie es zu verschlüsseln, um Nginx auf Ubuntu und Debian zu sichern

Anforderungen

  1. Eine registrierte Domain mit gültigem DNS A Aufzeichnungen, um auf die IP -Adresse Ihres Servers zurückzuführen.
  2. Ein installierter NGINX -Webserver mit aktiviertem SSL und VHOST, falls Sie vorhaben, mehrere Domänen oder Subdomains zu hosten.

Schritt 1: Installieren von NGINX -Webserver

1. Installieren Sie beim ersten Schritt den NGINX -Webserver, falls bereits installiert, indem Sie den folgenden Befehl ausgeben:

$ sudo apt-get install nginx 
Installieren Sie den NGINX -Webserver auf Ubuntu 14.04 und Debian 8

Schritt 2: Generieren Sie ein SSL -Zertifikat für Let's Encrypt für NGINX

2. Installieren Sie vor dem Generieren eines kostenlosen SSL/TLS -Zertifikats Lassen Sie uns verschlüsseln Software in /usr/local/ Dateisystemhierarchie mit Hilfe von Git Client durch Ausgabe der folgenden Befehle:

$ sudo apt -get -y install Git $ cd/usr/lokal/$ sudo git klone https: // github.com/letSencrypt/letSencrypt 

3. Obwohl das Verfahren, ein Zertifikat für ein Zertifikat zu erhalten Nginx ist automatisiert. Sie können weiterhin ein kostenloses SSL -Zertifikat für NGINX mit Let's Encrypt Standalone Plugin erstellen und installieren.

Diese Methode erfordert diesen Port 80 Ich darf für einen kurzen Zeitraum nicht in Ihrem System verwendet werden, während der Client die Identität des Servers verschlüsseln, bevor das Zertifikat generiert wird.

Wenn Sie NGINX bereits ausführen, stoppen Sie den Dienst, indem Sie den folgenden Befehl ausgeben.

$ sudo service nginx stop oder $ sudo systemctl stop nginx 

Falls Sie einen anderen Dienst ausführen, der am Port bindet 80 Stoppen Sie auch diesen Service.

4. Bestätigen Sie diesen Port 80 ist kostenlos durch Ausführen des Netstat -Befehls:

$ sudo netstat -tlpn | Grep 80 
Überprüfen Sie die aktuellen Höranschlüsse unter Linux

5. Jetzt ist es Zeit zu rennen letSencrypt Um ein SSL -Zertifikat zu erhalten. Gehe zu Lassen Sie uns verschlüsseln Installationsverzeichnis gefunden in /usr/local/letSencrypt Systempfad und führen Sie die aus letSencrypt-auto Befehl durch Bereitstellung des Zertifikats --eigenständige Option und -D Flag für jede Domain oder Subdomain, die Sie ein Zertifikat generieren möchten.

$ cd/usr/local/letSencrypt $ sudo ./letSencrypt -auto certonly -standalone -d your_domain.tld 
Holen Sie sich das SSL -Zertifikat von Let's Encrypt

6. Geben Sie die E -Mail -Adresse ein, die von Let's Encrypt für verlorene Schlüsselwiederherstellung oder dringende Hinweise verwendet wird.

E-Mail Adresse eingeben

7. Stimmen Sie den Bedingungen der Lizenz durch, indem Sie die Eingabetaste drücken.

Akzeptieren Sie die LetSencrypt -Vereinbarung

8. Wenn alles erfolgreich wurde, sollte eine Nachricht ähnlich dem folgenden Screenshot auf Ihrer Terminalkonsole angezeigt werden.

Die Installation von LetSencrypt

Schritt 3: Installieren Sie das SSL -Zertifikat in nginx ein

9. Jetzt, da Ihr SSL -Zertifikat generiert wurde. Die neu SSL -Zertifikate werden in platziert /etc/letSencrypt/live/ Unter einem nach Ihrem Domainnamen benannten Verzeichnis. Führen Sie den Befehl LS aus, um die für Ihre Domain ausgegebenen Zertifikatdateien aufzulisten.

$ sudo ls/etc/letsencrypt/live/$ sudo ls -al/etc/letsencrypt/live/caeszar.tk 
LetSencrypt SSL -Zertifikate

10. Als nächstes offen /etc/nginx/sites-verfügbare/standardmäßig Datei mit einem Texteditor und fügen Sie den folgenden Block nach der ersten Kommentarzeile hinzu, die den Beginn des SSL -Blocks angibt. Verwenden Sie den folgenden Screenshot als Anleitung.

$ sudo nano/etc/nginx/sites-fähig/Standard 

Nginx Blockauszug:

# SSL -Konfiguration # Hören 443 SSL default_server; SSL_Certificate/etc/letSencrypt/live/caeszar.TK/Fullchain.Pem; ssl_certificate_key/etc/letsencrypt/live/caeszar.tk/privkey.Pem; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_prefer_server_ciphers on; SSL_CIPHERS 'EECDH+AESGCM: EDH+AESGCM: AES256+EECDH: AES256+EDH'; ssl_dhparam/etc/nginx/ssl/dhparams.Pem; 
Konfigurieren Sie Nginx, um Let's Encrypt SSL zu verwenden

Ersetzen Sie die Domänennamenwerte für SSL -Zertifikate entsprechend.

11. Im nächsten Schritt erzeugen eine starke Diffie-Hellman Chiffre in /etc/nginx/ssl/ Verzeichnis, um Ihren Server vor dem zu schützen Logjam Angriff durch Ausführen der folgenden Befehle.

$ sudo mkdir/etc/nginx/ssl $ cd/etc/nginx/ssl $ sudo openssl dhparam -out dhparams.PEM 2048 
Generieren Sie Diffie Hellman Cipher für Nginx

12. Schließlich starten Sie den Nginx -Daemon neu, um Änderungen widerzuspiegeln.

$ sudo systemctl starten nginx neu 

und testen Sie Ihr SSL -Zertifikat, indem Sie die folgende URL besuchen.

https: // www.SSlllabs.com/ssltest/analysieren.html 
Überprüfen Sie Nginx, das das SSL -Zertifikat verschlüsseln kann

Schritt 4: Auto Renew Recrypt Nginx -Zertifikate

13. Zertifikate ausgestellt von Lassen Sie uns CA verschlüsseln sind 90 Tage gültig. Um die Dateien vor dem Ablaufdatum automatisch zu erneuern, um automatisch zu erneuern ssl-renew.Sch Drehbuch in /usr/local/bin/ Verzeichnis mit dem folgenden Inhalt.

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

Fügen Sie den folgenden Inhalt hinzu zu ssl-renew.Sch Datei.

#!/bin/bash cd/usr/local/letSencrypt sudo ./letSencrypt-auto certonly -a webroot-agree-tos-renew-by-Default-Webroot-path =/var/www/html/-d your_domain.tld sudo systemctl Reload nginx exit 0 
Auto Renew Nginx lässt das SSL -Zertifikat verschlüsseln

Ersetze das --Webroot-Pfad Variable, die mit Ihrem Nginx -Dokumentstamm entspricht. Stellen Sie sicher, dass das Skript ausführbar ist, indem Sie den folgenden Befehl ausgeben.

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

14. Fügen Sie schließlich einen Cron -Job hinzu, um das Skript alle zwei Monate um Mitternacht auszuführen, um sicherzustellen.

$ sudo crontab -e 

Fügen Sie die folgende Zeile am Ende der Datei hinzu.

0 1 1 */2 */usr/local/bin/ssl-renew.SH >>/var/log/your_domain.tld-renew.Protokoll 2> & 1 
Durch Update können SSL -Zertifikate verschlüsseln

Das ist es! Ihr Nginx -Server serviert jetzt SSL -Inhalte mit einem kostenlosen Lassen Sie uns SSL verschlüsseln Zertifikat.