So sichern Sie Nginx mit SSL und lassen Sie uns in FreeBSD verschlüsseln

So sichern Sie Nginx mit SSL und lassen Sie uns in FreeBSD verschlüsseln

In diesem Leitfaden diskutieren wir, wie Sie sichern können Nginx Webserver in FreeBSD mit TLS/SSL Zertifikate angeboten für durch Lassen Sie uns die Zertifikatsbehörde verschlüsseln. Wir zeigen Ihnen auch, wie Sie die Lets -Verschlüsselungszertifikate automatisch erneuern können.

Tls, ein Akronym für Transportschichtsicherheit, ist ein Protokoll, das unter läuft Http Protokoll und verwendet Zertifikate und Tasten, um die Pakete zu verkapulieren und die zwischen einem Server und einem Client ausgetauschten Daten zu verschlüsseln oder in diesem Fall dazwischen Nginx Der Browser des Webservers und des Clients, um die Verbindung zu sichern, damit ein Dritter, der den Datenverkehr abfängt, die Übertragung nicht entschlüsseln kann.

Lesen Sie auch: Installieren wir uns für Apache auf FreeBSD verschlüsseln

Der Prozess der Erlangung eines freien Erhalts Lassen Sie uns verschlüsseln Zertifikat in FreeBSD kann durch Installation stark vereinfacht werden Certboot Client -Dienstprogramm, das offizielle Let's Encrypt -Client, das zum Generieren und Herunterladen von Zertifikaten verwendet wird.

Anforderungen

  1. Installieren

Schritt 1: Konfigurieren Sie Nginx TLS/SSL

1. Standardmäßig die TLS/SSL Die Serverkonfiguration ist nicht aktiviert in FreeBSD weil das Tls Server -Block -Anweisungen werden in kommentiert Nginx Standardkonfigurationsdatei.

Um die zu aktivieren Tls Server in Nginx, offen nginx.Conf Konfigurationsdatei, suchen Sie nach der Zeile, die den Start von definiert SSL Server und aktualisieren Sie den gesamten Block, um wie im folgenden Beispiel auszusehen.

# nano/usr/local/etc/nginx/nginx.Conf 

Nginx https block Auszug:

Nginx HTTPS -Konfiguration
Server Listen 443 SSL default_server; Servername www.Deine Domain.com; access_log/var/log/nginx/greifen zugreifen.Protokoll; Fehler_log/var/log/nginx/fehler.Protokoll; ERROR_PAGE 500 502 503 504 /50x.html; Position = /50x.html root/usr/local/www/nginx-dist;  location/root/usr/local/www/nginx; Indexindex.HTML -Index.HTM; try_files $ uri $ uri / / / Index.Php?$ args;  SSL_Certificate "/usr/local/etc/letSencrypt/live/www.Deine Domain.com/cert.pem ";www.Deine Domain.com/privkey.PEM "; SSL_PROTOCOLS TLSV1 TLSV1.1 TLSV1.2; ssl_dhparam/usr/local/etc/nginx/dhparam.Pem; SSL_Session_Cache Shared: SSL: 1M; ssl_session_timeout 10m; SSL_CIPHERS hoch:!Anull:!MD5; ssl_prefer_server_ciphers on; # Verwenden Sie GZIP -Komprimierung gzip an; gzip_disable "msie6"; gzip_vary on; gZIP_Proxied ENDE; gzip_comp_level 5; gzip_buffer 16 8k; GZIP_HTTP_VERSION 1.0; # Legen Sie eine Variable fest, um den Mangel an verschachtelten Bedingungen zu bearbeiten $ cache_uri $ request_uri; Ort ~ /.bekannt erlauben Sie alles;  Ort ~ \.php $ root/usr/local/www/nginx; FASTCGI_PASS 127.0.0.1: 9000; FASTCGI_INDEX INDEX.PHP; #fastcgi_param script_filename /scripts $ fastcgi_script_name; fastcgi_param script_filename $ request_filename; FASTCGI_PARAMS einschließen;  

Der obige Block zusätzlich zu SSL Block, enthält auch einige Aussagen zum Aktivieren der GZIP -Komprimierung und FASTCGI -Prozessmanager, Wird zum Übergeben von PHP -Code an verwendet PHP-FPM Gateway, um dynamische Webanwendungen auszuführen.

