chika0801/Xray-examples

使用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_GCMServer signature 必须要是ECDSA with SHA-256 才可以成功。

我没有经过仔细测试,但我会采用偷自己域名作为最终解决方案。再次感谢您的帮助!😃

不用谢。