HTTP: HyperText Transfer Protocol
HTTPS: HyperText Transfer Protocol over Secure Socket Layer
HTTPS是安全版本的HTTP。安全基础是SSL(或者TLS)。TLS是SSL的升级替代版
HTTP端口80,HTTPS端口443
HTTP是无状态的,HTTPS是加密传输、身份认证的网络协议
HTTPS解决的问题:
1 . 信任主机的问题。server需要ca,修改ca需重新信任
2 . 防止通讯过程中的数据的泄密和被窜改
URL方案HTTP:客户端开一条到端口80的连接,发送HTTP指令
URL方案HTTPS:客户端开一条到端口443的连接,与服务器进行SSL握手,发送加密的HTTP命令
SSL握手:
1.交换协议版本号
2.选择一个两端都了解的加密方式
3.对两端身份进行认证
4.生成临时的会话密钥,以便加密信道
1.[明文] 客户端发送随机数client_random和支持的加密方式列表
2.[明文] 服务器返回随机数server_random ,选择的加密方式和服务器证书链
3.[RSA] 客户端验证服务器证书,使用证书中的公钥加密premaster secret 发送给服务端
4.服务端使用私钥解密premaster secret
5.两端分别通过client_random,server_random 和premaster secret 生成master secret,用于对称加密后续通信内容
网友评论