Hysteria2服务端自签证书 搭建节点时未获取证书指纹 v2ray客户端测试查询证书指纹
前言
如果你使用Hysteria2服务端自签证书, 搭建脚本/面板没有提供证书的指纹.而你担心被中间人攻击, 你希望在客户端指定证书的指纹.
那么, 你可以这么做:
1. 如果你能在服务端找到证书
你可以使用
openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}'
或
openssl x509 -noout -fingerprint -sha256 -in your_cert.crt | sed 's/^.*=//'
得到证书指纹的 hex 编码.
可以用于 Hysteria2 的客户端配置文件.
你也可以使用
openssl x509 -in 你的证书.crt -outform DER | sha256sum | awk '{print $1}' | xxd -r -p | base64
或
openssl x509 -noout -fingerprint -sha256 -in 你的证书.crt | sed 's/^.*=//' | xxd -r -p | base64
得到证书指纹的 base64 编码.
可以用于 V2ray 的客户端配置文件.
2. 如果你不能(或者不懂)在服务端 找到证书
你可以使用 v2ray 客户端 尝试指定证书指纹连接服务端, 命令行报错信息会提示服务端的证书指纹.
我们以 v2rayN-VLESS 客户端为例.
支持hy2指定证书指纹的preview打包
导入一个不带证书指纹的 Hy2 分享链接, 如
hysteria2://b4349e3a-55be-39ad-9837-3fb9397a888c@74.48.9.95:2053?insecure=1#HY2_74.48.9.95
Ctrl + R 测试, 是通的.
我们设置一个不正确的指纹. 如
1234
app/proxyman/outbound: failed to process outbound traffic > proxy/hysteria2: failed to find an available destination > common/retry: [connect error: CRYPTO_ERROR 0x12a (local): transport/internet/tls: peer cert is unrecognized:TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso=] > common/retry: all retry attempts failed

注意到日志里面报告服务端的指纹为
TeddTPwg0va7l8sJsBuTlrK6us6X+7GdxnssJ+JRuso=
那么我们把指纹修改为这个.
Ctrl + R 测试, 正常.
========
后记
用 v2ray 客户端查到的服务端证书指纹是 base64 编码的, 直接放到 hy2 的客户端配置文件是不能用的.





评论
发表评论