安装与部署
SSL 证书换好了,浏览器为什么还是显示旧的?
宝塔里已经换了证书,网站上的到期时间却没变。常见原因包括网站配置未生效、CDN 仍在用旧证书,以及多台服务器没有全部更新。
新证书已经下载,也在面板里保存了,浏览器却还是显示旧的到期时间。遇到这种情况,先看证书装在了哪里。网站用了宝塔、CDN 或多台服务器时,只更新其中一处,就可能出现这个现象。
先记下浏览器实际打开的域名
打开浏览器的站点信息,查看证书的到期时间和序列号。同时留意地址栏:输入 example.com 后,可能跳到了 www.example.com;登录页面又可能使用另一个子域名。要检查的是最终打开的那个域名。
再看准备安装的新证书。不要只比较文件名或颁发机构,同一家机构签发的新旧证书,这些信息可能相同。到期时间不同已经能提供线索;需要准确判断是不是同一张时,可以比较序列号或 SHA-256 指纹。
宝塔里改的是网站证书,还是面板证书?
进入宝塔左侧的“网站”,点击对应站点,再打开“SSL”。检查站点绑定的域名是否包含正在访问的域名,然后查看“当前证书”。
安装已有证书时,将对应私钥填入 KEY,证书内容填入 PEM,按面板提示保存。如果提示私钥不匹配、格式错误或保存失败,应先解决错误,不能因为文本框里已经出现新内容,就认为更换成功。证书文件和私钥的准备方法见下载与安装。
这里还容易混淆两个位置:左侧“SSL”里的证书管理用于存放和管理证书,仅上传文件后还要部署到网站;“面板 SSL”用于宝塔登录页面,更换它不会修改网站证书。保存后重新进入对应网站的 SSL 页面,检查显示的证书是否确实更新。
如果你直接改过 Nginx 配置,还要确认配置检查通过、服务已成功重新加载。重载报错时,原来的服务可能仍在使用旧配置。
网站接了 CDN,还要检查云控制台
使用阿里云 CDN、DCDN 或 ESA 时,访客通常先连接加速节点。浏览器看到的是加速服务配置的证书,宝塔里的证书则供源站使用。源站更换后,加速服务不会因此自动换成同一张证书。
到云控制台打开实际使用的加速域名或 ESA 站点,查看当前绑定的 HTTPS 证书。证书库里已经有新证书,不等于该域名已经选用了它。两边使用不同证书也不一定有问题:只要各自适用于对应域名且仍有效,就可以正常工作;要替换即将到期的旧证书,应在实际使用它的地方更新。
如果通过 NestSSL 推送,在“证书部署 → 关联与推送”保存关联后,还需点击“立即推送”才会处理当前证书。仅勾选“自动”用于以后签发的新版本。阿里云 CAS、腾讯云 SSL 目标只上传证书库,后续仍要在云控制台绑定到业务产品,详见关联与推送和部署总览。
有人看到新证,有人看到旧证
先检查域名解析中的 A、AAAA 记录。A 对应 IPv4,AAAA 对应 IPv6;如果两者指向不同服务器,可能只更新了其中一台。使用多台源站或负载均衡时,也要检查是否有服务器或 HTTPS 监听器遗漏。
可以分别用手机移动网络和电脑网络访问,记下出现问题的域名和时间,再去检查对应服务器。只有一台服务器且确认已经换好时,再尝试关闭浏览器后重新打开,或换浏览器查看。清理网页缓存不能代替服务器换证。
需要进一步确认时,再用命令查询
下面的命令可查看域名当前返回的证书,请替换示例域名:
openssl s_client -connect www.example.com:443 -servername www.example.com </dev/null |
openssl x509 -noout -dates -serial -fingerprint -sha256
本地文件可以这样查看,文件名按实际修改:
openssl x509 -in new-certificate.crt -noout -dates -serial -fingerprint -sha256
同一 IP 上放了多个网站时,-servername 会告诉服务器要访问哪个域名,这就是 SNI。排查某台服务器时,可将 -connect 中的域名改成它的 IP,仍保留 -servername 后的域名;不要用直接访问 IP 得到的默认站点证书来判断网站是否换证成功。若命令报连接错误,应先解决连接问题,不能把空结果当作证书一致。