Die Veröffentlichung der Hauptversion nginx 1.29.4 wurde bekanntgegeben, in der die Entwicklung neuer Funktionen fortgesetzt wird. In der parallel unterstützten stabilen Version 1.28.x werden nur Änderungen zur Behebung schwerwiegender Fehler und Sicherheitsanfälligkeiten vorgenommen. In Zukunft wird auf Basis der Hauptversion 1.29.x eine stabile Version 1.30 erstellt. Der Code des Projekts ist in C geschrieben und wird unter der BSD-Lizenz vertrieben.
In der neuen Version:
- Im Modul ngx_http_proxy wurde die Unterstützung des HTTP/2-Protokolls hinzugefügt, was die Verwendung von HTTP/2 beim Zugriff auf Backends ermöglicht.
- Die Unterstützung für die TLS-Erweiterung ECH (Encrypted ClientHello) wurde hinzugefügt. Diese Erweiterung baut auf der ESNI (Encrypted Server Name Indication) auf und wird verwendet, um Informationen über TLS-Sitzungsparameter, wie den angeforderten Domainnamen, zu verschlüsseln. Der Schlüsselunterschied zwischen ECH und ESNI besteht darin, dass bei ECH anstelle der Verschlüsselung auf Feldebene die gesamte ClientHello-Nachricht verschlüsselt wird, was das Auslaufen von Daten durch Felder, die nicht von ESNI abgedeckt sind, wie das PSK (Pre-Shared Key)-Feld, blockiert. Die Verwendung von ECH kann durch die Angabe in der Anweisung „ssl_ech_file“ in der Konfigurationsdatei ECHConfig im PEM-Format aktiviert werden. Die Unterstützung ist bei der Verwendung von OpenSSL-Builds mit ECH verfügbar.
- Die Regeln zur Überprüfung von Host und Port im Anfrage-Text, im Header „Host“ und im Pseudo-Header „:authority“ wurden an die Anforderungen von RFC 3986 angepasst.
- Die Angabe eines einzigen Zeilenumbruchs als abschließende Sequenz in chunked-Anfragen oder im Antwortkörper wird nun als Fehler behandelt.
- Ein Absturz wurde behoben, der beim Gebrauch von HTTP/3 mit der Bibliothek OpenSSL 3.5.1+ auftrat.
- Ein Absturz des Arbeitsprozesses wurde behoben, der auftraten, wenn die Direktiven try_files und proxy_pass gleichzeitig mit einer URI angegeben wurden.
Quelle: opennet.ru
