https基本概述【理论知识】
1、HTTPS基本概述
1.1、为什么要使用HTTPS?
因为HTTP采用的是明文传输数据,那么在传输(账号密码、交易信息、等敏感数据)时不安全。容易遭到篡改,
如果使用HTTPS协议,数据在传输过程中是加密的,能够有效避免网站传输时信息泄露。
1.2、什么是HTTPS?
HTTPS安全的超文本传输协议,我们现在大部分站点都是通过HTTPS来实现站点数据安全。早期网景公司设计了SSL(Secure Socket Layer)安全套接层协议,主要用于对HTTP协议传输的数据进行加密。
那如何将站点变成安全的HTTPS站点呢?我们需要了解SSL(Secure Socket Layer)协议。 而现在很多时候我们在使用TLS(Transport Layer Security)传输层安全协议。HTTP Over TLS
1.3、SSL/TLS关系图
1.4、TLS/SSL是如何实现HTTP明文消息被加密的?
TLS/SSL协议工作在OSI七层模型中,应用层与传输层之间。 1、提供数据安全:保证数据不会被泄露。 2、提供数据的完整性︰保证数据在传输过程中不会被篡改。·
3、对应用层交给传输层的数据进行加密与解密。
2、HTTPS实现原理
2.1、HTTPS加密模型
2.1.1、对称加密
1)对称加密,两个想通讯的人持有相同的秘钥,进行加密与解密。
如下:
bob 将原始文档通过秘钥加密生成一个密文文档。 alice 拿到这个密文文档以后,它可以用这把秘钥还原为原始的明文文档。
对称加密究竟是如何实现的,我们可以以RC4这样一个对称加密序列算法来看一下。
加密:秘钥序列+明文=密文 解密:秘钥序列+密文=明文
2.1.2、非对称加密
非对称加密∶它根据一个数学原理,它会生成一对秘钥(公钥和私钥)公钥加密∶私钥解密,只能实现单方向。
私钥:私钥自己使用,不对外开放。
公钥︰公钥给大家使用,对外开放。
比如:
alice有一对公钥和私钥,他可以将公钥发布给任何人。
假设Bob是其中一个,当Bob要传递─份加密文档给Alice,那么Bob就可以用Alice的公钥进行加密,
Alice收到密文文档后通过自己的私钥进行解密,获取原始文档。
注意:Alice必须知道Bob就是Bob,也就是它收到的信息必须是Bob发来的,那么这个信任问题,
在多方通讯的过程中,必须有一个公信机构来验证双方的身份,那么这个机构就是我们的CA机构。
2.2、Https通讯过程是如何验证双方的身份?
2.2.1、证书申请流程图
2.2.2、流程说明
我们首先需要申请证书,需要进行登记,登记我是谁,我是什么组织,我想做什么,到了登记机构在通过CSR发给CA,
CA中心通过后,CA中心会生成一对公钥和私钥,那么公钥会在CA证书链中保存,公钥和私钥证书订阅人拿到后,会将其部署在WEB服务器上 1、当浏览器访问我们的https站点时,它会去请求我们的证书 2、Nginx会将我们的公钥证书回传给浏览器。 3、浏览器会去验证我们的证书是否是合法的、是否是有效的。 4、CA机构会将过期的证书放置在CRL服务器,那么CRL服务的验证效率是非常差的,所以CA又推出了OCSP响应程序,OCSP响应程序可以查询指定的一个证书是否过期,所以浏览器可以直接查询OCSP响应程序,但OCSP响应程序性能还不是很高。 5、Nginx会有一个OCSP的开关,当我们开启后,Nginx会主动上OCSP上查询,这样大量的客户端直接从Nginx获取,证书是否有效。
2.3、HTTPS如何实现加密与解密
2.3.1、原理图
2.3.2、流程说明
HTTPS加密过程,HTTPS采用混合加密算法,即对称加密、和非对称加密通信前准备工作:申请域名对应的证书,并将其部署在Nginx服务器中。 1、第一步客户端向服务端发送Client Hello消息,这个消息里包含了一个客户端生成的随机数Random1、客户端支持的加密套件和客户端支持TLS协议版本等信息。 2、服务端会向客户端发送Server Hello消息。返回自己的公钥证书、挑选一个合适的加密套件、另外还会生成一份随机数Random2推送给客户端。至此客户端和服务端都拥有了两个随机数(Random1+ Random2) 3、客户端收到服务端传来的公钥证书后,先从CA验证该证书的合法性(CA公钥去解密公钥证书),验证通过后取出证书中的服务端公钥,再生成一个随机数Random3,再用服务端公钥非对称加密Random3。 4、服务端用自己的私钥解出客户端生成的Random3。至此,客户端和服务端都拥有Random1 +Random2 + Random3,两边根据同样的算法生成一份秘钥,握手结束后的应用层数据都是使用这个秘钥进行对称加密。
3、HTTPS注意事项
3.1、https证书都有类型
域名型DV
企业型OV
增强型EV
3.2、HTTPS证书购买指南
保护1个域名 www
保护5个域名 www images cdn test m
通配符域名 *.cyc.com
3.3、HTTPS颜色提示
Https不支持续费,证书到期需重新申请新并进行替换。
Https不支持三级域名解析,如test.m.xu.com。
Https显示绿色,说明整个网站的url都是https的,并且都是安全的。
Https显示黄色,说明网站代码中有部分URL地址是http不安全协议的。
Https显示红色,要么证书是不授信的,或者证书已经过期。