0x00 开头
今天看我站点的时候(测速),发现了个奇怪的情况,我的根域名在 Cloudflare 上没有证书,HTTPS访问会报错。理论上来说,这不应该呀,然后我就去控制台看了看,边缘证书里是空的!啊?最后用 Pages 解决了。
0x01 排查
然后我改了我的 DNS,访问托管在 CF 上的 https://blog.hank.ltd
,它又是有证书的,同样的 https://hank.ltd
使用 CURL 请求就会报错
下面是正常的请求
1 | ubuntu@VM-4-16-ubuntu:~$ curl -vik --resolve blog.hank.ltd:443:172.67.159.254 https://blog.hank.ltd/ |
这是我根域名访问的信息
1 | ubuntu@VM-4-16-ubuntu:~$ curl -vik --resolve hank.ltd:443:172.67.159.254 https://hank.ltd/ |
太奇怪了
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 ?