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
@@ -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