HTTPS(超文本传输协议安全版)是 HTTP 的加密版本——浏览器与网站通信使用的协议。当站点使用 HTTPS 时,浏览器与服务器之间的所有数据都被加密,防止中间任何人读取或修改。
你可以通过 URL 中的 https:// 前缀和浏览器地址栏中的锁头图标识别 HTTPS 站点。截至 2026 年,86.9% 的网站使用 HTTPS,浏览器将所有 HTTP 站点标记为”不安全”。
HTTPS 如何工作
HTTPS 在常规 HTTP 之上添加 TLS(传输层安全)加密。当你访问 HTTPS 网站时,毫秒内会发生 TLS 握手:
- 浏览器连接 —— 向服务器发送支持的 TLS 版本、密码套件和随机数
- 服务器响应 —— 发送选定的密码套件、SSL/TLS 证书(包含公钥)和随机数
- 浏览器验证 —— 检查证书是否过期、是否匹配域名、是否由受信任的证书颁发机构签名
- 协商会话密钥 —— 双方使用非对称加密(Diffie-Hellman 密钥交换)协商共享会话密钥
- 加密通信开始 —— 所有后续数据用对称会话密钥加密
握手后,一切都被加密:HTML、图片、CSS、JavaScript、表单提交、Cookie、API 响应和 URL 路径。
HTTP vs HTTPS
| HTTP | HTTPS | |
|---|---|---|
| 加密 | 无——数据明文发送 | 所有数据用 TLS 加密 |
| 默认端口 | 80 | 443 |
| URL 前缀 | http:// | https:// |
| 需要证书 | 否 | 是(SSL/TLS 证书) |
| 浏览器标识 | ”不安全”警告 | 锁头图标 |
| 数据完整性 | 无——数据可被中途篡改 | 有——篡改会被检测 |
| 身份认证 | 无——无法证明服务器真实性 | 证书证明服务器身份 |
| SEO 信号 | 负面(自 2014 年) | 正面(Google 排名因素) |
| HTTP/2 支持 | 否(实际上) | 是——更快的页面加载 |
| 必需于 | 无现代功能 | Service workers、地理位置、摄像头/麦克风 API、支付表单 |
差距不仅仅是安全性——HTTPS 启用了 HTTP 无法使用的现代 Web 功能。浏览器将 Service Workers、Geolocation API、Clipboard API 和其他强大 API 限制为仅 HTTPS 来源。
为什么每个网站都需要 HTTPS
隐私
没有 HTTPS,同一网络上的任何人都能看到你在做什么。咖啡店 Wi-Fi 运营者、企业代理、ISP——他们能读取你访问的每个页面、提交的每个表单、传递的每个 Cookie。HTTPS 加密所有这些。
这不是理论上的。ISP 已被记录向未加密的 HTTP 流量注入广告和跟踪代码。
数据完整性
HTTPS 保证你收到的数据在传输中未被修改。没有它,恶意网络运营者可以:
- 向你的页面注入广告或加密货币矿工
- 用恶意软件替换下载链接
- 修改你网站上的价格或条款
- 插入跟踪脚本
HTTPS 检测任何修改——浏览器拒绝被篡改的数据。
身份认证
证书证明你连接的是真实服务器,而非冒充者。没有 HTTPS,恶意 Wi-Fi 热点(名为”Free Airport WiFi”)可以悄悄将你重定向到任何网站的虚假版本。有 HTTPS 时,虚假站点无法出示该域名的有效证书——浏览器阻止连接。
SEO
Google 自 2014 年起将 HTTPS 作为排名信号。虽然是轻量级信号(Google 描述为”决胜因素”),但它是最容易实施的信号之一。更重要的是,HTTP 页面触发 Chrome 的”不安全”警告,增加跳出率——跳出率间接影响排名。
性能
常见误解是 HTTPS 更慢。实际上:
- TLS 握手增加一次往返(TLS 1.3)或两次(TLS 1.2)——通常 10-50ms
- HTTP/2(需要 HTTPS)通过多路复用、头部压缩和服务器推送显著更快
- 会话恢复消除了回访者的握手开销(TLS 1.3 中为 0-RTT)
- 现代 CPU 在硬件中处理 AES 加密(AES-NI)——CPU 成本可忽略
实际上,使用 HTTP/2 的 HTTPS 站点比 HTTP/1.1 站点加载更快。
浏览器要求
现代浏览器将强大 API 限制为安全上下文(仅 HTTPS):
- Service Workers —— PWA、离线支持、推送通知所需
- Geolocation API —— GPS 和位置访问
- Camera/Microphone —— 视频通话的
getUserMedia() - Clipboard API —— 从剪贴板读取
- Payment Request API —— 原生支付 UI
- Web Bluetooth, Web USB —— 硬件访问
如果你的站点需要这些功能中的任何一个,HTTPS 是强制的——不是可选的。
常见误解
“HTTPS 只在登录页和支付时需要。” 每个页面都应该使用 HTTPS。即使是静态博客文章也会传输可能在 HTTP 上被窃取的 Cookie。HTTP 页面可以在传输中被修改以注入恶意内容。浏览器现在对所有 HTTP 页面警告——不仅仅是有表单的。
“HTTPS 让我的站点更慢。” TLS 1.3 在首次连接增加约 10-40ms。HTTP/2(需要 HTTPS)通过多路复用和压缩足以弥补。会话恢复使后续访问更快。在现代硬件上,加密本身由 CPU 指令(AES-NI)处理,不增加可测量的开销。
“HTTPS 证书很贵。” Let’s Encrypt 免费签发证书。超过 3 亿网站使用它们——包括大型企业和政府网站。通过 GetHTTPS,你可以在 5 分钟内获取一张,无需安装任何软件。
“锁头图标意味着站点是安全的。” 锁头意味着连接是加密的——不是网站本身值得信赖。超过 90% 的钓鱼网站现在使用 HTTPS。锁头确认你连接的是谁(通过证书),不是他们是否诚实。
如何为你的网站启用 HTTPS
-
获取证书 —— 使用 GetHTTPS 在浏览器中获取免费的 Let’s Encrypt 证书。无需安装,无需账户。
-
安装到服务器 —— 参见我们的指南:Nginx、Apache、cPanel、WordPress、IIS 或 Docker。
-
将 HTTP 重定向到 HTTPS —— 强制所有流量使用安全版本。重定向指南 →
-
修复混合内容 —— 确保所有资源(图片、脚本、CSS)通过 HTTPS 加载。混合内容指南 →
-
设置续签 —— Let’s Encrypt 证书有效期 90 天。续签指南 →
HTTPS 的未来
证书有效期正在缩短。 CA/Browser Forum 投票决定到 2029 年将最长有效期减至 47 天。这使自动续签工具(Certbot、acme.sh)或简便的手动工具(GetHTTPS)越来越重要。
HTTP/3 和 QUIC。 下一代 HTTP 运行在 QUIC 上,传输层内置加密——没有未加密版本。HTTPS 不再只是一个层;它正在与协议本身融为一体。
Encrypted Client Hello(ECH)。 TLS 1.3 加密了大部分握手内容,但 SNI(Server Name Indication)——揭示你连接的域名——仍然可见。ECH 也将加密 SNI,使网络观察者无法看到你在共享服务器上访问的是哪个具体站点。
常见问题
HTTPS 真的安全吗?
使用现代 TLS(1.2 或 1.3)的 HTTPS 对窃听和篡改极为安全。对正确配置的 TLS 1.3 没有实际可行的攻击。剩余风险在端点(设备上的恶意软件、被入侵的服务器),不在加密连接本身。
静态网站需要 HTTPS 吗?
需要。即使没有表单或登录,HTTPS 防止内容注入(广告、恶意软件),保护访客隐私(他们查看了哪些页面),启用 HTTP/2(更快加载),避免”不安全”浏览器警告。
HTTPS 影响 SEO 吗?
影响。Google 在 2014 年确认 HTTPS 为排名信号。它是轻量级信号,但结合”不安全”警告(增加跳出率),HTTP 站点面临可衡量的 SEO 劣势。
SSL 和 TLS 有什么区别?
SSL(安全套接层)是最初的加密协议,由 Netscape 在 1990 年代创建。TLS(传输层安全)取代了它。所有 SSL 版本已弃用且不安全。人们今天说”SSL 证书”时,指的是用于 TLS 的证书。术语在实践中可互换使用。
HTTPS 要花多少钱?
零——如果使用 Let’s Encrypt。GetHTTPS 直接在浏览器中免费签发 Let’s Encrypt 证书。付费证书($50-500/年)存在但提供相同的加密强度——区别在于身份验证级别,不是安全性。
HTTPS 能防御所有攻击吗?
不能。HTTPS 保护传输中的数据——它防止窃听、篡改和服务器冒充。它不能防止:用户设备上的恶意软件、应用代码漏洞(XSS、SQL 注入)、钓鱼(锁头不意味着站点诚实)或服务器端入侵。