HTTPS
→ 返回 计算机网络
HTTPS = HTTP + TLS(安全传输)。默认端口 443;URL 形如 https://example.com/path。
HTTPS、SSL、TLS 分别指什么
| 名称 | 含义 |
|---|---|
| HTTPS | Hypertext Transfer Protocol Secure;S = Secure(安全),不是协议缩写 SSL |
| TLS | 实际提供加密的传输层协议 → 详见 TLS |
| SSL | 历史前身;口语常说「SSL 证书」,实现上应使用 TLS |
关系:
应用层: HTTP 请求/响应(方法、状态码、Header、Body)
↓ 运行在
安全层: TLS(握手、证书、加密)
↓ 运行在
传输层: TCP(通常 443 端口)
与 HTTP 的差异
| 对比项 | HTTP | HTTPS |
|---|---|---|
| 端口 | 80 | 443 |
| 传输 | 明文 | TLS 加密 |
| 身份 | 无默认校验 | 依赖证书链验证服务端(可选 mTLS 校验客户端) |
| URL | http:// | https:// |
浏览器地址栏锁图标表示 TLS 握手成功且证书校验通过。握手与证书细节见 TLS。
部署与访问
# 测试 HTTPS(跳过证书校验,仅开发)
curl -k https://example.com
# 正常校验证书
curl https://example.com反向代理(Nginx、Caddy)常在边缘终结 TLS(SSL 卸载),再以 HTTP 或 HTTPS 转发到后端 → 代理。
常见问题
| 问题 | 说明 |
|---|---|
| 证书过期 | 需定期续期;Let’s Encrypt 常见 90 天 → TLS |
| 混合内容 | HTTPS 页面加载 http:// 脚本/图片,浏览器阻止或警告 |
| HSTS | 响应头强制后续只用 HTTPS,防 SSL stripping 降级 |
| 证书与域名不符 | 证书 SAN/CN 未包含访问域名 |
| 自签名证书 | 开发可用;生产需受信 CA 签发 |
HSTS 示例
Strict-Transport-Security: max-age=31536000; includeSubDomains首次访问仍可能经 HTTP 被劫持,常配合 301 全站跳转 HTTPS 与 HSTS preload。
与其它「安全 Web」的关系
| 场景 | 说明 |
|---|---|
| WSS | WebSocket over TLS,类似 HTTPS 套 TLS |
| HTTP/3 | 基于 QUIC,内置 TLS 1.3,端口常为 UDP 443 |
| Let’s Encrypt | 免费 DV 证书,配合 ACME 自动续期 |