ΠΠ±ΡΠ²Π΅Π½ΠΎ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π½Π° nginx 1.29.4, Π² ΠΊΠΎΡΡΠΎ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. Π ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Π½Π°ΡΠ° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ 1.28.x ΡΠ΅ Π²Π½Π°ΡΡΡ ΡΠ°ΠΌΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΠΈΠΎΠ·Π½ΠΈ Π³ΡΠ΅ΡΠΊΠΈ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ. Π Π±ΡΠ΄Π΅ΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° Π²Π΅ΡΡΠΈΡ 1.29.x ΡΠ΅ Π±ΡΠ΄Π΅ ΡΠΎΡΠΌΠΈΡΠ°Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½Π° Π²Π΅ΡΡΠΈΡ 1.30. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π‘ ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΡ BSD.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- Π ΠΌΠΎΠ΄ΡΠ»Π° ngx_http_proxy Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° HTTP/2, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° HTTP/2 ΠΏΡΠΈ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π±Π΅ΠΊΠ΅Π½Π΄ΠΈΡΠ΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° TLS-ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ECH (Encrypted ClientHello), ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π°ΡΠΎ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°Π·ΡΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ ESNI (Encrypted Server Name Indication) ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΎ Π·Π° ΠΊΡΠΈΠΏΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈΡΠ΅ Π½Π° TLS-ΡΠ΅ΡΠΈΠΈΡΠ΅, ΡΠ°ΠΊΠΈΠ²Π° ΠΊΠ°ΡΠΎ ΠΈΠ·ΠΈΡΠΊΠ°Π½ΠΎΡΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΈΠΌΠ΅. ΠΠ»ΡΡΠΎΠ²Π°ΡΠ° ΡΠ°Π·Π»ΠΈΠΊΠ° ΠΌΠ΅ΠΆΠ΄Ρ ECH ΠΈ ESNI Π΅, ΡΠ΅ Π² ECH ΡΡΠ»ΠΎΡΠΎ TLS-ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ClientHello ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°, Π²ΠΌΠ΅ΡΡΠΎ Π΄Π° ΡΠ΅ ΠΊΡΠΈΠΏΡΠΈΡΠ°Ρ ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅ Π½Π° ΠΈΠ·ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ ΡΡΠ΅Π· ΠΏΠΎΠ»Π΅ΡΠ°, ΠΊΠΎΠΈΡΠΎ Π½Π΅ ΠΎΠ±Ρ Π²Π°ΡΠ° ESNI, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΠΎΠ»Π΅ΡΠΎ PSK (Pre-Shared Key). ΠΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ECH ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΡΠ΅Π· ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²Π°ΡΠ° "ssl_ech_file" ΡΠ°ΠΉΠ»Π° Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ECHConfig Π² ΡΠΎΡΠΌΠ°Ρ PEM. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π΅ Π½Π°Π»ΠΈΡΠ½Π° ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΡΠ±ΠΎΡΠΊΠΈ Π½Π° OpenSSL Ρ ECH.
- ΠΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° Ρ ΠΎΡΡΠ° ΠΈ ΠΏΠΎΡΡΠ° Π² ΡΠ΅ΠΊΡΡΠ° Π½Π° Π·Π°ΡΠ²ΠΊΠ°ΡΠ°, Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ "Host" ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎ-Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ ":authority" ΡΠ° ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½ΠΈ Π² ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΈΠ·ΠΈΡΠΊΠ²Π°Π½ΠΈΡΡΠ° Π½Π° RFC 3986.
- Π£ΠΊΠ°Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° Π΅Π΄ΠΈΠ½ ΡΠΈΠΌΠ²ΠΎΠ» Π·Π° Π½ΠΎΠ² ΡΠ΅Π΄ ΠΊΠ°ΡΠΎ Π·Π°Π²ΡΡΡΠ²Π°ΡΠ° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡ Π² chunked-Π·Π°ΡΠ²ΠΊΠΈΡΠ΅ ΠΈΠ»ΠΈ Π² ΡΡΠ»ΠΎΡΠΎ Π½Π° ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ° ΡΠ΅Π³Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π° ΠΊΠ°ΡΠΎ Π³ΡΠ΅ΡΠΊΠ°.
- ΠΡΡΡΡΠ°Π½Π΅Π½ΠΎ Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° HTTP/3 Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° OpenSSL 3.5.1+.
- ΠΡΡΡΡΠ°Π½Π΅Π½ΠΎ Π΅ Π°Π²Π°ΡΠΈΠΉΠ½ΠΎΡΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±ΠΎΡΠ½ΠΈΡ ΠΏΡΠΎΡΠ΅Ρ ΠΏΡΠΈ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΈΡΠ΅ try_files ΠΈ proxy_pass Ρ URI.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