Nachdem Sie den obigen Code hinzugefügt haben Nginx Hauptkonfigurationsdatei, starten Sie den Daemon nicht neu oder wenden Sie die Einstellungen nicht an, bevor Sie eine installieren und erhalten Lassen Sie uns verschlüsseln Zertifikat für Ihre Domain.

Schritt 2: Installieren Sie den Certbot -Client in FreeBSD

2. Der Prozess der Installation lasst uns verschlüsseln certbot Das Client -Dienstprogramm in FreeBSD beinhaltet das Herunterladen des Quellcodes für Py-Zertifikat und lokal kompilieren Sie es, indem Sie die folgenden Befehle ausgeben.

# CD/USR/Ports/Security/Py-CertBot # Machen Sie die Installation sauber 

3. Das zusammenstellen Py-Zertifikat Das Dienstprogramm braucht viel Zeit im Vergleich zur Installation eines regulären Binärpakets. Während dieser Zeit muss eine Reihe von Abhängigkeiten in FreeBSD in kompilierter lokal in kompiliert.

Außerdem wird auf Ihrem Bildschirm eine Reihe von Eingabeaufforderungen angezeigt, in denen Sie ausgewählt werden müssen, welche Pakete für jede Abhängigkeit zum Kompilierzeit verwendet werden. Wählen Sie im ersten Bildschirm die folgenden Tools durch Drücken aus [Raum] Schlüssel zum Kompilieren der Python27 Abhängigkeit, wie im folgenden Bild dargestellt.

  • IPv6
  • Libffi
  • NLS
  • Pymalloc
  • Themen
  • UCS4 für Unicode -Unterstützung
Aktivieren Sie UCS4 für Unicode

4. Als nächstes wählen Sie Dokumente Und Themen für GetText-Tools Abhängigkeit und Presse OK Um fortzusetzen, wie im folgenden Bild gezeigt.

Dokumentation installieren

5. Auf dem nächsten Bildschirm lassen Sie die Tests Option deaktiviert für libffi-3.2.1 und drücke OK sich weiter bewegen.

Tests für libffi deaktivieren

6. Als nächstes schlagen Sie Raum zur Auswahl Dokumente für py27-enum34 Abhängigkeit, die die Dokumentation für dieses Tool installiert und drücken OK Um fortzufahren, wie im folgenden Screenshot dargestellt.

Installieren Sie die Dokumentation für PY27

7. Wählen Sie schließlich Beispiele für Beispiele für Beispiele für Py27-OpenSSL Abhängigkeit durch Drücken [Raum] Schlüssel und Hit OK Um den Kompilierungs- und Installationsprozess für abzuschließen Py-Zertifikat Klient.

Installieren Sie PY27 OpenSSL

8. Nach dem Zusammenstellen und Installieren Py-Zertifikat Führen Sie den folgenden Befehl aus, um das Tool in der neuesten Version des Pakets zu aktualisieren, wie in den folgenden Screenshots dargestellt.

# PKG installieren Sie PY27-CertBot 
Aktualisieren Sie das Py-CertBot-Tool

9. Um einige Probleme zu vermeiden, kann es auftreten, wenn Sie eine freie erhalten Lassen Sie uns verschlüsseln Zertifikat, der häufigste Fehler ist “pkg_resources.DistributionNotfound”, Stellen Sie sicher, dass die folgenden beiden Abhängigkeiten auch in Ihrem System vorhanden sind: py27-salt Und py27-acme.

# PKG Installieren Sie PY27-SALT # PKG Installieren Sie PY27-ACME 

Schritt 3: Installieren Sie das Zertifikat für Nginx auf FreeBSD ein Zertifikat

10. Um ein eigenständiges Zertifikat für Ihre Domain zu erhalten, führen Sie den folgenden Befehl aus und geben Sie Ihnen den Domain -Namen und alle Subdomains an, für die Sie Zertifikate erhalten möchten, indem Sie die implizieren, -D Flagge.

# certbot certonly -standalone -d Deine Domain.com -D www.Deine Domain.com 
Installieren Sie Lets Verschlüsseln für Nginx

11. Während Sie das Zertifikat generieren, werden Sie aufgefordert, Ihre E -Mail -Adresse einzugeben und mit Let's Encrypt -Nutzungsbedingungen zuzustimmen. Typ A Von der Tastatur zuzustimmen und fortzufahren und Sie werden auch gefragt, ob Sie bereit sind, Ihre E -Mail -Adresse mit Let's Encrypt Partners zu teilen.

