【发布时间】:2018-05-30 06:12:15
【问题描述】:
我们在 Google Cloud 服务器上托管了许多网站。
我们最近向服务器添加了更新的 SSL 证书;之后,我们所有的站点都加载了新证书,但设置了 service-worker 的站点除外。该站点似乎仍在加载旧证书(目前仍然有效 - 明天到期)。
看起来它与缓存有关 - 清除浏览器缓存后,还会为此站点加载新证书。
证书过期时对客户来说会是个问题吗?当浏览器(Chrome、Firefox 等)在缓存中找到过期证书时,它们会自动检查服务器是否有新证书,还是会显示 SSL 警告页面(如https://expired.badssl.com/)?
有没有一种方法可以确保客户端/浏览器从服务器加载更新的证书?
【问题讨论】:
-
我不确定为什么 guilermo 的回答被接受了。他确实说过 chrome 在缓存被破坏之前不会下载新证书,但他没有提供主要问题的答案:“如何确保在证书过期时缓存被破坏?” @Jee Mok,你找到办法了吗?
-
@Dmitry 我没有找到强制缓存手动或脚本重新加载的方法;然而,基于论坛的 Chrome 开发者回复说谷歌浏览器不会重新验证磁盘上的 SSL,这些是测试用例(下一条评论)
-
" - 如果有人加载了您的网站并且他们之前没有联系过它,他们将看到您的新证书。- 如果有人完全从磁盘缓存加载您的网站,他们将看到您的旧证书,因为那是用于缓存资源的证书,就像他们从磁盘缓存中看到使用的标头一样。 - 如果有人加载您的站点,并且它必须发出网络请求以重新验证缓存在磁盘上的资源,然后他们将看到新证书。"
-
@Dmitry 因此,如果服务工作者的 SSL 过期,它应该可以正常工作,并且它〜应该〜发出网络请求以重新验证资源并获取新的 SSL。这就是我接受答案的原因,除非有人有办法手动控制它
标签: ssl caching ssl-certificate browser-cache service-worker