hank9999部落格

写点奇怪的东西

奇怪的问题 | Cloudflare SSL 边缘证书签发问题

hank9999's Avatar 2024-10-17

  1. 1. 0x00 开头
  2. 2. 0x01 排查
  3. 3. 0x02 尝试解决
  4. 4. 0x03 奇怪的解决方法

0x00 开头

今天看我站点的时候(测速),发现了个奇怪的情况,我的根域名在 Cloudflare 上没有证书,HTTPS访问会报错。理论上来说,这不应该呀,然后我就去控制台看了看,边缘证书里是空的!啊?最后用 Pages 解决了。
"weird_problem_cloudflare_ssl_edge_certificate_issuance_problem-1"

0x01 排查

然后我改了我的 DNS,访问托管在 CF 上的 https://blog.hank.ltd,它又是有证书的,同样的 https://hank.ltd 使用 CURL 请求就会报错
下面是正常的请求

1
2
3
4
5
6
7
8
9
ubuntu@VM-4-16-ubuntu:~$ curl -vik --resolve blog.hank.ltd:443:172.67.159.254 https://blog.hank.ltd/
# 省略一部分没用的信息
* SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384 / X25519 / id-ecPublicKey
* ALPN: server accepted h2
* Server certificate:
* subject: CN=blog.hank.ltd
* start date: Sep 4 14:54:11 2024 GMT
* expire date: Dec 3 14:54:10 2024 GMT
* issuer: C=US; O=Google Trust Services; CN=WE1

这是我根域名访问的信息

1
2
3
4
5
6
7
8
9
10
11
ubuntu@VM-4-16-ubuntu:~$ curl -vik --resolve hank.ltd:443:172.67.159.254 https://hank.ltd/
* Added hank.ltd:443:172.67.159.254 to DNS cache
* Hostname hank.ltd was found in DNS cache
* Trying 172.67.159.254:443...
* Connected to hank.ltd (172.67.159.254) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* TLSv1.3 (IN), TLS alert, handshake failure (552):
* OpenSSL/3.0.13: error:0A000410:SSL routines::sslv3 alert handshake failure
* Closing connection
curl: (35) OpenSSL/3.0.13: error:0A000410:SSL routines::sslv3 alert handshake failure

太奇怪了

0x02 尝试解决

我先是把 SSL/TLS 加密通用 SSL 关了,然后等了几个小时,又重新打开,没用。
然后我用 API 接口 ssl/certificate_packs 看了看我域下的证书状况

1
{"result":[],"result_info":{"page":1,"per_page":20,"total_pages":0,"count":0,"total_count":0},"success":true,"errors":[],"messages":[]}

这简直太奇怪了

然后我去搜了搜,看到了帮助文档,有个 疑难排查 如下:

To resolve timeout issues, try one or more of the following options:

  • Change the Proxy status of related DNS records to DNS only (gray-clouded) and wait at least a minute. Then, change the Proxy status back to Proxied (orange-clouded).
  • Disable Universal SSL and wait at least a minute. Then, re-enable Universal SSL.
  • Send a PATCH request to the validation endpoint using the same DCV method (API only). Please make sure that the field is not empty in your request.–data
  • Follow the APEX validation method.

我这个当时是用 Partner 接入的,我就去 Partner 的控制面板把 CDN 关了,然后在设置里把 SSL/TLS 加密通用 SSL 关了,等了半小时,然后重新打开。
等了好久,还是没有证书,说明上的 DCV 委派 我也加上了,还是没有。
这玩意儿忒奇怪了,难不成是 Partner 接入的问题?我去看了我另一个使用 Partner 接入的站点,一切正常,在边缘证书那里可以直接看到。

然后我看到了有个 API 接口 /ssl/certificate_packs/order
我原本觉得应该就能解决了,然后这个接口是给 ACM (Advanced Certificate Manager) 用户准备的,我调不了(。

为了对比试验,我手欠去把那个正常用的域名的 通用 SSL 也关了,再打开,结果也不能用了??好奇怪。

0x03 奇怪的解决方法

我发现 Cloudflare Pages 貌似会强制刷新 SSL 证书,正好我也在用 Pages 然后我就把域名加进去,他好了(๑•̀ㅂ•́)و✧。
感觉像是一个新功能引起的奇奇怪怪的小 BUG ?

本文作者 : hank9999
版权声明 :本站所有文章除特别声明外,均采用 BY-NC-SA 4.0 许可协议。转载请注明出处!
本文链接 : https://blog.hank.ltd/weird_problem_cloudflare_ssl_edge_certificate_issuance_problem/