自签名证书_一个自签名证书引发的血案

 一起来探索宇宙的奥秘

 To explore universe  

打开一切科学的钥匙都毫无异议地是问号,我们大部分的伟大发现都应当归功于如何?而生活的智慧大概就在于逢事都问个为什么?

——巴尔扎克

b054116054fe62e10e0213a37ceea6c8.png a8eddaa82febfe6c0400b5424d657b2c.png

这段时间因为chrome浏览器安全策略的升级,导致了我们的一个网站无法正常访问。具体来说chrome浏览器现在对https协议使用TLS1 TLS1.1协议会报警。

Chrome 72不再支持TLS 1.0和TLS 1.1,这意味着当用户访问遗留有TLS 1.0或1.1证书的HTTPS站点时,Chrome会在开发人员控制台显示错误,但不会阻止用户访问站点。从Chrome 81开始,将会阻止用户访问。

因此,我们也跟着升级了nginx配置。这里有个小问题需要注意,比较老版本的openssl对TLS1.2支持不友好,因此编译的时候最好用1.1+版本。

然而,升级之后我们的网站偶尔会报上图中的错误。

这就有意思了,从网站的协议安全方面来说,要么是安全的,要么是不安全的,怎么会一会安全,一会不安全呢?

129b6e171cd74927f50b4c41bbd638e8.gif aab808c3892e71a025755d3c515e1707.png 129b6e171cd74927f50b4c41bbd638e8.gif

基于报错——“您与此网站间建立的浏览器不安全”,我首先想到会不会是nginx关于https协议的配置是不是有问题。我仔细查看了nginx错误日志,结果毫无头绪。之后我又把nginx的配置都核对了一遍。主要的指令如下:

ssl_protocols  

ssl_ciphers  

ssl_prefer_server_ciphers   

发现都无法解决问题。那么问题在哪里呢?我陷入了困惑。

129b6e171cd74927f50b4c41bbd638e8.gif f9afb083ed0400ae3aca086215490c2f.png 129b6e171cd74927f50b4c41bbd638e8.gif

突然灵光乍现,去查了一下开发者工具的安全选项。看到如下提示,

This page is not secure (broken HTTPS).

Resources - active content with certificate errors

You have recently allowed content loaded with certificate errors (such as scripts or iframes) to run on this site.

这就很明显了。网站中有个iframe的连接不安全。因为这个iframe使用的域名中是自签名的证书。将这个自签名证书的根证书导入受信任的证书后解决问题。

回到第一节中提到的问题:

从网站的协议安全方面来说,要么是安全的,要么是不安全的,怎么会一会安全,一会不安全呢?

通过分析我发现,我们网页中嵌入的自签名的链接的iframe,正常情况下,是不会正常加载的。通过开发者工具,网络选项发现,status字段具体报错为:

(failed)

net::ERR_CERT_AUTHORITY_INVALID

只有当我们在浏览器中强制iframe的链接打开后,再次刷新整个页面,iframe里的内容才会被加载。因此才会出现当我们使用过这个iframe后,网站的地址栏会提示不安全的情况。

a6756b7623b3b88554db79a63b41e09d.png 129b6e171cd74927f50b4c41bbd638e8.gif 

一路同频

公众号 : 大水牛亚洲研究院

一起寻找生命中的光.....

2df110b2b1cf2aa83f9b5056749b63fb.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值