HTTPS全面普及的时代来临,SSL证书刻不容缓
浏览器地址栏里的 HTTP 可能将成为永远的过去时,取而代之的是更安全的 HTTPS。
首先,HTTPS 是什么?
HTTPS 是 Http Over SSL,简单来说就是 HTTP 的安全版本,在 HTTP 的基础上通过加密传输和身份认证保证了传输过程中的安全性。我们通常访问的网站大部分都是 HTTP 的,最简单的辨别方法可以看看网址是以 http://开头还是 https://开头。
HTTPS 在国内的大型站点目前只用在部分账户的登陆和支付等环节。百度是国内第一个全站 HTTPS 的大型站点,原因是其用户多,流量大。而能够上线 HTTPS 也会打消疑虑,使用户更加放心,对于国内其他站点是很好的示范,同时也在加速国内互联网 HTTPS 的进程。
启用 HTTPS 协议的根本原因?
随着百度、京东等大公司纷纷用起了 HTTPS,其根本原因又是什么。使用 HTTPS 成本的下降特别是计算成本的下降是 2015 年 HTTPS 爆发的主要原因。但网站开始做整站迁移至 HTTPS 的根本原因却在于过多用户投诉网站上出现影响浏览体验的大面积广告,是指原本的网页被放置到一个 iframe 里,并注入了 Flash 广告。查证浏览器地址栏还是正确的域名,没有被跳转。这只能说明是运营商劫持导致域名返回的内容不是来自网站的页面,而是被处理过的页面。这样可能带来的风险包括:跨域攻击、键盘记录、HTTPS 证书伪造等,比一般钓鱼网站更危险。
甚至一些用户访问网站时遭遇到 DNS 劫持也就是俗称的 DNS 钓鱼攻击,劫持 DNS 服务器后,通过某些手段取得某域名的解析记录控制权,进而修改此域名的解析结果,导致对特定的网络不能反应或访问的是假网址。为了防止这种劫持,各大互联网公司只好选择 HTTPS,进行数据加密而防止数据被篡改。
什么是 SSL?
SSL 是 SecuritySocketLayer 的缩写,技术上称为安全套接字,可以简称为加密通讯协议,使用 SSL 可以对通讯内容进行高强度的加密,以防止黑客监听您的通讯内容甚至是用户密码。
谷歌对 SSL 加密的描述
谷歌:与不加密的网络连接相比,使用 SSL 技术可提供更高的隐私性和安全性。它可降低信息被第三方拦截或滥用的风险。许多网站访问者在得知自己正在使用 SSL 连接后会更愿意提供付款信息以及其他个人信息。
实际上,谷歌对 SSL 的支持是显而易见的。就按照远方的海自己的例子,加上了 SSL 之后,谷歌的访问数目陡然上升了不少。如果你的网站主要是面对谷歌和海外用户,那么绝对不需要犹豫了,SSL 是你的归宿!
而且 SSL 会保障网站的安全。比如,网站很多关键词出现敏感词,没有 SSL 的网站估计就难逃其咎了。之前 V2EX 因为敏感词被封,SSL 端口依然还是可以访问。这个例子就证明了 SSL 的好处。
至于说百度对 SSL,我认为百度这方面主要还是表现在“口头”上的,就照沈唁目前的体验,百度对 SSL 站点的收录和权重分配并没有“口头”上说的那么好,所以大家不要相信 SSL 可以提升收录速度、收录量、权重这些,做好“内容增益”才是当前主要工作。
一些对 SSL 错误的看法
客观的说 SSL 是会影响部分加载速度,但是绝对不是让你的网站一下就拖慢了。除非你是洁癖的“处女座”。
看法 1:SSL 会拖慢访问速度吗?
真相 1:SSL 实际上会比普通的 HTTP80 端口的访问多了一次 HTTPS 握手的时间(SSLHandshakeTime),这个握手时间其实相对于网页加载时间是很缓慢的。网页加载的时候,HTTP 需要 3 次 TCP 握手链接;而 HTTPS 则需要 12 次握手链接,较之 HTTP 多了 9 次。所以在建立链接的时候,多出了一些 HTTPS 加密解密的时间。实际上这个时间基本在 0.2 秒之内,你说算不算是拖慢速度呢?
看法 2:SSL 占服务器资源吗?
真相 2:我们用数据说话。只有足够大的流量和数据才具有可靠的真实性。那么 Gmail 的例子可以说是全球范围内,最有参考价值的例子之一了。
2010 年 1 月 Gmail 切换到完全使用 https,前端处理 SSL 机器的 CPU 负荷增加不超过 1%,每个连接的内存消耗少于 20KB,网络流量增加少于 2%。由于 Gmail 应该是使用 N 台服务器分布式处理,所以 CPU 负荷的数据并不具有太多的参考意义,每个连接内存消耗和网络流量数据有参考意义。
那么 SSL 既然这么的好,为啥当今互联网上的普及率并不是很高呢?或者说就国内目前的互联网环境来说 SSL 好像并不是网站“标配”,或许下面的这些原因很能说明这个问题:
- SSL 证书需要钱。功能越强大的证书费用越高。个人网站、小网站没有必要一般不会用。
- SSL 证书通常需要绑定 IP,不能在同一 IP 上绑定多个域名。IPv4 资源不可能支撑这个消耗。(SSL 有扩展可以部分解决这个问题,但是比较麻烦,而且要求浏览器、操作系统支持。WindowsXP 就不支持这个扩展,考虑到 XP 的装机量,这个特性几乎没用。)
- HTTPS 连接缓存不如 HTTP 高效,大流量网站如非必要也不会采用。流量成本太高。
- HTTPS 连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本。如果全部采用 HTTPS,基于大部分计算资源闲置的假设的 VPS 的平均成本会上去。
- HTTPS 协议握手阶段比较费时,对网站的相应速度有负面影响。如非必要,没有理由牺牲用户体验。
- 最关键的,SSL 证书的信用链体系并不安全。特别是在某些国家(咳咳,你们懂的)可以控制 CA 根证书的情况下,中间人攻击一样可行。
另外,在客户端被植入无数后门、木马的状况下,HTTPS 连接的作用非常有限。这也许是支付宝不可能像 PayPal 那么易用的原因之一。
沈唁志博客在刚开始搭建以后就使用 HTTPS 访问模式,那会还是新站,没有太多文章图片替换,当时文章是博客开启 HTTPS,最近这两天都在改引导页,没太注意其他的东西,改了一个满意样式以后才去关注地址的问题,没加跳转,也没加 HTTPS,于是就开始操作这个渣渣引导页的 HTTPS。因为引导页用的虚拟主机,想起来引导页这个网址没有申请证书,腾讯云的域名,于是就去了腾讯云后台申请证书,直接解析的 DNS,所以基本是秒过的,下载证书,使用 FTP 上传到网站根目录,虚拟主机管理页配置就好了,301 重定向,3w 跳到不带 3w,80 端口使用.htaccess 跳转到 443 端口,也没有太大的麻烦,引导页本来就没有太多的东西。现在基本上都是 HTTPS 访问,紧跟潮流吧。所说的 HTTPS 影响速度等等可以忽略不计,觉得 HTTPS 小绿锁逼格高,重要的是安心就行,哈哈哈。
沈唁志|一个PHPer的成长之路!
原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:HTTPS全面普及的时代来临,SSL证书刻不容缓
- Foundation:高级的响应式前端框架
- [信息安全] 2.密码工具箱(续)
- 脑科学发展的助推器
- BFIThumb:WordPress 中替代TimThumb 进行裁图的选择
- jquery 操作ajax 相关方法
- SQL SERVER 2008 Hierarchyid数据类型
- Html5 学习利器 Web Standards Update for Microsoft Visual Studio 2010 SP1
- MongoDB 客户端 MongoVue
- HttpClient介绍
- 10个使用 Foundation 框架开发的WordPress 主题推荐
- jQuery 效果使用
- 几款更换WordPress 后台UI 的插件推荐
- 入门:构建简单的Web API
- WordPress 编辑器快捷键——让写作来得更方便些吧!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法