自建节点证书相关说明

抛砖引玉 留个备忘

▎服务端

验证客户端 SNI, 几个例子:

Trojan-Go : verify_hostname 表示服务端是否校验客户端提供的SNI与服务端设置的一致性 文档

Xray : rejectUnknownSni 服务端接收到的 SNI 与证书域名不匹配即拒绝 TLS 握手 文档

sing-box: 问了下薄荷佬, 官版没有,fork 有 fork 有

▎客户端

验证服务端证书, 几个例子:

Stash : server-cert-fingerprint TLS 握手时验证服务器证书 SHA256 指纹 文档

Surge: server-cert-fingerprint-sha256 文档

skip-cert-verify=true :
Surge will not verify the server's certificate.

sni=off :
turn off SNI completely

mihomo: sni 为 IP 时, 也不发 sni

覆盖用于验证证书的域名,但不会改变 SNI

免流等场景下, SNI 改为混淆, 不关验证, 仍然验证证书的域名

Xray: verifyPeerCertByName, URI 上叫 vcn
mihomo: name-cert-verify
Surge: server-cert-verify-name
sing-box(风佬版) certificate_server_name
QX tls-verification

Sub-Store 中(mihomo/Surge/QX)可按上述输入写字段, 或使用脚本操作 $server['name-cert-verify'] = 'b.com'

▎备忘

1. 在当前目录生成 10 年的 bing.com 自签证书:

openssl req -x509 -nodes -newkey ec:<(openssl ecparam -name prime256v1) -keyout private.key -out certificate.pem -subj "/CN=bing.com" -days 36500

2. 获取服务器证书 SHA256 指纹:

openssl x509 -noout -fingerprint -sha256 -inform pem -in certificate.pem

对于远程服务器 openssl s_client -connect foo.com:443 -servername foo.com </dev/null 2>/dev/null | openssl x509 -noout -fingerprint -sha256 | cut -d= -f2

▎如果想自动从服务端读取并设置

Sub-Store 自动设置服务端证书 SHA-256 指纹

▎手动设置

Sub-Store 中直接在输入里写对应的字段, 或使用脚本操作设置内部字段 tls-fingerprint 可自动转其他客户端, 但是 sing-box 的不一样, 没法直接转, 所以开放了字段让你自己设

例如使用单行 JSON 的方式, 把俩字段都写上:
{ "name": "节点名", "type": "anytls", "server": "服务器", "port": 443, "password": "xYbpwdF9vIELWoLmdC", "udp": true, "sni": "a.foo.com", "fingerprint": "SHA256 指纹", "_certificate_public_key_sha256": [ "SHA-256 哈希" ] } 


sing-box 中的 certificate_public_key_sha256 ,使用以下命令生成
openssl x509 -in certificate.pem -pubkey -noout | openssl pkey -pubin -outform der | openssl dgst -sha256 -binary | openssl enc -base64

对于远程服务器 echo | 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

Sub-Store 中需要使用脚本操作 $server._certificate_public_key_sha256 = [ "428F7quaQJvBhEr5TclcjPpsl1ryyNQo7oLBGhhC3UU=" ]

参考 Lucy 整理好的

服务器合集 Sub-Store 合集 合集 恰饭推荐 群组 联系推广

#VPS #服务器 #节点 #自建 #证书 #SNI #hostname #TLS #SHA256 #自签 #指纹 #SSL