GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So aktivieren Sie TLS 1.3 einfach in Nginx unter Ubuntu 20.04, 18.04, 16.04

In einem früheren Artikel habe ich die Schritte zum Kompilieren des Nginx-Quellcodes mit OpenSSL 1.1.1 erklärt, um das TLS 1.3-Protokoll zu aktivieren, das im August 2018 offiziell veröffentlicht wurde. In diesem Tutorial zeige ich Ihnen eine einfachere Möglichkeit, TLS 1.3 zu aktivieren auf Ubuntu 20.04, 18.04 und 16.04

TLS 1.3 bringt verbesserte Leistung und Sicherheit

In Bezug auf die Leistung benötigt TLS 1.2 zwei Roundtrips, um eine HTTPS-Verbindung herzustellen. Mit TLS 1.3 ist nur ein Roundtrip erforderlich. TLS 1.3 unterstützt auch den Zero-Round-Trip-Modus (0-RTT-Sitzungswiederaufnahme), sodass Clients, die sich zuvor mit Ihrer Website verbunden haben, eine HTTP-Anforderung bei der ersten Nachricht an den Server senden können. Dies macht einen großen Unterschied für Benutzer in Mobilfunknetzen oder an weit entfernten Standorten.

In Bezug auf die Sicherheit hat TLS 1.3 die Unterstützung für alte Cipher Suites entfernt, die für Exploits wie den ROBOT-Angriff verantwortlich sind. Dies ist natürlich eine zu vereinfachte Erklärung. CloudFlare hat eine gute detaillierte Erklärung von TLS 1.3.

Anforderungen zum Aktivieren von TLS 1.3

Es gibt zwei Anforderungen, wenn es darum geht, TLS 1.3 mit Nginx zu aktivieren.

  1. Ihre Nginx-Version muss TLS 1.3 unterstützen. Das bedeutet Nginx 1.13 oder höher.
  2. Nginx muss mit OpenSSL 1.1.1 oder höher erstellt werden.

Ubuntu 18.04 und 20.04 werden mit OpenSSL 1.1.1 ausgeliefert

OpenSSL 1.1.1 ist im Ubuntu 18.10- und 20.04-Repository enthalten und das Nginx-Paket aus dem Ubuntu 18.10/20.04-Repository ist mit OpenSSL 1.1.1 erstellt.

Als Ubuntu 18.04 zum ersten Mal herauskam, enthält es nur OpenSSL 1.0.2. OpenSSL 1.1.1 wird jedoch auf Ubuntu 18.04.3 zurückportiert.

Wenn Sie noch Ubuntu 18.04.2 verwenden, führen Sie einfach die folgenden Befehle aus, um auf 18.04.3 zu aktualisieren.

sudo apt update 
sudo apt upgrade

Installieren Sie die neueste Version von Nginx, die mit OpenSSL 1.1.1 auf Ubuntu 16.04 erstellt wurde

Das Nginx-Paket aus dem Ubuntu 16.04-Repository ist nicht mit OpenSSL 1.1.1 erstellt. Sie können Nginx manuell mit OpenSSL 1.1.1 kompilieren, aber es dauert länger und Sie müssen neu kompilieren, wenn eine neue Version von Nginx herauskommt. Glücklicherweise können wir Nginx aus einem PPA (Personal Package Archive) von Ondřej Surý installieren, der ein Debian-Entwickler und eine wichtige Figur in der DNS-Community ist. Er betreut viele Pakete für das Debian-Repository, einschließlich Apache, BIND, MariaDB, PHP usw. Er ist auch einer der Betreuer des offiziellen certbot PPA. Daher vertraue ich seinem PPA und verwende es auf meinen Servern.

Wenn Sie zuvor ein anderes Nginx-Repository (wie nginx.org) hinzugefügt haben, deaktivieren Sie es. Zum Beispiel habe ich ein anderes Nginx-Repository definiert in /etc/apt/sources.list.d/nginx-repo.list Datei. Ich kommentiere einfach alle Zeilen in dieser Datei aus, um sie zu deaktivieren.

Um Ondřej Surý Nginx PPA unter Ubuntu hinzuzufügen, führen Sie den folgenden Befehl aus.

sudo add-apt-repository ppa:ondrej/nginx

sudo apt update

Entfernen Sie dann Ihr vorhandenes Nginx-Paket. (Ihre Nginx-Konfigurationsdateien werden nicht entfernt.)

sudo apt remove nginx

Wenn Sie iRedMail und Nginx verwenden, führen Sie sudo apt remove nginx-full aus um Nginx zu entfernen.

Und installieren Sie Nginx von PPA.

sudo apt install nginx

Wenn Sie gefragt werden, ob Sie eine neue Version der Konfigurationsdatei installieren möchten, wählen Sie N . Ihr Certbot-Nginx-Plug-in wird möglicherweise zusammen mit Nginx entfernt, installieren Sie es also erneut.

sudo apt install python3-certbot-nginx

Überprüfen Sie jetzt die Nginx-Version.

sudo nginx -V

Sie sollten sehen, dass Nginx mit OpenSSL 1.1.1 erstellt wurde.

nginx version: nginx/1.14.1
built with OpenSSL 1.1.1 11 Sep 2018 (running with OpenSSL 1.1.0g 2 Nov 2017)
TLS SNI support enabled

