使用 cloudfare 的 DNS 配置了记录,并且开启了 Proxy 模式,将域名解析到腾讯的 vps ,也在 SSL 里面配置了源服务器证书,也配置到 vps 的 nginx 了
这个时候直接 https 访问 ip 是可以的
但是使用 cloudfare 的域名访问就提示:
SSL handshake failed Error code 525
listen 443 ssl;
ssl_certificate /home/user/cert/domain.pem;
ssl_certificate_key /home/user/cert/domain.key;
1
renfei 325 天前
VPS 上的防火墙打开 443 端口了吗??
|
5
renfei 325 天前
如果是严格模式,还会校验证书的有效性,包括签发的 CA 、有效期、域名等信息,一个不对都不行,建议选 完全模式即可。
|
7
renfei 325 天前
看下官方社区中的方案呢: https://community.cloudflare.com/t/community-tip-fixing-error-525-ssl-handshake-failed/44256
估计是 SNI 或 加密套件的事? |
8
ladypxy 325 天前
要在 CF 里打开 https 使用 cf 的证书啊
|
9
bearice 325 天前
换个国外主机试试?国内的会阻断非备案域名的 ssl 连接。
|
11
renfei 325 天前
我就没开 SSL ,回源直接 http ,要是开 SSL ,光 https 加密我 CPU 直接就爆了
|
15
renfei 325 天前
@jochenshi 执行这个命令看下
curl -svo /dev/null https://www.example.com --connect-to ::192.0.2.0 2>&1 主要修改域名和 IP 地址为你源站的 IP |
16
momooc 325 天前 via Android
ssl 握手失败,从服务器上找原因吧
|
19
renfei 325 天前
@jochenshi unable to get local issuer certificate 无法获取本地发行者证书,这个证书的自签名的吗
再加个参数 -k 可以先忽略证书的校验,观测完整的握手过程 curl -k -svo /dev/null https://www.example.com --connect-to ::192.0.2.0 |
20
eijnix 325 天前
我也一样,换成国外主机立马就好了
|
21
jochenshi OP @renfei 这个证书是 cloudfare 签发的源服务器的证书,然后安装到 vps 上面的,看下面的提示还是走了腾讯指定的 CA ?
* ALPN, offering h2 * ALPN, offering http/1.1 * successfully set certificate verify locations: * CAfile: /etc/ssl/cert.pem * CApath: none * (304) (OUT), TLS handshake, Client hello (1): } [323 bytes data] * (304) (IN), TLS handshake, Server hello (2): { [122 bytes data] * (304) (IN), TLS handshake, Unknown (8): { [25 bytes data] * (304) (IN), TLS handshake, Certificate (11): { [2961 bytes data] * (304) (IN), TLS handshake, CERT verify (15): { [264 bytes data] * (304) (IN), TLS handshake, Finished (20): { [52 bytes data] * (304) (OUT), TLS handshake, Finished (20): } [52 bytes data] * SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384 * ALPN, server accepted to use http/1.1 * Server certificate: * subject: CN=腾讯云对应的域名 * start date: Apr 10 00:00:00 2023 GMT * expire date: Apr 9 23:59:59 2024 GMT * issuer: C=CN; O=TrustAsia Technologies, Inc.; CN=TrustAsia RSA DV TLS CA G2 * SSL certificate verify ok. > GET / HTTP/1.1 > Host: Cloudfare 对应的域名 > User-Agent: curl/7.79.1 > Accept: */* > * Mark bundle as not supporting multiuse < HTTP/1.1 200 OK < Server: nginx/1.18.0 (Ubuntu) < Date: Tue, 25 Jul 2023 06:07:50 GMT < Content-Type: text/html < Content-Length: 687 < Last-Modified: Mon, 19 Jun 2023 08:27:00 GMT < Connection: keep-alive < Vary: Accept-Encoding < ETag: "64901154-2af" < Accept-Ranges: bytes < { [687 bytes data] |
22
renfei 325 天前
@jochenshi 只要不是严格模式,CF 是不会校验证书的 CN=腾讯云对应的域名 域名是否一致的,按理来说是没问题的
那我只能怀疑是网络原因了,CF 过墙的时候,被阻断了,毕竟服务器在里面,CF 在外面 |
23
renfei 325 天前
另外,再提醒一点,nginx 修改完配置,及得重启或者 reload
nginx -s reload 配置才能生效 |
24
jochenshi OP |
25
renfei 325 天前
@jochenshi 我有国内的机器,但我没有使用 SSL ,我直接 http 回源站,状态监控一周里会发生两三次不通的情况,平时还好,只是慢一些
我已经准备注销备案,完全使用境外服务器了 |
27
BurgerTown 325 天前
看了一下 大概率是没有备案的大陆主机 没有备案不允许提供 http 服务 在腾讯云的网关会被拦住 如果想用 CF 可以直接用 tunnel 映射出去
|
28
jochenshi OP @BurgerTown 主机有一个备案的域名,想把 cloudfare 的域名也解析过来的,这样是不行的吗?
|
29
JensenQian 325 天前 via Android
@jochenshi 当然不行,你可以试下 cloudflare tunnel 打洞
|
30
stcode 322 天前
不能选严格,之前 blogger 博客绑定的域名,我选严格,一直是这个错误,只能选完全
|