Entwickler möchten Anwendungen und Infrastrukturen normalerweise mithilfe veröffentlichter, offizieller und unterstützter Bibliotheken erstellen. Auch bei HTTP/3 besteht ein großer Bedarf an einer praktischen Bibliothek, die QUIC unterstützt und weder die Wartungskosten noch die betriebliche Komplexität der Produktionsinfrastruktur erhöht.
Für viele QUIC+HTTP/3- Benutzer ist diese standardmäßige kryptografische Bibliothek OpenSSL . OpenSSL ist auf den meisten Linux-basierten Betriebssystemen standardmäßig installiert, ist die Transport Layer Security (TLS)-Bibliothek Nummer eins und wird von den meisten Netzwerkanwendungen verwendet.
Trotz dieser weiten Verbreitung bietet OpenSSL nicht die für die QUIC-Unterstützung erforderliche TLS-API. Stattdessen beschloss das OpenSSL Management Committee, einen vollständigen QUIC-Stack selbst zu implementieren. Dieses Unterfangen ist ein erheblicher Aufwand, der für OpenSSL v3.4 geplant ist, aber laut der OpenSSL-Roadmap wird dies wahrscheinlich nicht vor Ende 2024 geschehen. Darüber hinaus wird das anfängliche Minimum Viable Product der OpenSSL-Implementierung nicht die QUIC-API-Implementierung enthalten, sodass es für Benutzer keinen klaren Weg gibt, HTTP/3-Unterstützung mit OpenSSL zu erhalten.
In dieser Situation gibt es für Benutzer, die QUIC TLS-Unterstützung für ihre HTTP/3-Anforderungen suchen, zwei Optionen:
Wir bei NGINX fühlten uns von diesen Herausforderungen inspiriert und haben die OpenSSL-Kompatibilitätsschicht entwickelt, um QUIC+HTTP/3-Bereitstellungen, die OpenSSL verwenden, zu vereinfachen und die Komplexität zu vermeiden, die mit der Wartung einer separaten SSL-Bibliothek in Produktionsumgebungen verbunden ist.
Die OpenSSL-Kompatibilitätsschicht ist mit der NGINX Open Source-Hauptlinie seit Version 1.25.0 und NGINX Plus R30 verfügbar und ermöglicht es NGINX, QUIC+HTTP/3 auf OpenSSL auszuführen, ohne dass es gepatcht oder neu erstellt werden muss. Dadurch entfällt die Abhängigkeit vom Kompilieren und Bereitstellen von TLS-Bibliotheken von Drittanbietern, um QUIC-Unterstützung zu erhalten. Da Benutzer keine Bibliotheken von Drittanbietern verwenden müssen, verringert sich auch die Abhängigkeit von Zeitplänen und Roadmaps dieser Bibliotheken, wodurch die Lösung vergleichsweise einfacher in der Produktion bereitgestellt werden kann.
Die OpenSSL-Kompatibilitätsschicht implementiert diese Schritte:
Angesichts der heutigen Verbreitung von OpenSSL und der Kenntnis seines Status mit offizieller QUIC+HTTP/3-Unterstützung glauben wir, dass eine einfache und skalierbare Option zur Aktivierung von QUIC ein Schritt in die richtige Richtung ist. Darüber hinaus wird dadurch die Einführung von HTTP/3 gefördert und wertvolles Feedback ermöglicht. Am wichtigsten ist, dass wir darauf vertrauen, dass die OpenSSL-Kompatibilitätsschicht uns dabei helfen wird, unseren Unternehmensbenutzern und der gesamten NGINX-Community eine robustere und skalierbarere Lösung bereitzustellen.
Notiz : Während wir sicherstellen, dass NGINX-Benutzer mit der Verfügbarkeit der OpenSSL-Kompatibilitätsschicht eine einfache und skalierbare Option haben, haben Benutzer weiterhin die Möglichkeit, Drittanbieterbibliotheken wie BoringSSL, quicTLS oder LibreSSL mit NGINX zu verwenden. Um zu entscheiden, welcher Weg für Sie der richtige ist, überlegen Sie, welcher Ansatz Ihren Anforderungen am besten entspricht und wie gut Sie mit dem Kompilieren und Verwalten von Bibliotheken als Abhängigkeiten vertraut sind.
0-RTT ist eine Funktion in QUIC, die es einem Client ermöglicht, Anwendungsdaten zu senden, bevor der TLS-Handshake abgeschlossen ist. Die 0-RTT-Funktionalität wird durch die Wiederverwendung ausgehandelter Parameter einer vorherigen Verbindung ermöglicht. Dies wird dadurch ermöglicht, dass sich der Client kritische Parameter merkt und dem Server ein TLS-Sitzungsticket bereitstellt, mit dem der Server dieselben Informationen wiederherstellen kann.
Obwohl diese Funktion ein wichtiger Bestandteil von QUIC ist, wird sie in der OpenSSL-Kompatibilitätsschicht noch nicht unterstützt. Wenn Sie spezielle Anwendungsfälle haben, die 0-RTT erfordern, freuen wir uns über Ihr Feedback zur Gestaltung unserer Roadmap.
Sie können die OpenSSL-Kompatibilitätsschicht von NGINX noch heute mit NGINX Open Source verwenden oder eine 30-tägige kostenlose Testversion von NGINX Plus starten. Wir hoffen, Sie finden es nützlich und freuen uns über Ihr Feedback.
Weitere Informationen zu NGINX mit QUIC+HTTP/3 und OpenSSL finden Sie in den folgenden Ressourcen.
„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."