HTTPS 与 TLS/SSL 完全指南:保障数据传输安全


阿里云特惠 - 新用户专享

HTTPS 与 TLS/SSL 完全指南

HTTPS 已成为互联网的标配。理解 TLS/SSL 的握手过程、证书体系和常见安全问题,是每位技术人必备的知识。

一、为什么需要 HTTPS?

HTTP 明文传输存在三大风险:

  • 窃听:中间人可截获用户密码、银行卡号等敏感信息
  • 篡改:运营商劫持注入广告,黑客修改页面内容
  • 伪装:钓鱼网站伪装成合法网站欺骗用户

HTTPS = HTTP + TLS,通过加密、完整性校验和身份认证解决上述问题。

二、TLS 握手过程(TLS 1.3 简化版)

  1. ClientHello:客户端发送支持的 TLS 版本、加密套件、随机数
  2. ServerHello + 证书:服务端选择加密套件,发送证书(含公钥)
  3. 证书验证:客户端验证证书链(CA 签名、有效期、域名匹配)
  4. 密钥协商:基于 ECDHE 算法,双方各生成临时密钥对,协商出对称加密密钥
  5. Finished:双方用协商的对称密钥加密后续通信

三、证书体系与 CA

  • 证书颁发机构(CA):受信任的第三方机构(DigiCert、Let’s Encrypt 等)
  • 证书链:根证书 → 中间证书 → 服务器证书,形成信任链
  • DV/OV/EV 证书:域名验证/企业验证/扩展验证,安全级别递增
  • Let’s Encrypt:免费、自动化、开放的 CA,已成为中小网站首选

四、常见安全配置

# Nginx HTTPS 安全配置示例
server {
    listen 443 ssl http2;
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
    
    # 只允许 TLS 1.2/1.3
    ssl_protocols TLSv1.2 TLSv1.3;
    
    # 强制 HTTPS(HSTS)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    
    # OCSP Stapling 提升握手速度
    ssl_stapling on;
    ssl_stapling_verify on;
}

总结

HTTPS 的部署成本已大幅降低,Let’s Encrypt 提供了免费证书。任何面向用户的网站都应启用 HTTPS,这是对用户安全的基本保障。

发表评论