加密与安全通信
HTTPS
约 4 分钟阅读
最后更新: 2026-03-12
什么是 HTTPS
HTTPS (HyperText Transfer Protocol Secure) 是一种加密浏览器与服务器之间通信的协议。它在 HTTP 基础上添加了 TLS/SSL 加密层,防止窃听、篡改和冒充。
浏览器地址栏中显示的锁形图标表示连接已通过 HTTPS 加密。如果没有 HTTPS,包括密码和表单输入在内的所有数据都以明文传输,网络上的任何人都可以截获。
HTTPS 的工作原理
HTTPS 连接通过以下步骤建立。
- TCP 连接:浏览器与服务器的 443 端口建立 TCP 连接 (HTTP 使用 80 端口)。
- TLS 握手:服务器将数字证书发送给浏览器。浏览器验证证书的有效性 (颁发者、有效期、域名匹配),建立加密通道。
- 加密通信:所有 HTTP 请求和响应都使用握手过程中协商的会话密钥加密。即使被截获,数据也无法被读取。
整个过程在毫秒内完成,用户无感知。现代浏览器和服务器使用 TLS 1.3,将握手缩减为单次往返。
HTTPS 的重要性
HTTPS 不仅仅是安全措施,它影响网站运营的多个方面。
- 通信保护:防止密码、信用卡号和个人信息以明文传输。在公共 Wi-Fi 等不可信网络中尤为重要。
- 防篡改:阻止 ISP 和攻击者向页面注入广告或恶意代码。HTTP 页面在传输过程中可能被悄悄修改。
- SEO 优势:Google 自 2014 年起将 HTTPS 作为排名信号。HTTP 网站在搜索结果中处于劣势。
- 现代浏览器 API:地理位置、摄像头/麦克风访问、Service Worker、Web Push 等功能都要求 HTTPS。HTTP 网站无法使用这些 API。
- 用户信任:浏览器在 HTTP 页面上显示"不安全"警告。这会降低访客信任度,增加跳出率。
HTTPS 的验证方法与常见误区
以下是在浏览器中验证 HTTPS 连接的方法以及常见误解。
- 检查锁形图标:点击地址栏的锁形图标可查看证书详情 (颁发者、有效期、域名)。
- 注意混合内容:如果 HTTPS 页面通过 HTTP 加载资源 (图片、脚本等),浏览器可能会阻止或显示警告。所有资源都必须通过 HTTPS 加载。
- 锁形图标 ≠ 安全网站:锁形图标仅表示连接已加密。钓鱼网站也使用 HTTPS,不应仅凭锁形图标就信任网站。
- 证书过期:过期证书会触发浏览器警告并阻止访问。建议使用 Let's Encrypt 和 certbot 进行自动续期。
常见误解
- HTTPS 只有大型网站才需要
- 即使是个人博客和小型网站也必须使用 HTTPS。HTTP 网站会被浏览器标记为"不安全",损害访客信任。Let's Encrypt 提供免费证书,成本不再是障碍。
- 切换到 HTTPS 就安全了
- HTTPS 提供通信通道加密,但无法防止服务器端漏洞、XSS、SQL 注入等攻击。HTTPS 是安全的起点,而非终点。
HTTP 与 HTTPS 对比
HTTP
数据以明文传输。存在窃听、篡改和冒充风险。使用 80 端口。浏览器显示'不安全'。
HTTPS
通过 TLS 加密通信。防止窃听、篡改和冒充。使用 443 端口。显示锁形图标,可使用现代浏览器 API。
分享