Wenn Sie Ihre E -Mail -Adresse nicht weitergeben möchten, geben Sie einfach ein NEIN Wort in der Eingabeaufforderung und drücken Sie [eingeben] Schlüssel, um fortzufahren. Nachdem die Zertifikate für Ihre Domain erfolgreich erhalten worden waren, erhalten Sie einige wichtige Hinweise, die Sie darüber informieren, wo die Zertifikate in Ihrem System gespeichert sind und wann sie ablaufen.

Verschlüsseln Sie die Zusammenfassung

12. Falls Sie ein Let's Encrypt -Zertifikat mit der "erhalten möchten"Webroot”Plugin durch Hinzufügen des Webroot Verzeichnis des Nginx -Servers für Ihre Domäne, geben Sie den folgenden Befehl mit dem aus --Webroot Und -w Flaggen. Wenn Sie den Nginx -Webroot -Pfad nicht geändert haben, sollte sich standardmäßig befinden, wenn Sie sich nicht geändert haben, sollte sich befinden, in dem Sie sich befinden sollten /usr/local/www/nginx/ Systempfad.

# certbot certonly -Webroot -W /usr/local/www/nginx/ -D Deine Domain.com -D www.Deine Domain.com 

Wie in der --Strandalone Verfahren zum Erhalten eines Zertifikats, die --Webroot Mit der Prozedur werden Sie außerdem aufgefordert, eine E -Mail -Adresse für die Erneuerung und Sicherheitshinweise für Zertifikate anzugeben, um zu drücken A zuzustimmen, lass die Geschäftsbedingungen verschlüsseln und NEIN oder Ja Um die E -Mail -Adresse zu teilen oder nicht.

Beachten Sie, dass der Certbot -Kunde eine gefälschte E -Mail -Adresse erkennen kann und Sie nicht mit dem Generieren eines Zertifikats fortsetzen können, bis Sie eine echte E -Mail -Adresse angeben.

Cerbot -Probe:
Speichern von Debug -Protokoll in/var/log/letSencrypt/letSencrypt.Protokollieren Sie die E -Mail -Adresse ein (verwendet für dringende Erneuerungs- und Sicherheitsbekanntmachungen) (Geben Sie "C" ab, um zu stornieren):[E -Mail geschützt] #Eine gefälschte E -Mail -Adresse wird festgestellt, dass es Probleme mit dieser Adresse zu geben scheint. Geben Sie eine E-Mail-Adresse ein (für die dringende Erneuerungs- und Sicherheitshinweise). Wenn Sie diese wirklich überspringen möchten, können Sie den Kunden mit-Register-unpeely-tehout-eMail ausführen. Stellen Sie jedoch sicher Konten (Geben Sie C-zu kündigen): [E-Mail geschützt] ------------------------------------------------------------------------------------------------------------------ --------------------------------------- https: // letsencrypt.org/dokumente/le-sav1.1.1-August-1-2016.PDF. Sie müssen zustimmen, um sich beim ACME-Server unter https: // acme-v01 zu registrieren.API.letSencrypt.org/Verzeichnis ------------------------------------------- -------------------------------- (a) GREE/(c) ANCel: A ------------------------------------------------------------------------------- Wären Sie bereit, Ihre E-Mail-Adresse mit der Electronic Frontier Foundation, einem Gründungspartner des LET's Encrypt-Projekts und der gemeinnützigen Organisation, die Certbot zu entwickeln? Wir möchten Ihnen E -Mails über EFF und unsere Arbeit senden, um das Web zu verschlüsseln, die Benutzer zu schützen und die digitalen Rechte zu verteidigen. ------------------------------------------------------------------------------- (Ja Nein: N Erhalten Sie ein neues Zertifikat, in dem die folgenden Herausforderungen durchgeführt werden: HTTP-01 Challenge für www.Domain.com Verwenden des Webroot -Pfades/usr/local/www/nginx/für alle unerreichten Domänen. Warten auf Überprüfung… Aufräumerklärungen wichtige Anmerkungen: - Herzlichen Glückwunsch! Ihr Zertifikat und Ihre Kette wurden unter/usr/lokal/etc/letSencrypt/live/www gespeichert.Deine Domain.com/fullchain.Pem. Ihr Cert wird am 2017-12-28 auslaufen. Um in Zukunft eine neue oder optimierte Version dieses Zertifikats zu erhalten. Ausführen von "certbot renew", um nicht -interaktiv zu erneuern * alle * Ihrer Zertifikate. Sie sollten jetzt eine sichere Sicherung dieses Ordners erstellen. Dieses Konfigurationsverzeichnis enthält auch Zertifikate und private Schlüssel, die von Certbot erhalten wurden. Es ist daher ideal, regelmäßige Sicherungen dieses Ordners zu erstellen. - Wenn Sie Certbot mögen, sollten Sie unsere Arbeit unterstützen, um zu iSRG/zu spenden, lass uns verschlüsseln: https: // letSencrypt.org/spenden Spende an EFF: https: // eff.org/spenden-le

