why https?
解决了三个问题:
1.通信的安全性
2.通信双方身份的真实性
3.通信内容的完整性
如何解决这三个点
安全性:
Server端用非对称加密,将双方要进行的对称加密密钥加密,然后Browser端利用公钥解析,得到双方要通信时使用的对称加密密钥
通信双方身份的真实性:
证书。但怎么保证证书会不会伪造呢?颁发证书的人由更权威的人颁发证书,一层一层,到最权威的几个机构(CA)。12306的证书就是自己做的
完整性:
用哈希算法提取摘要,对摘要进行加密,根据摘要解密验证通信内容的完整性
https整体流程
1.客户端发送报文,包括ssl版本,可用算法列表,密钥长度。
2.若服务端支持,返回相应的报文
3.服务器发送证书到客户端
4.客户端发送client key exchange报文,使用3中证书公钥匙加密(客户端用非对称加密中的公钥将对称加密中的密钥加密给服务端)
5.服务端使用私钥解析好后返回相应,提示ssl通信环境搭建好
6.开始正常的http通信