So aktivieren Sie SSL unter NGINX

Bild: Jack Wallen

Secure Sockets Layer (SSL) ist für Webserver zu einer Notwendigkeit geworden. Warum? Weil die Sicherheit ins Rampenlicht gerückt wurde und jedes Unternehmen nun der Tatsache gegenübersteht, dass seine Webserver Inhalte sicher bereitstellen müssen.

Rechenzentrum muss unbedingt gelesen werden

  • 8 Vorhersagen für Rechenzentren für 2020
  • 7 Netzwerkvorhersagen für 2020: Automatisierung, Edge-Computing, Wi-Fi 6, mehr
  • Best Practices für die Servervirtualisierung und Tipps, was nicht zu tun ist
  • Quantencomputer: Sieben Wahrheiten, die Sie kennen müssen

Zu diesem Zweck müssen Sie SSL verwenden. Wenn Sie zufällig mit NGINX arbeiten, haben Sie Glück, da der Vorgang durchaus möglich ist (wenn auch etwas kompliziert).

Ich möchte Sie durch die Schritte zum Aktivieren von SSL auf einem Ubuntu Server 18.04 unter NGINX führen. Ich werde dies mit einem selbstsignierten Zertifikat demonstrieren, aber ein Zertifikat einer offiziellen Zertifizierungsstelle (CA) ist eine viel bessere Wahl. In der Tat sollten Sie das selbstsignierte Zertifikat nur zu Testzwecken verwenden.

Was du brauchst

Um dies zu erreichen, benötigen Sie NGINX unter Ubuntu Server 18.04 mit einem selbstsignierten Zertifikat. Ich gehe davon aus, dass Ubuntu und NGINX bereits in Betrieb sind. Wir werden den Prozess der Erstellung des selbstsignierten Zertifikats durchlaufen.

Selbstsigniertes Zertifikat

Der erste Schritt besteht darin, Ihr selbstsigniertes Zertifikat zu generieren. Melden Sie sich dazu bei Ihrem Server an und geben Sie den folgenden Befehl ein:

 sudo openssl req -x509 -nodes -days 365 -newkey rsa: 2048 -keyout /etc/ssl/private/nginx-selfsigned.key -out /etc/ssl/certs/nginx-selfsigned.crt 

Ihnen werden einige Fragen gestellt (wie Ländername, Bundesland, Ort usw.). Die wichtigste Antwort ist der gebräuchliche Name. Beantworten Sie diese Frage mit der IP-Adresse des Servers ( Abbildung A ).

Abbildung A.

Konfigurieren des allgemeinen Namens mit einer IP-Adresse.


Sobald der Befehl ausgeführt wurde, werden die erforderlichen Dateien zum Verzeichnis / etc / ssl hinzugefügt und können verwendet werden.

Konfigurieren Sie NGINX

Jetzt müssen wir NGINX für die Verwendung von SSL konfigurieren. Erstellen Sie zunächst eine neue Konfigurations-Snippet-Datei mit dem folgenden Befehl:

 sudo nano /etc/nginx/snippets/self-signed.conf 

Fügen Sie in dieser neuen Datei den folgenden Inhalt hinzu:

 ssl_certificate /etc/ssl/certs/nginx-selfsigned.crt; ssl_certificate_key /etc/ssl/private/nginx-selfsigned.key; 

Speichern und schließen Sie diese Datei.

Erstellen Sie als Nächstes ein zweites Konfigurations-Snippet, das auf unseren neu generierten SSL-Schlüssel und unser neu generiertes Zertifikat verweist. Geben Sie dazu den folgenden Befehl ein:

 sudo nano /etc/nginx/snippets/ssl-params.conf 

