谷歌浏览器偶发“失败 - 证书有误”报错,SSL层 Certificate Unknown (46)错误

问题描述:
谷歌浏览器
<a>标签下载静态文件 偶发出现  失败 - 证书有误情况。   SSL层 Certificate Unknown (46)错误。

环境:

https协议,nginx/1.15.12,谷歌浏览器版本73.0.3683.86
火狐验证,没有这个问题。

解决过程:

出现报错后,点击谷歌浏览器报错详情。跳转下面url。
https://support.google.com/chrome/?p=ui_download_errors&hl=zh-CN&ctx=35
里面只有  下载被阻止、网络故障,这类的错误。没有提到证书有误的情况。没有得到帮助。

查看服务器nginx配置,下载文件,nginx直接返回静态文件
 location ~*^/(xxx)/(.*)\.(xlsx|txt)$ {
                gzip on;
                gzip_min_length 1k;
                gzip_buffers 4 16k;
                gzip_comp_level 2;
                gzip_types application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
                gzip_vary off;
                gzip_disable "MSIE [1-6]\.";         
                root /opt/xxx/xxxx;
    }


查看了nginx日志,浏览器出现偶发报错时,请求没进来,没有报错,没有请求收到的日志。成功下载文件的时候,会正常出现请求日志。


发现访问站点其他url之后,证书有误报错消失。
下载文件用的是  html超链接。(vue环境)
<a :href="item.template.filePath" :download="item.template.fileName" class="link" target="_blank">

开始抓包定位问题。抓包看到,通过点击超链接
在三次握手后,ssl层报错
Level: Fatal (2)  
Description: Certificate Unknown (46)
然后连接就断开了。

问题分析

这个报错是登录,或者点击链接一段时间后出现。也就是谷歌浏览器在页面访问后台一段时间后,在tpc/ip握手后,一段时间后会挥手断开。
问题应该是出在 ssl没有申请 安全的证书。正常访问页面,可以在页面点击允许建立不安全的ssl连接。在这次tcp握手后只要不断开,可以正常下载超链接的文件。
但是长时间不操作,tcp握手断开后,再进行文件下载,需要重新建立ssl连接。
文件下载,建立ssl连接的时候,用谷歌浏览器,会校验证书是否在安全机构登记过。不是安全证书就直接断开连接了。
然而火狐下载不会出现这个问题。所以应该是谷歌浏览器对<a>标签ssl证书校验比较严格的问题。


解决方法

--解决方法一

解决方法是使用了js方式来跳转。  window.open("下载资源的相对路径")。
但是这样,无法使用自定义的名字。超链接<a>属性在download属性中可以设置下载后修改的名字。。

--解决方法二
在谷歌浏览器 启动的快捷方式中 目标 加上  -ignore-certificate-errors 

需要添加参数 --ignore-certificate-errors
如果谷歌浏览器安装路径带有空格, 右键快捷方式,进入属性, 在目标栏 如下加入参数
"C:\Program Files\Google Chrome\chrome.exe" --ignore-certificate-errors
如果路径没有空格,直接在后方添加
--ignore-certificate-errors

因为站点,没有申请签发认证的SSL证书,是自己给自己颁发的,所以在SSL认证的时候出现失败。所以第三方客户也认同第二种修改方式。不然需要花钱申请签发认证的SSL证书。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值