使用Reality 时,dest网站遇到错误'ERR_SSL_VERSION_OR_CIPHER_MISMATCH'
someonewating opened this issue · 3 comments
Hello,
我使用的是VLESS-Vision-REALITY
, 参考的是推荐配置: https://github.com/chika0801/Xray-examples/blob/main/VLESS-Vision-REALITY/config_server.json。server端没有任何额外配置。
使用此配置可以正常访问google。但当我试图从浏览器中访问VPS的域名来验证回落时,浏览器抛出错误ERR_SSL_VERSION_OR_CIPHER_MISMATCH
。
我尝试使用命令 xray x25519
更改参考配置中的private key,以及客户端侧的public key。但问题仍然复现。
从debug log中看到 transport/internet/tcp: REALITY: processed invalid connection
。
完整config.json
{
"log": {
"loglevel": "debug"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "chika", // 长度为 1-30 字节的任意字符串,或执行 xray uuid 生成
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"dest": "www.lovelive-anime.jp:443", // 目标网站最低标准:国外网站,支持 TLSv1.3、X25519 与 H2,域名非跳转用(主域名可能被用于跳转到 www)
"serverNames": [ // 客户端可用的 serverName 列表,暂不支持 * 通配符,在 Chrome 里输入 "dest" 的网址 -> F12 -> 安全 -> F5 -> 主要来源(安全),填证书中 SAN 的值
"www.lovelive-anime.jp",
"lovelive-anime.jp"
],
"privateKey": "yH3uKry7v9M1Bkz8YDbqf2C8NdJ3iU8h4BB_A-rqwF8", // 执行 xray x25519 生成,填 "Private key" 的值
"shortIds": [ // 客户端可用的 shortId 列表,可用于区分不同的客户端,0 到 f,长度为 2 的倍数,长度上限为 16,可留空,或执行 openssl rand -hex 1到8 生成
"89e0cd1f6b390c60"
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}
我第一次使用VLESS-Vision-REALITY
。请各位大佬帮忙review一下,看看我哪里配置错了。提前拜谢!
但当我试图从浏览器中访问VPS的域名来验证回落时,浏览器抛出错误
验证方法是你修改系统host文件,比如win系统,加一行 VPS的IP 你在dest处填的网址,然后保存。再关开浏览器程序。
我记得此时你再在浏览器输入dest处填的网址,就能显示dest网址的内容了。
如果这方法不行,就是输入https://VPSip,显示dest网址内容表示正常。时间久了记不清了,你要试试这2个方法。
另外建议你有域名自己申请SSL证书来偷自己,用别人的,可能你客户端莫名遇到类似时通时不通,或者端口被封现象。
感谢您的信息。
首先我试了改host,但是同样的错误复现了。
其次我也试了https://[IP]:[port]
,但同样的问题还是重现了。BTW,您的URL不正确打不开。
最后再补充一下我的发现。因为我现在用的是vision方案,有一个nginx用来将异常流量重定向到www.lovelive-anime.jp
。我试了偷我自己nginx的域名,是ok的。
其次我也试了一些别的域名,e.g. www.cloudflare.com
, azure.microsoft.com
,以及我自己的伪装域名。从结果看,www.cloudflare.com
是成功偷到了,azure.microsoft.com
不行,我自己的伪装域名也成功了。
对比三个网站使用的TLS,似乎网站除了要支持H2, TLS1.3, 采用X25519外,cipher必须要是AES_128_GCM
且Server signature 必须要是ECDSA with SHA-256
才可以成功。
我没有经过仔细测试,但我会采用偷自己域名作为最终解决方案。再次感谢您的帮助!😃
不用谢。