Fügen Sie in dieser neuen Datei den folgenden Inhalt hinzu:

 ssl_protocols TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512: DHE-RSA-AES256-GCM-SHA512: ECDHE-RSA-AES256-GCM-SHA384: DHE-RSA-AES256-GCM-SHA384: ECDHE-RSA-A384; ssl_ecdh_curve secp384r1; # Benötigt nginx> = 1.1.0 ssl_session_timeout 10m; ssl_session_cache freigegeben: SSL: 10m; ssl_session_tickets aus; # Benötigt nginx> = 1.5.9 # ssl_stapling on; # Benötigt nginx> = 1.3.7 # ssl_stapling_verify on; # Benötigt nginx => 1.3.7 Resolver 8.8.8.8 8.8.4.4 valid = 300s; resolver_timeout 5s; add_header X-Frame-Optionen DENY; add_header X-Content-Type-Options nosniff; add_header X-XSS-Schutz "1; mode = block"; 

Da wir ein selbstsigniertes Zertifikat verwenden, deaktivieren wir das SSL-Heften (eine Methode, um schnell und sicher festzustellen, ob ein SSL-Zertifikat gültig ist oder nicht). Wenn Sie kein selbstsigniertes Zertifikat verwenden, entfernen Sie die # -Symbole vor den beiden Zeilen. Sie können auch die Resolver-Leitung ändern, um Ihre bevorzugten DNS-Server wiederzugeben. Speichern und schließen Sie diese Datei.

Wir müssen auch die Datei dhparam.pem mit dem folgenden Befehl generieren:

 sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 

Der obige Befehl dauert einige Zeit.

Der nächste Schritt besteht darin, NGINX so zu konfigurieren, dass Sie wissen, dass wir SSL verwenden werden. Nehmen wir an, Sie haben einen Serverblock für example.com in sites-available. Öffnen Sie diesen Serverblock mit dem folgenden Befehl:

 sudo nano /etc/nginx/sites-available/example.com 

Bearbeiten Sie die Datei in dieser Datei wie folgt:

 server {listen 443 ssl; listen ::: 443 ssl; include snippets / self -igned.conf; include snippets / ssl-params.conf; Servername example.com www.example.com; root /var/www/example.com/html; index index.html index.htm index.nginx-debian.html; }} 

Fügen Sie darunter einen neuen Serverblock hinzu (um eine HTTPS-Umleitung durchzuführen).

 Server {Listen 80; hören ::: 80; Servername example.com www.example.com; return 302 https: // $ Servername $ request_uri; }} 

Schließlich müssen wir mit dem folgenden Befehl eine Verknüpfung von verfügbaren zu Websites mit aktivierten Sites herstellen:

 ln -s /etc/nginx/sites-available/www.example.com / etc / nginx / sites-enabled / 

Überprüfen Sie die Profile

Mit ufw können wir unsere neuen SSL-fähigen Profile mit dem folgenden Befehl überprüfen:

 sudo ufw app liste 

Dies sollte deutlich machen, dass NGINX HTTPS aktiviert ist ( Abbildung B ).

Abbildung B.

NGINX HTTPS ist bereit.


Starten Sie NGINX mit dem folgenden Befehl neu:

 sudo systemctl nginx neu starten 

Sie sollten nun in der Lage sein, einen Browser auf https: // SERVER_IP (wobei SERVER_IP die IP-Adresse Ihres Servers ist) zu verweisen und (da wir ein selbstsigniertes Zertifikat verwenden) eine Warnung zur Sicherheit des Zertifikats anzuzeigen ( Abbildung) C ).

Abbildung C.

Firefox zeigt an, dass die Site möglicherweise nicht sicher ist.


Herzlichen Glückwunsch, Sie haben jetzt SSL, das an NGINX arbeitet. Ihre Rechenzentrums-Webserver sind sicherer.

Newsletter zu Trends im Rechenzentrum

DevOps, Virtualisierung, Hybrid Cloud, Speicher und betriebliche Effizienz sind nur einige der Themen im Rechenzentrum, die wir hervorheben werden. Wird montags und mittwochs geliefert

Heute anmelden

© Copyright 2020 | mobilegn.com