HTTPS:HTTPS 也是一个应用层协议,是在 HTTP 协议的基础上引入了一个加密层。
为什么要引入一个加密层呢?
HTTP 协议内容都是按照文本的方式明文传输的,这就导致在传输过程中出现一些被篡改的情况。在互联网上, 明文传输是比较危险的事情!HTTPS 就是在 HTTP 的基础上进行了加密,进一步的来保证用户的信息安全。
例如:臭名昭著的 “运营商劫持”

对称加密其实就是通过同一个“密钥”,把明文加密成密文,并且也能把密文解密成明文。

引入对称加密之后,即使数据被截获,由于黑客不知道密钥是啥,因此就无法进行解密,也就不知道请求的真实内容是啥了。
但事情没这么简单,服务器同一时刻其实是给很多客户端提供服务的,这么多客户端,每个人用的秘钥都必须是不同的(如果是相同那密钥就太容易扩散了,黑客就也能拿到了)。因此服务器就需要维护每个客户端和每个密钥之间的关联关系,比较理想的做法就是能在客户端和服务器建立连接的时候, 双方协商确定这次的密钥是啥,但是密钥的传输也必须加密才行,所以引入了非对称加密。
非对称加密:非对称加密要用到两个密钥,一个叫做 “公钥”,一个叫做 “私钥”。公钥和私钥是配对的,最大的缺点就是运算速度非常慢,比对称加密要慢很多。
如何加密?
也可以反着用:

由于对称加密的效率比非对称加密高很多,因此只是在开始阶段协商密钥的时候使用非对称加密,后续的传输仍然使用对称加密
在客户端和服务器刚一建立连接的时候,服务器给客户端返回一个证书,这个证书包含了刚才的公钥,也包含了网站的身份信息,此时客户端就获得了服务器的公钥。

这个证书就好比人的身份证,作为这个网站的身份标识。搭建一个 HTTPS 网站要在CA机构先申请一个证书。(类似于去公安局办个身份证)
下面我们就来详细的叙述一下证书签名,证书分发以及证书验证的整个过程:

HTTPS 工作过程中涉及到的密钥有三组:
第一组(非对称加密):用于校验证书是否被篡改。服务器持有CA私钥(私钥在注册证书时获得),客户端持有CA公钥(操作系统包含了可信任的 CA 认证机构有哪些,同时持有对应的公钥)。服务器使用这个私钥对证书的签名进行加密,客户端通过这个公钥解密获取到证书的签名,从而校验证书内容是否是篡改过。
第二组(非对称加密):用于协商生成对称加密的密钥。服务器生成这组 私钥-公钥 对,然后通过证书把公钥传递给客户端。然后客户端用这个公钥给生成的对称加密的密钥加密,传输给服务器,服务器通过私钥解密获取到对称加密密钥。
第三组(对称加密):客户端和服务器后续传输的数据都通过这个对称密钥加密解密。

优点:
缺点:
以上就是今天要讲的内容,本文简单讲述了HTTPS协议的基本内容,包括HTTPS的工作过程,对于非对称加密和证书进行了详细的描述,对HTTPS和HTTP进行了对比。如果你觉得有收获的话,就留下你的👍吧!!!