certbot 中的 SSL 证书主机名不匹配,即使两个名称都有证书

SSL Certificate host name mismatch in certbot even though both names have certificates

我一直在想如何修复这个 SSL 错误 --

我的 SSL 证书在 Chrome 上工作正常,但在 Safari 和 Firefox 中,如果我转到 www.domain.com 而不是 domain.com,我会收到主机名不匹配的错误

我已经使用 Certbot 为我的 domain.com 和 www.domain.com

域设置了 SSL 证书

当我检查 nginx 以确保证书存在时,我 运行 sudo certbot --nginx,然后 select 当被询问 Which names would you like to activate https for? 时,两个域都存在domain.com 和 www.domain.com,我得到结果 "You have an existing certificate that has exactly the same domains or certificate name you requested and isn't close to expiry" 并询问我是否要尝试重新安装或更新并替换证书。

我不确定我还能采取哪些其他步骤,因为上次我安装 certbot 时我只是按照说明对 www 和非 www 地址执行了上述操作,它在 www 和非 www 地址上都有效-万维网!

有人对下一步做什么有什么建议吗?

TLDR:

domain.com:在 firefox/safari 中工作正常,nginx 说证书存在

www.domain.com: firefox/safari 中的主机名不匹配,nginx 说证书存在

为什么?!

您可以通过外部服务检查这两个域,例如这里:

https://www.sslshopper.com/ssl-checker.html

它将告诉您证书是否已正确安装在两者上。

您还应该在 Chrome 中打开一个新选项卡,打开开发者工具,记录网络请求,然后转到 www.domain.com 看看重定向 Chrome 做了什么以及 URL 的它实际上提出请求。也许它有一些自动 URL 更改基于先前成功解决的 URL。

弄乱了一段时间后,尝试使用@xyz 的 ssl 检查器,我发现了以下内容:

两个证书均有效

当我使用 certbot 重新安装证书时,最新的证书将开始工作,而前一个将停止工作

原来我需要将另一个 url 作为子域添加到现有证书并修复它!

我用过:

sudo certbot -d domain.com -d www.domain.com

成功了