TLS: Behavior of ALPN in uTLS

This commit is contained in:
Fangliding
2026-05-15 23:41:30 +08:00
parent 778f201913
commit 9e921ce16c
3 changed files with 24 additions and 9 deletions
+8 -3
View File
@@ -140,9 +140,14 @@ TLS — это обычный механизм защиты транспорта
:::
::: tip
При использовании этой функции некоторые TLS-параметры, влияющие на отпечаток, будут перезаписаны библиотекой uTLS и перестанут действовать, например ALPN.
Параметры, которые все равно передаются:
`"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`
При использовании этой функции некоторые TLS-параметры, влияющие на отпечаток, будут перезаписаны библиотекой uTLS и перестанут действовать.
Параметры, которые все равно передаются: `"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`.
Для ALPN действует особое поведение.
По умолчанию принудительно используется самый распространенный `h2,http/1.1`. Для транспортов WebSocket и HttpUpgrade по умолчанию используется `http/1.1`, иначе согласование `h2` приведет к невозможности подключения. При желании можно вручную установить `h2,http/1.1`, если вы уверены, что сервер поддерживает завершение рукопожатия с таким ALPN.
Если включен ECH, внешний ALPN всегда отображается как `h2,http/1.1`. Внутренний ALPN для WebSocket и HttpUpgrade принудительно устанавливается в `http/1.1`, чтобы рукопожатие могло завершиться; для остальных протоколов соблюдается заданный пользователем ALPN.
:::
> `pinnedPeerCertSha256`: string