Ubuntu/Nginx服务器提供不存在的SSL证书问题求助
Ubuntu/Nginx服务器提供不存在的SSL证书问题求助
各位好,我遇到了一个特别诡异的SSL证书问题,想请大家帮忙分析解惑:
背景情况
我之前在一台Ubuntu 22.04服务器上用Nginx配置了4个网站。后来因为数据库连接出现技术故障,不得不把这些网站迁移到新服务器——其中3个网站迁到了一台新服务器,第4个网站单独迁到了另一台独立的服务器上。
迁移完成后,我给所有4个网站都申请了新的Let's Encrypt证书。
问题现象
现在单独那台服务器上的第4个网站,访问时浏览器(Safari和Chrome/Mac)都会提示“此网站不安全”。查看证书详情发现,浏览器显示的居然是另一台服务器上其中一个网站的证书,域名完全不一样!
我已经尝试过的操作
- 登录旧服务器,执行
certbot delete命令删除了所有证书 - 登录不托管这个问题网站的那台新服务器,删除了浏览器错误提示里显示的那个错误证书
但做完这些后,浏览器依然在显示那个已经被删除的错误证书。
排查时发现的奇怪现象
- 在Mac终端执行
curl -vvI https://example.com,有时候能拿到正确的新证书,但重复执行几次后又会拿到错误的证书 - 执行命令:
echo | openssl s_client -showcerts -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -inform pem -noout -text,返回的始终是另一台服务器的证书 - 我让一位距离我大概15000公里的朋友帮忙测试,他访问时也拿到了那个错误的证书
我的困惑
我一直以为SSL证书是服务器在每次请求时实时返回的,不会被缓存,但现在这个情况完全不符合我的认知:
- 那个错误证书从一开始就属于另一台服务器,域名也和问题网站不匹配
- 它已经被我从对应的服务器上删除了
- 问题网站的新证书从迁移完成后就存在,我甚至还重新安装过一次
实在搞不懂为什么还会出现这种情况,求各位大佬指点!
备注:内容来源于stack exchange,提问作者Andrew Swift
相关产品推荐
相关产品推荐

