NGINX und NGINX Plus bieten zahlreiche Funktionen, mit denen die meisten SSL/TLS-Anforderungen erfüllt werden können. Sie nutzen OpenSSL und die Leistung von Standardprozessorchips, um eine kostengünstige SSL/TLS-Leistung bereitzustellen. Da die Leistungsfähigkeit von Standardprozessorchips ständig zunimmt und Chiphersteller Unterstützung für kryptografische Beschleunigung hinzufügen, wird auch der Kostenvorteil von Standardprozessorchips gegenüber spezialisierten SSL/TLS-Chips immer größer.
Es gibt drei Hauptanwendungsfälle für NGINX und NGINX Plus mit SSL/TLS.
Wenn NGINX als Proxy verwendet wird, kann es die Backend-Server von der Verarbeitung der SSL-Entschlüsselung entlasten. Die Entschlüsselung über den Proxy bietet zahlreiche Vorteile:
Weitere Einzelheiten finden Sie unter „NGINX SSL-Terminierung“ im NGINX Plus-Administratorhandbuch.
Manchmal muss NGINX möglicherweise den an Backend-Server gesendeten Datenverkehr verschlüsseln. Diese Anfragen können beim NGINX-Server als Klartext oder als verschlüsselter Datenverkehr ankommen, den NGINX entschlüsseln muss, um eine Routing-Entscheidung treffen zu können. Die Verwendung eines Pools von Keepalive-Verbindungen zu den Backend-Servern minimiert die Anzahl der SSL/TLS-Handshakes und maximiert so die SSL/TLS-Leistung. Dies lässt sich ganz einfach erreichen, indem NGINX so konfiguriert wird, dass es als Proxy zu „https“ fungiert und so automatisch den Datenverkehr verschlüsselt, der noch nicht verschlüsselt ist.
Da NGINX sowohl Entschlüsselung als auch Verschlüsselung durchführen kann, können Sie eine End-to-End-Verschlüsselung aller Anfragen erreichen, wobei NGINX weiterhin die Layer-7-Routing-Entscheidungen trifft. In diesem Fall kommunizieren die Clients über HTTPS mit NGINX. Dieses entschlüsselt die Anfragen und verschlüsselt sie dann erneut, bevor sie an die Backend-Server gesendet werden. Dies kann wünschenswert sein, wenn der Proxyserver nicht zusammen mit den Backend-Servern in einem Rechenzentrum untergebracht ist. Da immer mehr Server in die Cloud verschoben werden, wird die Verwendung von HTTPS zwischen einem Proxy und Backend-Servern immer notwendiger.
NGINX kann SSL/TLS-Clientzertifikate verarbeiten und kann so konfiguriert werden, dass sie optional oder erforderlich sind . Mithilfe von Client-Zertifikaten können Sie den Zugriff auf Ihre Systeme auf ausschließlich vorab genehmigte Clients beschränken, ohne dass ein Kennwort erforderlich ist. Außerdem können Sie die Zertifikate steuern, indem Sie widerrufene Zertifikate einer Zertifikatssperrliste (Certificate Revocation List , CRL) hinzufügen. Diese Liste wird von NGINX überprüft, um zu ermitteln, ob ein Client-Zertifikat noch gültig ist.
Es gibt eine Reihe weiterer Funktionen, die diese Anwendungsfälle unterstützen, einschließlich (jedoch nicht beschränkt auf) die Folgenden:
Weitere Einzelheiten finden Sie in diesen Ressourcen:
Hier sind einige Beispiele für die Sicherheitsfunktionen von NGINX. Diese Beispiele setzen ein grundlegendes Verständnis der NGINX-Konfiguration voraus.
Die folgende Konfiguration verarbeitet den HTTP-Verkehr für www.example.com und leitet ihn an eine Upstream-Gruppe weiter:
Upstream-Backends {
Server 192.168.100.100:80;
Server 192.168.100.101:80;
}
Server {
Listen 80;
Servername www.example.com;
Standort / {
Proxy-Passwort http://backends;
}
}
Fügen Sie nun HTTPS-Unterstützung hinzu, damit NGINX den Datenverkehr mithilfe des Zertifikats und des privaten Schlüssels entschlüsselt und über HTTP mit den Backend-Servern kommuniziert:
Upstream-Backends { Server 192.168.100.100:80; Server 192.168.100.101:80; } Server { Listen 80; Listen 443 SSL ; # Der Parameter „SSL“ weist NGINX an, den Datenverkehr zu entschlüsseln. Servername www.example.com; SSL-Zertifikat www.example.com.crt ; # Die Zertifikatsdatei SSL-Zertifikatschlüssel www.example.com.key ; # Der Speicherort der privaten Schlüsseldatei / { Proxy-Passwort http://backends; } }
Oder wenn Sie stattdessen Datenverkehr über HTTP empfangen und ihn über HTTPS an die Backend-Server senden:
Upstream-Backends { Server 192.168.100.100:443; Server 192.168.100.101:443; } Server { Listen 80; Servername www.example.com; Standort / { Proxy-Passwort https ://backends; # Das Präfix „https“ weist NGINX an, den Datenverkehr zu verschlüsseln. } }
Um NGINX Plus auszuprobieren, starten Sie noch heute Ihre kostenlose 30-Tage-Testversion oder kontaktieren Sie uns, um Ihre Anwendungsfälle zu besprechen.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."