参考资料

  1. 如何检查 SSL 证书是否过期
  2. windows ssl密码套件详细说明以及案例
  3. nginx ssl配置步骤
  4. 实现HTTPS自动跳转的详细说明
  5. SSL证书的类型与选择
  6. ssl证书不受信任问题详解
  7. 如何选择适合的SSL证书类型
  8. SSL证书的获取方式

不同环境下的SSL配置

1. Web服务器环境

  • 适用操作系统:Linux (Ubuntu/CentOS), Windows Server

  • 证书有效性:通常由CA颁发,有效期1-2年

  • 配置示例

    • Apache:

      SSLEngine on
      SSLCertificateFile /path/to/cert.pem
      SSLCertificateKeyFile /path/to/private.key
      SSLCertificateChainFile /path/to/chain.pem
    • Nginx:

      ssl_certificate /path/to/cert.pem;
      ssl_certificate_key /path/to/private.key;
      ssl_protocols TLSv1.2 TLSv1.3;
  • 调试与验证

    • 使用openssl s_client -connect domain:443

    • 在线工具如SSL Labs测试

  • 注意事项

    • 禁用SSLv3及以下版本

    • 启用HSTS

    • 定期更新证书

2. 负载均衡环境

  • 适用操作系统:与硬件负载均衡器或软件(如HAProxy/Nginx)

  • 证书有效性:同Web服务器

  • 配置示例

    • HAProxy:

      bind *:443 ssl crt /path/to/combined.pem
  • 调试与验证

    • 检查负载均衡器日志

    • 测试后端服务器证书

  • 注意事项

    • 确保后端服务器也配置SSL

    • 启用OCSP Stapling

3. 数据库环境

  • 适用操作系统:取决于数据库(MySQL/PostgreSQL等)

  • 证书有效性:自签名或CA颁发

  • 配置示例

    • MySQL:

      [mysqld]
      ssl-ca=/path/to/ca.pem
      ssl-cert=/path/to/server-cert.pem
      ssl-key=/path/to/server-key.pem
  • 调试与验证

    • 使用SHOW STATUS LIKE 'Ssl%'(MySQL)

  • 注意事项

    • 强制客户端使用SSL连接

    • 定期轮换证书

4. 邮件服务器环境

  • 适用操作系统:Linux/Windows邮件服务器

  • 证书有效性:CA颁发为佳

  • 配置示例

    • Postfix:

      smtpd_tls_cert_file=/path/to/cert.pem
      smtpd_tls_key_file=/path/to/private.key
  • 调试与验证

    • 使用openssl s_client -starttls smtp -connect mail.example.com:25

  • 注意事项

    • 配置TLS for SMTP/IMAP/POP3

    • 使用强加密套件

5. 开发/测试环境

  • 适用操作系统:任意开发环境

  • 证书有效性:自签名(通常1年)

  • 配置示例

    • 生成自签名证书:

      openssl req -x509 -newkey rsa:4096 -nodes -keyout key.pem -out cert.pem -days 365
  • 调试与验证

    • 浏览器忽略证书警告

    • 使用curl -k测试

  • 注意事项

    • 不要在生产环境使用自签名证书

    • 明确区分测试/生产证书

6. 容器化环境

  • 适用操作系统:Docker/Kubernetes环境

  • 证书有效性:CA颁发或使用服务网格证书

  • 配置示例

    • Kubernetes Ingress:

      tls:
      - hosts:
        - example.com
        secretName: example-tls
  • 调试与验证

    • 检查Ingress控制器日志

    • 使用kubectl get secret验证证书

  • 注意事项

    • 使用cert-manager自动管理证书

    • 注意证书的命名空间范围

7. IoT设备环境

  • 适用操作系统:嵌入式Linux/RTOS

  • 证书有效性:长期有效证书(5-10年)

  • 配置示例

    • MQTTS配置:

      mqttClient.setCert("/path/to/cert.der");
      mqttClient.setPrivateKey("/path/to/key.der");