问题场景:
有个网站,在谷歌浏览器版本80.0.3987.100(正式版本)(64 位) 访问地址如(https协议访问,这里只是个例子):https://xxx.axxx.bxxx
,开始页面被浏览器拦截提示不是私人连接,点击高级,继续前往,可以正常访问。接着使用网站上的某个上传图片的功能,报错(意料之外),从这开始,所有的请求全部都报错,控制台输出 net::ERR_CERT_AUTHORITY_INVALID
。(如果不执行上传图片操作的话,页面所有的请求都能正常工作)。
升级谷歌浏览器版本为 80.0.3987.149(正式版本)(64 位) 访问同样的地址没有出现私人连接的提示,同样方式操作,上传图片功能正常,其他请求也没报错,控制台也没有 net::ERR_CERT_AUTHORITY_INVALID
。
对比2个浏览器对接口的下发请求内容,发现请求头的 cookie
没有携带 ???
重置过浏览器的设置,发现问题还是存在,后来在浏览器启动指令上添加 --ignore-certificate-errors
,此时能正常使用。访问页面的时候,浏览器也不再拦截报错。
是否这个两个浏览器版本间对证书的检测要求不同,有报告链接么?
chrome浏览器bug,该问题已被修复,相关问题单见:
浏览器上传图片前需从客服端选中文件并读取,可在devtool中看到blob相关的请求,而blob的读取操作在80版本中有过相关变更,最终导致该bug的出现。