申请域名SSL证书

不知不觉一年又过去了,一直以为申请SSL证书是极为容易的事情,没想到这次却遇见了一点小麻烦。用的是腾讯云申请免费的亚洲诚信DV SSL证书(Domain ValidationSSL),不料,24小时快过去了,还是处于待验证状态。之前也用腾讯云申请过,虽然比阿里云稍微慢点,但也不至于都快1天时间了,手动点击验证,结果是验证失败

查看原因也告知是DNS解析全球生效需要24小时,同时上面也写有1个工作日内审核。但问题是距离24小时都不到1小时了,我就不信过了1小时候它会成功,因此我不打算继续等候这几十分钟,准备放弃换阿里云申请。

用阿里云申请,显示为1-15分钟内审核完毕,结果15分钟过去了依旧不见动静,还是处于正在审核中的状态,我预感不妙,阿里云估计也不会成功的。不服的我又撤销申请,重来了2次结果依旧。

后面我也不知道搜索的是什么关键词,找到了MySSL.com这个网站,输入申请的域名TXT验证值检测发现,竟然显示不匹配,其结果如下:

地区 是否匹配
中国 不匹配 (验证失败,您的CAA配置不允许当前CA为您签发证书,请修改为:symantec.com或digicert.com)
香港 不匹配 (验证失败,您的CAA配置不允许当前CA为您签发证书,请修改为:symantec.com或digicert.com)
美国 不匹配 (验证失败,您的CAA配置不允许当前CA为您签发证书,请修改为:symantec.com或digicert.com)

好家伙,于是我以为是CAA在腾讯云或阿里云自动配置不当的结果(尽管心里面不认为是阿里腾讯的问题,但是没办法),自己手动申请后继续在阿里云上面申请,结果还是不行。

于是我开始回顾,莫不成申请个SSL证书还要把域名解析到相应的服务商吗?但经验告诉我,这是没必要的,有了TXT验证,是不需要去处理域名A记录CNAME记录的。

于是我又寻思,莫不成最近的免费版可能有点状况?莫不成最近的申请策略改变了?莫不成我的域名变为敏感了?最后我把这些猜想都排除了,直接从域名解析上着手。

域名主机记录为@的,CNAME解析到vercel上,记录为www的默认CNAME解析到了cloudflare(还有其他线路解析),我直接把这两个记录给暂停解析,没过多久,一刷新腾讯SSL证书的申请页面,竟然已经成功了。看来问题应该是出现在主机记录为@的解析到vercel上的缘故,才导致上面检测显示不匹配的问题。

虽然问题得以顺利解决,但害怕明年申请的时候又给遗忘了,故此赶紧写一篇文章来记录一下。为什么去年和之前都没遇见这样的问题呢?自己回顾了一下有一下几个可能性:

  • 之前申请的有些都是二级域名,而这是是申请www的,但域名主机记录为@的,和域名主机记录为www的,一般会被视为同一个,或者两者共用一张SSL证书;
  • 可能是vercel特有的问题,如果把域名解析到其他云服务商,可能就不存在这样的状况,比如解析到某个服务商的CDN上;

RSA 与 ECC 加密算法的区别

前面说道还怀疑是申请策略变更了,其原因就是腾讯云支持ECC加密算法的申请了,之前腾讯云都是默认RSA的,又拍云支持的比腾讯云早,阿里云到目前为止(2021年7月22日),好像不支持选择ECC申请。(没去细究到底支持不)

至于这两者有啥区别,看下面表格对比,我肯定优选ECC,管他浏览器的兼容性好与不好。

对比项目 ECC 加密算法 RSA 加密算法
密钥长度 256位 2048位
CPU 占用 较少 较高
内存占用 较少 较高
网络消耗 较少 较高
加密效率 较高 一般
抗攻击性 较强 一般
兼容范围 新版浏览器和操作系统均支持,但存在少数不支持的平台。例如 cPanel 均支持