- 为什么需要https
为了防止中间人盗取伪造浏览器和服务器之前的通信 - https的通信过程是什么样子呢?
首先服务器会向客户端发送一个数字证书
,这个数字证书包含服务器的公钥。然后客户端通过这个公钥给对称加密算法比如AES
的密钥
进行加密,发送给服务器。服务器收到消息之后使用私钥进行解密,获得对称加密密钥
。之后客户端和服务器就可以使用对称加密来加密消息,进行消息的传递了 - 什么是
数字证书
数字证书是CA(Certificate Authority)机构制作并发送给服务器的。数字证书里面包含的内容包括:
签发者
证书用途
服务器的公钥
服务器的加密算法
服务器用的HASH算法
证书的到期时间等
那如何保证这些信息没有被篡改呢?聪明的你肯定想到了,做签名。在这里叫做数字签名
。即基于这些信息用CA机构
的私钥进行签名,这样就得到了数字签名
。数字签名
和这些信息一起构成了数字证书
。
所有当客户端获得数字证书的时候,通过对应机构的公钥验签