fragen stichworte

Kann NGINX die TLS-Anforderung prüfen, um nach SNI zu suchen, wie es HAProxy (usw.) tut?

Bei der Konfiguration von HAProxy für das Routing von Hostnamen für HTTPS-Verbindungen ist es anscheinend entscheidend, eine tcp-request inspect-delay -Direktive einzuschließen, um "HAProxy die Möglichkeit zu geben, die Verbindung zu überprüfen". Gibt es eine Möglichkeit, NGINX auf dasselbe zu bringen, oder sollte ich anfangen, es zu packen und meinen gesamten Server nach HAProxy zu verschieben?

(Als Referenz kommt diese Frage aus meinem vorherigen Missverständnis, das hier ausgedrückt wird)

BEARBEITEN

Michael, in den Kommentaren:

he seems to want to "sniff" SNI from the client's handshake attempt without actually terminating the TLS connection, in order to make a lower-layer connection-proxying decision and blindly carry the payload to a subsequent machine for termination of the TLS, because for some reason he doesn't want the TLS certs and keys on the proxy, or for the proxy to do the TLS at all -- just sniff the SNI and make an inward TCP connection using a rule derived from its content.

Der Grund ist, dass ich die Zertifikate und Schlüssel in den Backend-Anwendungen benötige (einige erfordern dies aus einem oder dem anderen Grund), also muss ich ihnen diese zur Verfügung stellen. Sie müssen auch im Proxy eingerichtet werden, um die Wartungsarbeiten und die Möglichkeit eines Fehlers zu verdoppeln. Wenn ich auf den Zugriff auf die Zertifikate für den Proxy verzichten könnte, würde dies meine Architektur erheblich vereinfachen und die Wahrscheinlichkeit von Fehlern verringern.

antworten

Das Modul ngx_stream_ssl_preread_module ist ab Nginx 1.11.5 verfügbar und scheint genau dies zu tun.

Ermöglicht den Zugriff auf den SNI-Servernamen, der in der ClientHello -Nachricht des Clients über die Variable $ssl_preread_server_name zu finden ist.

Diese Informationen können verwendet werden, um eine TCP ("Stream") -Verbindung an ein Backend weiterzuleiten. Die Dokumentation des Moduls enthält ein Beispiel dafür.