HTTPS 协议= HTTP+SSL/TLS,即在 HTTP 基础上加入 SSL /TLS 层,提供了内容加密、身份认证和数据完整性3大功能,目的就是为了加密数据,用于安全的数据传输。
http到https的访问跳转
1. 用户请求 http://www.exapmle.com ,浏览器与服务器发生TCP三次握手;
2. 服务器收到用户的请求,响应 301 状态码,比如Nginx,转到 HTTPS ,重新请求https://www.exapmle.com ;
3. 用户重新发起 HTTPS 请求,再次与服务器进行三次 TCP 握手;
4. TCP 握手成功后,再与服务器进行 TLS 握手。
HSTS
1. 用户在 HTTP 协议进行访问时,浏览器会自动将 HTTP 转换为 HTTPS 进行访问;
2. 省去301跳转的出现,缩短访问时间;
3. 能阻止基于 SSL Strip 的中间人攻击。
TLS握手优化
TLS False Start
浏览器在与服务器完成 TLS 握手前,就开始发送请求数据,服务器在收到这些数据后,完成 TLS 握手的同时,开始发送响应数据。
Session Identifier
具体-略
session tickets
具体-略
OSCP Stapling
服务端主动获取 OCSP 查询结果并随着证书一起发送给客户端,从而客户端可直接通过 Web Server 验证证书,提高 TLS 握手效率
具体-略
前向加密PFS(安全性)
在私钥泄露的情况下,保证先前的数据也无法破解。
ECDHE 密钥交换+RSA 签名组合以及ECDHE 密钥交换+ECDSA 签名 加密套件具有此功能。
具体-略