我们很早就开始使用Let's Encrypt的免费SSL证书,刚开始是在Linux服务器上安装certbot软件,运行certbot-auto来进行生成、检查和更新,都是采用的文件验证方式,生成多个子域名绑定在一起的SSL证书。但早期安装的CentOS 6.x过时了,上面运行的certbot老版本也失去支持,不能运行新版来生成泛域名证书。
后来我们升级了操作系统,顺便安装了堡塔软件来做一些软件的安装补丁升级等繁琐的事情,其站点设置中也支持生成Let's Encrypt的免费证书,可以选择文件验证或者DNS验证(这对我们很方便,从Cloudflare后台获取账户Email和Global API Key就可以),而且支持泛域名证书,但不似乎没有办法生成三级子域名的泛域名证书(例如:*.m.example.com)。
我们有的历史站点需要绑定多个二级域名、三级域名,在用堡塔生成Let's Encrypt证书的时候有时会报错,我们就先用Cloudflare的自签名证书,这对于前端使用了Cloudflare或者百度云加速作为CDN的站点来说是没有问题的,但不能无CDN直接访问。
最近百度云加速上了新平台,我们有的网站已经切换到新CDN平台,发现站点访问显示Gateway Timeout,就是因为新平台回源不支持Cloudflare的自签名证书,而且新平台中也没有地方可以像老平台或者Cloudflare那样选择回源是严格https、完整https或者兼容http方式。
我们只好再在堡塔中尝试生成绑定多个二级、三级域名的SSL证书,依然看到报错,这次把报错记录下来:
宝塔在生成ssl证书的时候一直提示caa查询超时,例如:
DNS problem: query timed out looking up CAA for cn.amp.example.com
在Let's Encrypt官方网站找到这篇《证书颁发机构授权(CAA)》,CAA并不是一个强制性的标准,只是部分平台要求、有的时候要求,但这次既然遇到报错,就根据这个提示来添加CAA记录吧。我是在Cloudflare中添加DNS记录的,每个子域名添加了一个单独的CAA记录,添加完成后再次在堡塔中生成SSL证书就成功了。✌️
2023-11-27补充:最近百度云加速中申请的证书一直无法通过验证,今天询问了他们客服及技术人员,说是我们添加了上面支持Let's Encrypt的CAA后,亚洲诚信的SSL证书就无法验证了,然后我们每个子域名再添加一条CAA记录,CA域名从letsencrypt.org改为trust-provider.com,就可以验证通过、生成新的SSL证书了。✌️
评论