Android

Leiten Sie http in nginx zu https um

HTTPS Is Easy Part 1: Adding HTTPS

HTTPS Is Easy Part 1: Adding HTTPS

Inhaltsverzeichnis:

Anonim

In diesem Handbuch wird erläutert, wie der HTTP-Datenverkehr in Nginx an HTTPS umgeleitet wird.

Nginx ausgesprochen "engine x" ist ein kostenloser Open-Source-Hochleistungs-HTTP- und Reverse-Proxy-Server, der für die Last einiger der größten Websites im Internet verantwortlich ist.

Im Gegensatz zu HTTP, bei dem Anforderungen und Antworten im Klartext gesendet und zurückgesendet werden, verwendet HTTPS TLS / SSL, um die Kommunikation zwischen dem Client und dem Server zu verschlüsseln.

Die Verwendung von HTTPS über HTTP bietet viele Vorteile, z.

  • Alle Daten werden in beide Richtungen verschlüsselt. Infolgedessen können vertrauliche Informationen nicht gelesen werden, wenn sie abgefangen werden. Google Chrome und alle anderen gängigen Browser kennzeichnen Ihre Website als sicher. HTTPS ermöglicht die Verwendung des HTTP / 2-Protokolls, wodurch die Leistung der Website erheblich verbessert wird. Google favorisiert HTTPS-Websites. Ihre Website wird besser eingestuft, wenn sie über HTTPS bereitgestellt wird.

Die bevorzugte Methode zur Umleitung von HTTP zu HTTPS in Nginx ist die Konfiguration eines separaten Serverblocks für jede Version der Site. Sie sollten vermeiden, den Datenverkehr mithilfe der if-Direktive umzuleiten, da dies zu einem unvorhersehbaren Verhalten des Servers führen kann.

Leiten Sie HTTP pro Site zu HTTPS um

Um eine einzelne Website zu HTTPS umzuleiten, öffnen Sie die Domänenkonfigurationsdatei und nehmen Sie die folgenden Änderungen vor:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; }

Lassen Sie uns den Code zeilenweise aufschlüsseln:

  • listen 80 - Der Serverblock wartet auf eingehende Verbindungen an Port 80 für die angegebene Domäne. server_name linuxize.com www.linuxize.com - Gibt die server_name linuxize.com www.linuxize.com . Stellen Sie sicher, dass Sie es durch Ihren Domainnamen ersetzen. return 301 - return 301 den Datenverkehr zur HTTPS-Version der Site um. Die Variable $request_uri ist der vollständige ursprüngliche Anforderungs-URI einschließlich der Argumente.

In der Regel möchten Sie auch die HTTPS-WWW-Version der Site auf die Nicht-WWW-Version oder umgekehrt umleiten. Die empfohlene Methode für die Umleitung besteht darin, einen separaten Serverblock für die WWW- und Nicht-WWW-Versionen zu erstellen.

Um beispielsweise die HTTPS-WWW-Anforderungen an Nicht-WWW umzuleiten, verwenden Sie die folgende Konfiguration:

server { listen 80; listen:80; server_name linuxize.com www.linuxize.com; return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name www.linuxize.com; #… other code return 301 https://linuxize.com$request_uri; } server { listen 443 ssl http2; server_name linuxize.com; #… other code }

Leiten Sie alle Sites zu HTTPS um

Wenn alle auf dem Server gehosteten Websites für die Verwendung von HTTPS konfiguriert sind und Sie nicht für jede Site einen separaten HTTP-Serverblock erstellen möchten, können Sie einen einzelnen Catch-All-HTTP-Serverblock erstellen. Dieser Block leitet alle HTTP-Anforderungen an die entsprechenden HTTPS-Blöcke um.

Um einen einzelnen Catch-All-HTTP-Block zu erstellen, der die Besucher zur HTTPS-Version der Site umleitet, öffnen Sie die Nginx-Konfigurationsdatei und nehmen Sie die folgenden Änderungen vor:

server { listen 80 default_server; listen:80 default_server; server_name _; return 301 https://$host$request_uri; }

Lassen Sie uns den Code Zeile für Zeile analysieren:

  • listen 80 default_server - Legt diesen listen 80 default_server als Standardblock (catch-all) für alle nicht zugeordneten Domänen fest. server_name _ - _ ist ein ungültiger Domainname, der niemals mit einem echten Domainnamen übereinstimmt. return 301 - return 301 den Datenverkehr zum entsprechenden return 301 mit Statuscode 301 (dauerhaft verschoben) um. Die Variable $host enthält den Domänennamen der Anforderung.

Wenn der Besucher beispielsweise http://example.com/page2 im Browser öffnet, leitet Nginx die Anforderung an https://example.com/page2 .

Wenn möglich, ziehen Sie es vor, eine Umleitung auf Domänenbasis anstelle einer globalen HTTP-zu-HTTPS-Umleitung zu erstellen.

Fazit

Sobald Sie ein SSL-Zertifikat auf Ihrer Website installiert haben, sollten Sie den HTTP-Verkehr zu HTTPS umleiten.

In Nginx besteht die bevorzugte Möglichkeit, HTTP an HTTPS umzuleiten, darin, separate Serverblöcke zu erstellen und eine 301-Umleitung durchzuführen.

Nginx