HTTPS安全超文本传输协议

1、什么是HTTPS

简单的理解HTTPS就是使用SSL/TLS加密内容的、安全的HTTP协议css

HTTPS = HTTP + SSL/TLS html

 

2、对称加密与非对称加密

对称加密:加密和解密使用同一密钥。简单、快速、效率高jquery

非对称加密:加密解密密钥不一样,加密使用公钥、解密使用私钥,私钥只有一人保管,公钥能够有多人知道。安全性更强、但性能消耗比对称加密大ajax

SSL/TLS中同时使用了两种加密方式,创建链接时使用非对称加密传输产生密钥的随机数,连接创建后使用对称加密传输通讯内容api

 

3、SSL/TLS握手过程

 

SSL/TLS的握手过程能够用上图描述浏览器

一、客户端向服务端发送Client Hello,产生随机数random1,并说明客户端支持的加密方式和协议版本安全

二、服务端收到客户端请求后,返回Server Hello,同时携带随机数random2与数字证书,其中公钥在数字证书中一同发送,避免篡改。服务器

三、客户端收到服务端Server Hello后,验证数字证书有效,使用生成随机数random3,并使用公钥加密,发送给服务端session

四、服务端使用私钥解密获得random3dom

五、客户端和服务端根据约定好的加密方式,以及三个随机数生成对话密钥(session key),使用对话密钥加密内容开始双方会话

 

4、私钥的做用

当使用CDN服务器的时候出于安全考虑不能把密钥交给CDN服务器。

回顾整个握手连接过程,密钥只在解密第三个随机数时使用一次,所以,只须要把这个过程留在本身服务器就能够。CDN服务器把客户端加密的随机数发送给业务服务器,业务服务器将数据解密后传回给CDN服务,其余流程均交给CDN服务

具体流程以下图

 

5、HTTPS与HTTP不一样点

对比内容 HTTPS HTTP
是否付费 证书大多数需付费 无需
传输信息方式 SSL/TLS协议加密信息,更安全 明文传输信息
端口 443 80

 

6、不使用HTTPS有那些风险

一、窃听风险,第三方可能获取通讯内容

二、篡改风险,通讯内容可能被第三方篡改

三、冒充风险,第三方可能被冒充他人参与通讯

 

7、如何将HTTP站点转成HTTPS站点

 HTTPS 升级指南:http://www.ruanyifeng.com/blog/2016/08/migrate-from-http-to-https.html

 

8、升级HTTPS后须要注意的问题

注意在HTTPS访问的页面,在请求资源时也须要使用HTTPS,若是使用HTTP在IE中会出现不安全项目弹框

可使用协议相对URL解决这个问题

<img src="https://www.aaa.org/logo.png" alt="" />

<img src="//www.aaa.org/logo.png" alt="" /><!--协议相对URL-->

协议相对URL,如上面代码第二行,即省略URL协议声明的方式,使用了这种方式浏览器会使用页面访问相同的协议请求页面资源

协议相对URL可使用在HTML中的连接中,也可使用在css中。可是在IE6/7中link或@import资源会被下载两次,除此之外没有其余问题

使用场景举例

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.js"></script>
<link rel="stylesheet" href="//www.ludou.org/style.css" />
<a href="//www.ludou.org/">Ludou</a>
.logo { background: url(//www.ludou.org/logo.png); }

 

参考

图解SSL/TLS协议:http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html

与HTTP有什么区别?HTTPS的七个误解:https://www.admin5.com/article/20150523/600106.shtml

网站是否须要HTTPS加密:https://www.admin5.com/special/https/

相关文章
相关标签/搜索