Schritt 4: Aktualisieren Sie Nginx TLS -Zertifikate

13. Die Position des erhaltenen Let's verschlüsseln Zertifikate und Schlüssel in FreeBSD /usr/local/etc/letsencrypt/live/www.Deine Domain.com/ Systempfad. Geben Sie LS -Befehl aus, um die Komponenten Ihres LECS Encrypt -Zertifikats anzuzeigen: die Kettendatei, die Fullchain -Datei, den privaten Schlüssel und die Zertifikatdatei, wie im folgenden Beispiel dargestellt.

# ls/usr/local/etc/letsencrypt/live/www.Deine Domain.com/ 
Auflist können Domain SSL-Keys verschlüsseln

14. Um zu installieren, können Sie Zertifikate für Ihre Domäne auf dem NGINX -Webserver verschlüsseln, die Hauptkonfigurationsdatei der NGINX -Hauptkonfiguration oder die Konfigurationsdatei für den NGINX -TLS -Server, falls es sich um eine separate Datei handelt Wie unten dargestellt.

# nano/usr/local/etc/nginx/nginx.Conf 

Aktualisieren Sie die folgenden Zeilen, um wie in diesem Beispiel auszusehen:

SSL_Certificate "/usr/local/etc/letSencrypt/live/www.Deine Domain.com/cert.pem ";www.Deine Domain.com/privkey.Pem "; 
Konfigurieren Sie SSL für NGINX

15. Auch wenn die Linie ssl_dhparam ist vorhanden in Nginx SSL Konfiguration sollten Sie eine neue generieren 2048 Bit Diffie-Hellman Schlüssel mit dem folgenden Befehl:

# OpenSSL Dhparam -out/usr/local/etc/nginx/dhparam.PEM 2048 

16. Um die Nginx -TLS -Konfiguration zu aktivieren, überprüfen Sie schließlich die globale NGINX -Konfiguration auf mögliche Syntaxfehler und starten Sie den Nginx -Dienst dann neu, um die SSL -Konfiguration anzuwenden, indem Sie die folgenden Befehle ausgeben.

# Nginx -t # Service Nginx Neustart 

17. Bestätigen Sie, ob Nginx -Daemon einbindet ist 443 Port, indem Sie die folgenden Befehle ausgeben, in denen alle geöffneten Netzwerkhöhlen im System im Hörstatus aufgeführt sind.

# netstat -an -p tcp | grep hören # sockstat -4 
Überprüfen Sie die Nginx -Ports

18. Sie können Ihre Domain -Adresse auch über besuchen Https Protokoll durch Öffnen eines Browser. Da Sie Zertifikate verwenden, die von einer gültigen Zertifikatautorität generiert werden, sollte im Browser kein Fehler angezeigt werden.

https: // www.Deine Domain.com 

19. Das OpenSSL -Dienstprogramm kann Ihnen auch helfen, Informationen zu einem von Let's Encrypt CA erhaltenen Zertifikat zu finden, indem Sie den Befehl mit den folgenden Optionen ausführen.

# OpenSSL S_CLIENT -CONNECT www.Deine Domain.com: 443 
Überprüfen Sie das SSL -Zertifikat

Falls Sie Nginx zwingen möchten, alle HTTP auf HTTPS -Anfragen zu lenken, die für Ihre Domain am Port empfangen werden 80 Zu Https, Öffnen Sie die Konfigurationsdatei der NGINX.

neu schreiben ^(.*) https: // www.Deine Domain.com $ 1 dauerhaft; 
Nginx leiten http auf https um

20. Die Einrichtung einer automatischen Erneuerung für das von Let's Encrypt Behörde ausgestellte Zertifikat.

# Crontab -e 

Cron -Aufgabe zur Erneuerung des Zertifikats.

0 0 * * * * certbot renew >>/var/log/letSencrypt.Protokoll 

Das ist alles! NGINX kann jetzt gesicherte Webanwendungen Ihren Besuchern mit Let's Encrypt -kostenlose Zertifikate bedienen.