You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

IIS绑定新RapidSSL证书后仍使用旧Let's Encrypt证书的排查求助

IIS绑定新RapidSSL证书后仍使用旧Let's Encrypt证书的排查求助

大家好,我遇到了一个非常棘手的问题,想请各位帮忙排查:

我之前在IIS网站上通过Win-Acme生成并部署了Let's Encrypt证书,现在需要换成由RapidSSL签发的新证书。我已经拿到新证书,成功安装到IIS中,并且在站点的绑定设置里选中了这个新证书,但IIS却始终在使用旧的Let's Encrypt证书,完全无视新证书的存在。

我已经尝试过以下方法,但都没有解决问题:

  • 从IIS和证书存储中彻底删除了旧证书
  • 重启了目标IIS站点
  • 重启了所有相关的应用程序池
  • 将相关应用池的闲置超时设置为1分钟,等待它们自动终止(这是参考某个GitHub问题的建议)
  • 重启了整个Windows服务器
  • 使用命令 netsh http delete sslcert 手动删除证书,命令输出显示删除成功,之后重新在IIS绑定中添加了新证书
  • 删除了Win-Acme的自动续期计划任务

即便做了这么多操作,IIS似乎还是缓存着旧证书,返回给请求的依旧是它。

有几个值得注意的点:

  • 旧证书目前仍在有效期内,我之前替换过期证书时从来没有遇到过这类问题
  • 服务器没有配置负载均衡或反向代理
  • 我一直使用OpenSSL CLI工具来检查证书,排除了浏览器缓存的可能性

我怀疑问题可能出在*Server Name Indication(SNI)*上?做了一些研究后,我看到相关的说明提到这类证书不生效的问题可能源于SNI配置。我已经验证过所有站点都绑定在“全部未分配”IP地址上,并且所有SSL绑定都启用了SNI——不管是在IIS图形界面中查看,还是通过netsh http show sslcert命令查看主机名:端口的配置,结果都是正确的。另外,我特意使用带-servername参数的OpenSSL命令(用来针对SNI场景做检查)测试,返回的依旧是旧证书:

openssl s_client -showcerts -connect my.example.com:443 -servername my.example.com

不过有个奇怪的现象:当我用netsh查看证书信息后,重新添加绑定,此时能看到正确的新证书。这和我看到的SNI相关问题描述很匹配,但那些帖子里给出的解决方法对我都不起作用。

我现在真的有点摸不着头绪了,有没有大佬能给我一些下一步排查的思路?非常感谢!

备注:内容来源于stack exchange,提问作者prof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 12:33:00