HTTPS(HyperText Transfer Protocol Secure)可以理解为在HTTP协议基础上增加安全层的版本。它并不是完全替换HTTP,而是在HTTP与TCP之间加入TLS(Transport Layer Security)层。客户端与服务器之间的HTTP报文会先经过TLS加密,再交给TCP传输。因此,HTTPS在保留HTTP请求方法、状态码、Header等基本规则的同时,解决了明文传输带来的窃听、篡改和身份冒充风险。日常访问网银、电商、邮箱等场景时,地址栏出现的小锁图标就表示当前页面正通过HTTPS建立加密连接。

从技术栈角度看,HTTPS中的TLS层主要负责三件事:通过非对称加密完成密钥协商,通过数字证书验证通信双方身份,再通过对称加密和消息认证码保护后续数据。这个设计平衡了安全性与性能,因为非对称加密计算量大,只用于握手阶段;握手完成后双方会协商出一把会话密钥,后续大量数据传输使用速度更快的对称加密。
一、HTTPS协议的工作机制:TLS握手如何建立加密通道
TLS握手是HTTPS连接建立的核心过程。以TLS 1.2为例,客户端首先发送ClientHello,包含支持的TLS版本、加密套件列表和客户端随机数。服务器返回ServerHello,选定一个双方都支持的加密套件,并携带服务器随机数和数字证书。客户端验证证书是否由受信任的CA签发、域名是否匹配、证书是否过期或吊销。验证通过后,客户端生成预主密钥,并用服务器证书中的公钥加密发送给服务器。服务器用私钥解密后,双方就拥有了相同的预主密钥。
随后,客户端和服务器根据两个随机数以及预主密钥,通过密钥派生函数计算出用于加密和完整性校验的会话密钥。接下来客户端发送Finished消息,表示握手阶段完成,后续的HTTP请求和响应都将使用对称加密传输。TLS 1.3简化了这个过程,将握手压缩到一次往返,并移除了RSA密钥交换等不够安全或低效的旧算法,从而降低延迟并提升安全性。
openssl s_client -connect ipipp.com:443 -servername ipipp.com -showcerts
上面的命令可以查看服务器返回的证书链。输出中的subject和issuer字段分别表示证书主体与签发机构。如果证书链不完整,例如缺少中间证书,某些客户端会认为网站不受信任。因此部署HTTPS时不仅要安装站点证书,还要把中间证书一并配置到服务器。
二、HTTPS相比HTTP的三大核心优点
第一个优点是数据加密防窃听。HTTP是明文协议,用户名、密码、Cookie、浏览记录等敏感信息在传输途中可以被同一网络中的设备直接读取。HTTPS在传输层对报文加密,即使攻击者通过抓包工具拿到数据,也只能看到加密后的乱码。这在公共WiFi环境下尤为重要,因为公共WiFi很容易被监听或者伪造。
第二个优点是完整性保护防篡改。运营商或恶意中间设备有时会在HTTP响应中插入广告脚本,或者替换下载文件。HTTPS使用消息认证码对传输内容做完整性校验,一旦数据在传输过程中被修改,接收方就能检测到并丢弃,从而避免页面被注入恶意代码。
第三个优点是身份认证防钓鱼。HTTPS依赖数字证书证明服务器身份。浏览器会校验证书链、域名和有效期,只有验证通过才显示安全锁。如果攻击者伪造一个银行网站,却无法获得对应域名的合法证书,用户访问时浏览器会给出安全警告。这大幅提高了钓鱼攻击的实施成本。
| 比较项 | HTTP | HTTPS |
|---|---|---|
| 传输内容 | 明文 | 密文 |
| 身份验证 | 无 | 通过数字证书验证 |
| 完整性 | 易被篡改 | 可检测篡改 |
| 默认端口 | 80 | 443 |
| SEO影响 | 相对较低 | 搜索引擎通常偏好HTTPS |
需要说明的是,HTTPS并不能隐藏目标主机地址和连接时间等元数据。网络链路中的