IIS中强制更新中间证书的简便方法咨询
IIS中强制更新中间证书的简便方法咨询
嘿,我太懂你遇到的这个糟心状况了——IIS在证书链处理上有时候真的有点“认死理”,明明新的中间证书已经装好了,它却还揪着过期的旧证书不放,非得折腾到你删重建绑定才行。其实有几个更省心的办法,不用大费周章重新创建绑定:
无需删绑,重新关联证书触发链刷新
打开IIS管理器,找到目标网站的HTTPS绑定,点击「编辑」。先在SSL证书下拉框里临时选一个其他证书(哪怕是个自签的临时证书,只要能选就行),保存设置;接着再回到这个绑定的编辑界面,重新选回你的网站正式证书并保存。这一步会强制IIS重新读取证书链信息,自动拾取你已经安装到机器中间证书存储里的新证书,而不是依赖之前缓存的旧过期链。用命令强制刷新证书链缓存
以管理员权限打开命令提示符,运行这条命令:certutil -setreg chain\ChainCacheResyncFiletime @now
这个命令会强制Windows证书链引擎立刻刷新缓存,之后再重启一下IIS服务(运行iisreset),IIS就会重新查找并使用有效的中间证书了,全程不用碰网站绑定。确认旧证书彻底清理干净
虽然你已经删了旧的过期中间证书,但可以再检查一下「本地计算机」→「中间证书颁发机构」存储,确保没有残留的旧证书副本。有时候可能会有重复导入的证书没删干净,也会干扰链的生成。
至于为什么单纯安装新证书没用?其实是因为IIS和Windows的Schannel组件会缓存证书链的构建结果,哪怕你更新了中间证书,它还是会优先用缓存里的旧链,所以必须通过上面这些操作触发它重新生成有效的证书链。
备注:内容来源于stack exchange,提问作者Seva Alekseyev




