前言

近期很多SSL签发都和去年有较大不同,比如Freessl.cn开始使用CNAME进行验证而不是之前常用的TXT验证

最近CF续签也很容易遇到问题报错:“The requested hostname resolves to a Cloudflare zone that is not owned by you. HTTP domain control validation (DCV) cannot be completed. Update this hostname to resolve to your zone and PATCH to try again.”

本文适用于使用CNAME接入CloudFlareCDN的用户,比如IONWP、Plesk、CF伙伴等平台

原因

首先排查自己的DNS解析中有没有异常项目,比如

  • 当前域名的中国大陆境外指向IP不是CF的IP->建议境外解析到CF
  • 当前域名的Root作了CNAME到其他域名->建议Root使用A而不是CNAME
  • 当前域名和Root作了CAA解析->建议签发异常时暂停或移除该记录

然后CF在不知道什么时候又修改了CF自己的SSL签发限制条件

之前我测试的时候只要中国大陆境外不解析到CFDNS的IP(1111和1001),解析到其他任意CFIP都行,最近因为我都是套娃CNAME到一个子域名,导致SSL证书签发失败

解决方案

  1. 修正DNS解析的不规范项目(Root的CNAME、CAA、国际非CFIP等)该关的关,该用A的用A
  2. 将解析中的中国大陆境外的部分,解析到 your.domain.cdn.cloudflare.net 请务必保持一对一,而不是各种CNAME,比如A域名CNAME到B域名.cdn.cloudflare.net。如果使用A记录不排除签发失败的可能性。
  3. 修复上述选项后去CFP管理面板等第三方平台,关开关开一轮CDN按钮,以便在CF官网控制台能看到重新验证SSL
  4. 如果再次失败且确认上述无误,请再关闭一次CDN,并到相应的位置后,再开一次CDN,手动填写URL对应的文件,进行手动文件验证

正常情况下,证书能在5分钟内验证并签发,如果超时必然有问题

如果SSL证书签发失败,那么访问一般提示使用了不支持的SSL协议等类似字眼