您的连接不是私密连接没有任然继续按钮
转自https://segmentfault.com/a/1190000040074507?utm_source=sf-similar-article
换了个电脑,chrome访问网站又遇到了“您的连接不是私密连接”的问题。之前遇到过几次,这次决定记录下来,免得下次遇到又是一顿搜索。
您的连接不是私密连接
升级chrome到最新版,无法打开自签名证书的网站了。如公司的堡垒机强制走https,但用的是自己签发的证书,这就悲剧了。
https://blj.jdb-dev.com/admin...
解决办法有2种:
在当前页面输入:
thisisunsafe
,页面自动恢复。(这种方法可能会失效,这是chrome开发人员留的后门,以前是badidea,现在改为了thisisunsafe)还一种办法是在console输入:
sendCommand(SecurityInterstitialCommandId.CMD_PROCEED)
详见这篇文章,解释的比较清楚:https://www.jianshu.com/p/7a7...
在现实生活中,怎么会遇到这种情况?
一个是在公司里,使用了公司的自签名证书,搞个https的访问地址。不过既然是内部网站,不走https岂不更简单。
不过有例外情况,比如为了测试一些东西,网站必须走https。另一种情况是,用charles之类的软件代理了浏览器。可以看到被代理后,访问任何网站使用了charles颁发的证书,看下百度:而且地址栏被标为不安全了。实际上charles在这里充当了中间人(即MITM)。
这种情况除了用上面的办法解决,还有一种方式是让系统信任charles证书。mac系统下,在钥匙串里找到charles证书,设置为‘始终信任’,改下这里:
使用 Chrome 访问某些网站时可能会遇到上面的情况。
点击 高级
按钮,有些场景下会有继续访问该网站的链接,点击后即可继续访问;但有些时候会出现如下界面,无法继续访问:
安全提示
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
除非你知道自己要访问的网站里面都包含什么,也清楚进去之后会产生什么后果,否则请立刻关闭此页面。
如何绕过
当出现如上图所示情况时,可在此页面中(点击页面空白处),录入 thisisunsafe
,过程中不会有任何反馈,输入完毕,页面即可跳过 Chrome 的警告页,访问到网站页面。
怎么不好用
因为这是一个危险的行为,随时都有可能被废弃掉。
此行为包含在当前 Chromium master 分支的 interstitial_large.js 文件中:
JAVASCRIPT1/**2 * This allows errors to be skippped by typing a secret phrase into the page.3 * @param {string} e The key that was just pressed.4 */5function handleKeypress(e) {6 // HTTPS errors are serious and should not be ignored. For testing purposes,7 // other approaches are both safer and have fewer side-effects.8 // See https://goo.gl/ZcZixP for more details.9 const BYPASS_SEQUENCE = window.atob('dGhpc2lzdW5zYWZl');10 if (BYPASS_SEQUENCE.charCodeAt(keyPressState) === e.keyCode) {11 keyPressState++;12 if (keyPressState === BYPASS_SEQUENCE.length) {13 sendCommand(SecurityInterstitialCommandId.CMD_PROCEED);14 keyPressState = 0;15 }16 } else {17 keyPressState = 0;18 }19}
BYPASS_SEQUENCE
即注释中提到的 secret phrase
,从 console 中直接执行 window.atob('dGhpc2lzdW5zYWZl')
即可看到 Base64 解码后的明文:
JAVASCRIPT1> window.atob('dGhpc2lzdW5zYWZl')2< "thisisunsafe"
从 Chromium 的提交记录中,我们也可以看到开发人员对此方式被滥用而感到的担忧:
2014 年这个 BYPASS_SEQUENCE
第一次被 提交 时:
JAVASCRIPT1var BYPASS_SEQUENCE = 'danger';
2015 年专门针对此关键字进行了一次修改 Change the interstitial bypass keyword:
DIFF1- var BYPASS_SEQUENCE = 'danger';2+ var BYPASS_SEQUENCE = 'badidea';
2018 年 1 月 3 日 Change the interstitial bypass keyword:
DIFF1- var BYPASS_SEQUENCE = 'badidea';2+ var BYPASS_SEQUENCE = 'thisisnotsafe';
并在提交说明中描述了这么做的意义:
TEXT1The security interstitial bypass keyword hasn't changed in two years and2awareness of the bypass has been increased in blogs and social media.3Rotate the keyword to help prevent misuse.
在 8 天之后再次 调整 此部分代码,将这个 keyword 进行了 Base64 编码以增加干扰:
DIFF1- var BYPASS_SEQUENCE = 'thisisnotsafe';2+ // HTTPS errors are serious and should not be ignored. For testing purposes,3+ // other approaches are both safer and have fewer side-effects.4+ // See https://goo.gl/ZcZixP for more details.5+ var BYPASS_SEQUENCE = window.atob('dGhpc2lzdW5zYWZl');
随着时间的流逝,再次修改这个关键字也是很有可能的,所以当你看到这段文字时,上面的方法很有可能已经失效了。
如果你有不得已的苦衷,一定要绕过这个安全提示,可以尝试在安全提示页面,打开 console 直接输入:
JAVASCRIPT1> sendCommand(SecurityInterstitialCommandId.CMD_PROCEED)
如何恢复
通过上述方式绕过安全提示之后,以后再次访问此网站时即可直接访问了。如果想恢复安全提示界面,可点击地址栏前面的 不安全
图标,并点击 重新启用警告功能
,如下图: