lslqtz
2016-06-13 03:49:20 +08:00
给你举一个证书错误的例子吧。
http://233.dog/f_89032897.png
有一个解决方案可以解决,但是不可取。
即在 https 证书错误的情况下回落到 http ,但是 https 证书错误如为中间人攻击,那么回落到 http 还是会被攻击。
其实,目前大部分虚拟主机不支持 https ,但是大多数也开启了 443 端口。
同样,也有大量 CDN 不支持 https ,但是开启了 443 端口。
还有部分网站 http 和 https 是不同的,举个栗子,部分政府网站 http 是网站界面, https 是后台,这会导致一些问题。
再以及,如果每个用户访问时都去探测 443 端口会造成极大的额外负担,可以形成 DDoS 。即使缓存可以解决,但是仍然会出现负担增加的情况。
当 https 的成本足够低时,可以把主流浏览器直接输入后打开为 https 页面,同时对 http 报不安全。
实际上,这很不公平,因为一张 SHA1 证书可以导致 Chrome 报不安全(证书在 2016 年前过期则变灰),但是 http 却没有任何提示。
我认为,即使是 SHA1 的 https 连接,也比 http 安全。
这是一张被 Chrome 变灰的, 2016 年前过期的 SHA1 证书。
http://233.dog/f_93427429.png
上面有 V 友提到 HSTS Preload List ,当域名内置在浏览器后,访问 http 时会自动跳转(307)到 https 。
这是非常激进的做法,但是仍然会造成一些问题,举个栗子。
1 、域名数量多了,列表体积会不会过大。
2 、有什么好的方法在 HSTS Preload List 中删除域名,目前没听说过有人成功删除,这会导致以下问题。
[1 、降级到 http 时被强制 301 到 https 。]
[2 、由于 HSTS Preload List 中无法删除域名,意味着别人购买域名后必须使用 https ,这会降低域名的价值。]
举个栗子,这次的京东从 https 降级到 http ,据说是因为部分 CDN 不支持 https 。
要是京东曾申请进入 HSTS Preload List 列表,那么这次降级会导致大量用户无法访问京东首页。