Dieses PPA bietet auch OpenSSL 1.1.1 für Ubuntu 16.04. Wenn Ihr Nginx auf Ubuntu 16.04 noch mit OpenSSL 1.1.0 läuft, müssen Sie Ihr OpenSSL-Paket aktualisieren.

sudo apt upgrade

Beachten Sie, dass bei Verwendung der Google-Compute-Engine die folgende Meldung angezeigt wird, während Sie den obigen Befehl ausführen.

The following packages have been kept back:
     libssl1.1 openssl

Dies liegt daran, dass das OpenSSL 1.1.1-Paket mit einigen Paketen der Google-Compute-Engine in Konflikt steht. Sie müssen den folgenden Befehl ausführen, um OpenSSL zu aktualisieren.

sudo apt dist-upgrade

Aktivieren Sie TLS 1.3 im virtuellen Nginx-Host auf Ubuntu 20.04, 18.04 und 16.04

Sobald Sie Nginx mit OpenSSL 1.1.1 haben, öffnen Sie Ihre virtuelle Nginx-Hostdatei.

sudo nano /etc/nginx/conf.d/site.conf

oder

sudo nano /etc/nginx/sites-enabled/site.conf

Um TLS 1.3 zu aktivieren, fügen Sie einfach TLSv1.3 hinzu zu ssl_protocols Direktive im SSL-Serverblock.

ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

Wenn Sie ein Let’s Encrypt-Zertifikat verwenden, kann Ihre SSL-Konfiguration in /etc/letsencrypt/options-ssl-nginx.conf festgelegt werden Datei. Übrigens aktiviert certbot standardmäßig TLSv1 , was unsicher ist, können Sie es entfernen. Wenn Sie iRedMail und Nginx verwenden, müssen Sie die SSL-Konfigurationen in /etc/nginx/templates/ssl.tmpl bearbeiten Datei.

Speichern und schließen Sie die Datei. Starten Sie dann Nginx neu, damit die Änderung wirksam wird.

sudo systemctl restart nginx

Überprüfen der TLS-Version im Webbrowser

Laden Sie mit Firefox 63 oder höher Ihre Webseite neu, klicken Sie mit der rechten Maustaste auf einen leeren Bereich und wählen Sie View Page Info im Kontextmenü. Gehen Sie zu Security und Sie sehen, dass TLS 1.3 verwendet wird.

Laden Sie mit Google Chrome 70 oder höher eine Webseite auf Ihrer Website neu. Drücken Sie dann Ctrl+Alt+I um die Entwicklertools zu öffnen. Gehen Sie zu Security und Sie sehen, dass TLS 1.3 verwendet wird.

Wird TLSv1.3 zwischen Cloudflare und Ihrem Ursprungsserver verwendet?

Ja. Cloudflare unterstützt TLS 1.3 auf dem Front-End-Server und verwendet auch TLSv1.3, wenn es sich mit Ihrem Ursprungsserver verbindet. Um zu überprüfen, welche TLS-Version verwendet wird, können Sie ein benutzerdefiniertes Protokollformat in /etc/nginx/nginx.conf erstellen Datei.

sudo nano /etc/nginx/nginx.conf

Fügen Sie den folgenden Text in http hinzu Kontext.

log_format combined_ssl '$remote_addr - $remote_user [$time_local] '
                  '$ssl_protocol/$ssl_cipher '
                  '"$request" $status $body_bytes_sent '
                  '"$http_referer" "$http_user_agent"';

Speichern und schließen Sie die Datei. Fügen Sie dann ein access_log hinzu Direktive in Ihrem SSL server Kontext. Das Protokoll befindet sich in combined_ssl formatieren.

access_log /var/log/nginx/your-site.access.log combined_ssl;

Speichern und schließen Sie die Datei. Laden Sie dann Nginx neu. In der Zugriffsprotokolldatei sehen Sie etwas wie das Folgende, was darauf hinweist, dass TLS 1.3 verwendet wird.

172.68.132.115 - - [25/Feb/2020:16:07:26 +0800] TLSv1.3/TLS_AES_256_GCM_SHA384 "GET / HTTP/1.1"

Nächster Schritt

Ich hoffe, dieses Tutorial hat Ihnen geholfen, TLS 1.3 in Nginx unter Ubuntu 20.04, Ubuntu 18.04 und Ubuntu 16.04 zu aktivieren. Sie können auch die ModSecurity-Firewall für Webanwendungen einrichten, um Ihre Website vor Hackern zu schützen.

  • So richten Sie ModSecurity mit Nginx unter Debian/Ubuntu ein

Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂


Ubuntu
  1. So aktivieren Sie SSH unter Ubuntu 18.04

  2. So aktivieren Sie Ubuntu Remote Desktop

  3. So überprüfen Sie den NGINX-Status auf Ubuntu

  4. So aktivieren Sie das Nachtlicht unter Ubuntu 17.10

  5. Ubuntu 20.04 – Wie aktiviere ich HWE?

So richten Sie mit Nginx unter Ubuntu einfach einen DNS über TLS-Resolver ein

So aktivieren Sie TLS 1.3 in Nginx unter Ubuntu 18.04 und 16.04

So aktivieren Sie Click to Minimize unter Ubuntu

So aktivieren Sie den SSH-Server unter Ubuntu 22.04

So aktivieren Sie TLS 1.3 auf Apache und Nginx

So installieren Sie Nginx unter Ubuntu 15.04