参考资料

  1. SSL证书的获取方式
  2. Linux系统配置SSL指南
  3. 为什么需要SSL证书
  4. 不同环境下的SSL配置
  5. Windows服务器SSL配置
  6. 过期的SSL证书
  7. ssl配置设置详细说明以及案例
  8. nginx ssl配置步骤

Nginx SSL配置详解

1. 适用操作系统

  • Linux(Ubuntu, CentOS, Debian等)

  • FreeBSD

  • Windows(有限支持)

2. 证书有效性要求

  • 证书必须由可信CA签发或配置自签名证书

  • 证书必须未过期

  • 私钥必须与证书匹配

  • 证书链必须完整

3. 配置示例

server {
    listen 443 ssl;
    server_name example.com;

    # 证书文件路径
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/private.key;

    # 启用TLS协议版本
    ssl_protocols TLSv1.2 TLSv1.3;

    # 加密套件配置
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
    ssl_prefer_server_ciphers on;

    # 会话缓存设置
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;

    # HSTS头
    add_header Strict-Transport-Security "max-age=63072000" always;

    # 其他配置...
}

4. 调试与验证方法

  • 检查配置语法:nginx -t

  • 重新加载配置:nginx -s reload

  • 验证SSL:openssl s_client -connect example.com:443 -servername example.com

  • 在线检测工具:SSL Labs测试(https://www.ssllabs.com/ssltest/)

5. 注意事项

  • 私钥文件必须严格保密(600权限)

  • 定期更新证书(可配置自动续期)

  • 禁用不安全的协议和加密套件(如SSLv3, TLSv1.0)

  • 配置OCSP Stapling提高性能

  • 注意证书链完整性(中间证书)

  • 生产环境避免使用自签名证书

  • 考虑启用HTTP/2提升性能