chrome 升级 117后可能会导致你的网站无法访问

事情是这样的,团队的某个内网后台系统突然有一些页面报错无法访问,第一反应肯定是 F12,看看为啥不能访问,打开一看确实报错了,有3个文件请求失败,报 ERR_SSL_PROTOCOL_ERROR 错误,一般这个错误就是证书问题,检查证书之后发现证书没啥问题,也没有过期,然后赶紧问问其他同学是否能访问,一通操作之后最终定位出了可复现路径:

chrome桌面端 117 版本可复现,其他浏览器如火狐,safari 均可正常访问

于是开始谷歌、百度+AI一通搜,大概回答都是

  • 系统时间不正确
  • 浏览器缓存问题
  • 防火墙或防病毒软件
  • 证书无效
  • 禁用QUIC协议
  • 清除SSL状态
  • 不匹配的tls协议版本

万变不离其宗,有的看着就不靠谱,结果肯定是都不能解决我们本次遇到的问题。

那么还是从版本入手,既然是chrome的某个版本才出现的问题,肯定是这个版本更新了一些相关功能导致的,于是开始搜寻 chrome 版本更新日志。

找到最终更新日志的过程其实也不是那么容易,这里简单跟大家描述一下最后找到所用的路径:

这个就是最终的 chrome 每个版本的详细更新内容了!喜大普奔!

接下来看看日志里怎么说

打开网站,我们选择 117 版本,然后可以看到有很多更新项,等等,好像有个可疑的改动 Deprecate TLS SHA-1 server signatures

因为我们一开始就怀疑是证书相关的问题,那么这一项大概差不离就是我们要找的了。

这条更新的提供的关键信息就是:

  • Chrome 将删除对在 TLS 握手期间使用 SHA-1 进行服务器签名的签名算法的支持
  • SHA-1 可以通过临时 InsecureHashesInTLSHandshakesEnabled 企业策略暂时重新启用
  • 但是此策略将在 Chrome 123 中移除

赶紧去看一下我们网址的证书

查看证书可以点击网址上的小锁头或者 F12

破案啦!根证书签名算法用的 SHA-1,由于chrome在这个版本起不再支持该签名算法,所以使用该证书的网址在chrome 117 上都报错了。

先不着急同步到大群里,因为谷歌给了临时策略,先来试一下,我们访问 chrome://flags,搜索handshakes 或者 TLS,可以看到 Allow SHA-1 server signatures in *TLS*.这条配置,改为允许,然后重启

Chrome Flag 是实验性功能,其中大部分的 Flag 都是默认被禁用的。要启用这些功能,需要访问 chrome://flags

重启之后再重新打开网页就可以访问了。

但是这个只是一个临时策略,看官方意思是到 123 版本后会把这个策略给移除,所以这个方法治标不治本,而且也确实不安全,所以最好的做法还是通知运维同学升级证书。

总结

至此,该问题我们就顺利解决啦,把相关结论和解决方案同步到大群里后,收获了一波点赞,这里也分享给大家,避免浪费时间再去踩同样的坑。

后续我会持续关注 chrome 的更新动态,有较大影响和变动的也会第一时间在这里和大家分享,可以关注一波啦~

相关推荐
Nan_Shu_61415 分钟前
学习: Threejs (2)
前端·javascript·学习
G_G#23 分钟前
纯前端js插件实现同一浏览器控制只允许打开一个标签,处理session变更问题
前端·javascript·浏览器标签页通信·只允许一个标签页
@大迁世界39 分钟前
TypeScript 的本质并非类型,而是信任
开发语言·前端·javascript·typescript·ecmascript
GIS之路1 小时前
GDAL 实现矢量裁剪
前端·python·信息可视化
是一个Bug1 小时前
后端开发者视角的前端开发面试题清单(50道)
前端
Amumu121381 小时前
React面向组件编程
开发语言·前端·javascript
持续升级打怪中1 小时前
Vue3 中虚拟滚动与分页加载的实现原理与实践
前端·性能优化
GIS之路1 小时前
GDAL 实现矢量合并
前端
hxjhnct1 小时前
React useContext的缺陷
前端·react.js·前端框架
冰暮流星1 小时前
javascript逻辑运算符
开发语言·javascript·ecmascript