一直以来明月都很困惑上海云盾 CDN 上的站点一旦 SSL 证书过期了,在更新上传新续期的证书后要很久的时间在前端浏览器里访问都是提示证书超期错误,需要至少一周以上的时间才能恢复正常,很明显这个问题出现是很不科学的。
这不最近因为忙工作的事儿又忘了给上海云盾 CDN 上的站点更新 SSL 证书了,在好友的提醒下赶紧去上海云盾后台进行了 SSL 证书的更新(这里要吐槽一下上海云盾 CDN 不支持 Let's Encrypt 证书自动续期真的是太 low 了,又拍云的支持 Let's Encrypt 证书自动需求就非常的给力,可惜不是免费的,真是“鱼与熊掌不可兼得”呀!),没有想到又碰到客户端任何浏览器访问都是提示“证书已经过期”的错误提示!并且无论如何更新 CDN 缓存和重启 Nginx 都是问题依旧。
刚开始明月还以为是宽带运营商缓存更新滞后造成的,没有想到在等了一整天后问题依旧如此,好烧脑呀!在排查了所有的可能后只能确定问题是出在 CDN 层面了,说白了就是 CDN 层面没有及时的更新 CDN 节点上的 SSL 证书标记造成前端的访问依旧是老 SSL 证书的信息,可 CDN 的缓存已经被我刷新多次了呀!突然看到上海云盾 CDN 后台——WEB 安全加速——控制台——性能优化里勾选的“忽略请求头中 Cache-Control 和 Pragma”(忽略本请求头在有缓存的情况下使用缓存响应,而不向源服务器请求)这项以及没有勾选的“遵循源站响应头部缓存规则”(客户端缓存时间遵循源站设置的生效时长)这项才恍然大悟问题原来出在这里呀!
终于解决了这个困扰我好久的一个顽疾了,原来问题就出在遵循源站响应头部缓存规则这个上了!╯□╰