You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

域名指向A记录且配置证书后仍提示err_cert_common_name_invalid的解决方案咨询

域名指向A记录且配置证书后仍提示err_cert_common_name_invalid的解决方案咨询

嘿,我来帮你梳理下这个问题的解决方案,你遇到的err_cert_common_name_invalid本质上是因为AutoSSL的局限性——它是主机商针对自己服务器上的站点自动签发证书的工具,要求域名必须解析到该主机的IP,而且站点得在同一个账户下,跨账户的话AutoSSL根本识别不到新域名,自然签发的证书就不匹配啦。下面是几个靠谱的解决思路:

方案一:在目标主机账户中添加新域名并重新申请SSL证书

这是最直接的办法,因为目标主机已经有正常的SSL配置,我们只需要把新域名纳入它的证书覆盖范围:

  • 登录持有目标主机的GoDaddy账户,在主机控制面板里把你的新域名添加为附加域名或者别名域名(不同主机商的叫法可能有差异,找类似“Add Domain”的选项)。
  • 确保新域名的A记录已经正确指向目标主机的IP,并且DNS解析已经生效(可以用nslookup 你的新域名命令确认)。
  • 然后在目标主机的SSL管理工具里,重新申请证书——如果用的是Let's Encrypt这类免费证书,直接选择包含原域名和新域名的SAN证书;如果是GoDaddy自带的SSL,添加新域名到证书的域名列表中即可。这样签发的证书会同时覆盖两个域名,就不会出现证书不匹配的问题了。

方案二:给新域名单独申请证书并部署到目标主机

如果目标主机允许上传自定义SSL证书,也可以单独给新域名申请证书再部署:

  • 在新域名所在的GoDaddy账户里,申请SSL证书(可以选GoDaddy付费证书,或者免费的Let's Encrypt证书)。申请时选择DNS验证方式,这样只需要在新域名的DNS设置里添加一条验证记录就能完成所有权验证,不用折腾主机文件。
  • 证书签发后,下载证书文件(一般包含.crt证书文件、.key私钥文件,有的还有中间证书)。
  • 登录目标主机的控制面板,找到SSL绑定的选项,上传下载好的证书文件,绑定到新域名上即可。

方案三:用Cloudflare做代理(零主机配置的简便方案)

如果不想折腾主机的证书配置,Cloudflare是个很好的选择:

  • 把新域名的DNS服务器切换到Cloudflare提供的服务器(Cloudflare官网会有详细的切换指引)。
  • 在Cloudflare的控制面板中,把新域名的A记录指向目标主机的IP,并且把云朵图标设为橙色(开启代理模式)。
  • 进入Cloudflare的SSL/TLS设置,把SSL模式改成Full或者Full (Strict)。Cloudflare会自动给新域名签发免费的SSL证书,用户访问新域名时,浏览器和Cloudflare之间用Cloudflare的证书,Cloudflare和目标主机之间用目标主机已有的SSL证书,完美解决证书不匹配的问题。而且还能顺便获得CDN加速和安全防护的额外福利。

额外注意事项

  • 不管用哪种方案,都要等DNS解析完全生效(一般需要1-24小时,快的话几分钟)再测试。
  • 测试前记得清除浏览器缓存,或者用隐身窗口访问,避免缓存旧的证书信息导致误判。
  • 如果用SAN证书,一定要确认证书里包含了所有需要的域名,包括原域名和新域名。

备注:内容来源于stack exchange,提问作者Bon Andre Opina

火山引擎 最新活动