mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-22 22:38:05 +03:00
TLS: Behavior of ALPN in uTLS
This commit is contained in:
@@ -142,9 +142,14 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之
|
||||
:::
|
||||
|
||||
::: tip
|
||||
当使用此功能时,TLS 的部分影响TLS指纹的选项将被 utls 库覆盖不再生效,列如ALPN。
|
||||
会被传递的参数有
|
||||
`"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`
|
||||
当使用此功能时,TLS 的部分影响TLS指纹的选项将被 utls 库覆盖不再生效。
|
||||
会被传递的参数有:`"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`
|
||||
|
||||
针对 ALPN 则有特殊行为。
|
||||
|
||||
默认强制使用最常见的 `h2,http/1.1` 作为 ALPN。对于 WebSocket 和 HttpUpgrade 传输则默认使用 `http/1.1`, 否则协商到 `h2` 会导致无法连接,但允许手动设置到 `h2,http/1.1`,如果确信服务器支持使用这个 ALPN 完成握手。
|
||||
|
||||
如果 ECH 启用,则 outer 无论如何都会显示为 `h2,http/1.1`,而 inner 如果是 WebSocket 或 HttpUpgrade 则会强制置 `http/1.1` 以便完成握手,其他协议则会尊重用户配置的 ALPN。
|
||||
:::
|
||||
|
||||
> `pinnedPeerCertSha256`: string
|
||||
|
||||
@@ -140,9 +140,14 @@ This feature only **simulates** the `TLS Client Hello` fingerprint. Behavior and
|
||||
:::
|
||||
|
||||
::: tip
|
||||
When this feature is enabled, some TLS options that affect TLS fingerprints are overridden by the uTLS library and stop taking effect, such as ALPN.
|
||||
The parameters still passed through are:
|
||||
`"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`
|
||||
When this feature is enabled, some TLS options that affect TLS fingerprints are overridden by the uTLS library and stop taking effect.
|
||||
The parameters still passed through are: `"serverName" "disableSystemRoot" "pinnedPeerCertSha256" "masterKeyLog"`.
|
||||
|
||||
ALPN has special behavior.
|
||||
|
||||
By default, the most common `h2,http/1.1` is forced as ALPN. For WebSocket and HttpUpgrade transports, `http/1.1` is used by default — otherwise negotiating to `h2` would prevent the connection from succeeding — but you may manually set it to `h2,http/1.1` if you are sure the server supports completing the handshake with this ALPN.
|
||||
|
||||
If ECH is enabled, the outer ALPN is always shown as `h2,http/1.1`. The inner ALPN is forced to `http/1.1` for WebSocket or HttpUpgrade transports to allow the handshake to complete; for other protocols the user-configured ALPN is honored.
|
||||
:::
|
||||
|
||||
> `pinnedPeerCertSha256`: string
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user