HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer 超文本传输 安全协议)
HTTPS在传统的HTTP和TCP之间加了一层用于加密解密的SSL/TLS层
(安全套接层Secure Sockets Layer/安全传输层Transport Layer Security)层。使用HTTPS必需要有一套本身的数字证书(包含公钥和私钥)。git
HTTPS解决的问题github
HTTPS加密过程:安全
证书公钥
公钥加密
随机值生成密钥 秘钥
发送给服务器私钥
解密秘钥
获得随机值将信息和随机值混合在一块儿
进行对称加密秘钥
解密信息加密过程使用了对称加密和非对称加密。服务器
对称加密: 客户端和服务端采用相同的密钥经行加密ssh
encrypt(明文,秘钥) = 密文 decrypt(密文,秘钥) = 明文
非对称加密:客户端经过公钥加密。服务端经过私钥解密加密
encrypt(明文,公钥) = 密文 decrypt(密文,私钥) = 明文
由于TLS握手的过程当中采用了非对称加密,客户端自己不知道服务器的秘钥,这样通讯就不会被中间人劫持。此外这一步服务端还提供了证书,而且可能要求客户端提供证书。关于证书下文会提到,只要有了证书,就能保证和你通讯的对方是真实的,而不是别人伪造的。spa
那而后验证证书呢?code
站点证书的颁发者
验证服务端站点
是否可信根证书颁发者
根证书颁发者
一步步验证站点证书颁布者
是否可信附:blog
参考:ip