▎覆盖用于验证证书的域名,但不会改变 SNI
免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名
verifyPeerCertByName, URI 上叫 vcn$server['name-cert-verify'] = 'b.com'- ❤️1
verifyPeerCertByName, URI 上叫 vcn$server['name-cert-verify'] = 'b.com'
certificate_public_key_sha256)
sni, 其次节点服务端certificate_public_key_sha256)Trojan-Go : verify_hostname 表示服务端是否校验客户端提供的SNI与服务端设置的一致性 文档Xray : rejectUnknownSni 服务端接收到的 SNI 与证书域名不匹配即拒绝 TLS 握手 文档sing-box: 问了下薄荷佬, 官版没有,server-cert-fingerprint TLS 握手时验证服务器证书 SHA256 指纹 文档server-cert-fingerprint-sha256 文档skip-cert-verify=true :Surge will not verify the server's certificate.
sni=off :turn off SNI completely
sni 为 IP 时, 也不发 sniverifyPeerCertByName, URI 上叫 vcn$server['name-cert-verify'] = 'b.com'bing.com 自签证书:openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj "/CN=bing.com" -days 36500openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pemopenssl s_client -connect foo.com:443 -servername foo.com </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2tls-fingerprint 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设{ "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com", "fingerprint": "SHA256 指纹", "_certificate_public_key_sha256": [ "SHA-256 哈希" ] } openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64echo | openssl s_client -servername foo.com -connect foo.com:443 2>/dev/null | openssl x509 -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64$server._certificate_public_key_sha256 = [ "428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=" ]