具有SSL证书缓存的Service Worker

4
我们在Google Cloud服务器上托管了多个网站。最近,我们向服务器添加了一个更新的SSL证书;所有网站都加载了新证书,除了那个设置了service-worker的网站。似乎该网站仍在加载旧证书(目前仍有效-明天到期)。看起来这与缓存有关-清除浏览器缓存后,该网站也会加载新证书。当证书过期时,这会对客户造成问题吗?当浏览器(Chrome、Firefox等)在缓存中发现过期的证书时,它们会自动检查服务器是否有新证书,还是会显示SSL警告页面(如https://expired.badssl.com/)?我们有办法确保客户端/浏览器从服务器加载更新的证书吗?

我不确定为什么Guilermo的答案被接受了。他确实说Chrome在缓存清除之前不会下载新证书,但他没有回答主要问题:“如何确保证书过期时缓存被清除?”@Jee Mok,你有想到办法吗? - Dmitry Efimenko
@Dmitry 我没想出强制手动或脚本重新加载缓存的方法;不过,基于论坛上谷歌Chrome开发者的回复,Google Chrome不会在磁盘上重新验证SSL,这是测试用例(见下一条评论)。 - Jee Mok
  • 如果有人加载您的网站并且以前没有联系过它,他们将看到您的新证书。
  • 如果有人完全从磁盘缓存加载您的网站,则会看到旧证书,因为该证书用于缓存资源,与从磁盘缓存中使用的标头相同。
  • 如果有人加载您的网站,并且必须进行网络请求以重新验证在磁盘上缓存的资源,则他们将看到新证书。
- Jee Mok
@Dmitry,如果服务工作者的SSL过期了,它应该可以正常工作,并且会发出网络请求以重新验证资源并获取新的SSL。这就是为什么我接受了这个答案,除非有人有一种手动控制它的方法。 - Jee Mok
1个回答

6
谷歌浏览器不会重新验证磁盘上的证书,这是为了不破坏谷歌浏览器的离线功能。每当谷歌浏览器更新缓存时,它将获取新的证书,在此之前,不必担心旧证书的验证问题。
您可以参考Chromium论坛中的此帖子。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接