参考资料

  1. nginx ssl怎么配置详细说明以及案例
  2. Linux系统配置SSL指南
  3. 如何管理多个SSL证书
  4. windows下nginx配置ssl证书详细说明以及案例
  5. SSL证书的费用与成本
  6. ssl证书不受信任问题详解
  7. windows ssl证书生成详细说明以及案例
  8. 哪些行业特别需要SSL证书

SSL配置的进阶问题

1. 详细说明介绍

SSL(Secure Sockets Layer)及其继任者TLS(Transport Layer Security)是用于加密网络通信的协议。进阶配置通常涉及更严格的安全设置、性能优化和特定场景的适配。

2. 适用操作系统

  • Linux:通过OpenSSL、Nginx、Apache等工具配置

  • Windows:通过IIS、PowerShell或第三方工具配置

  • macOS:通过Keychain Access和内置的OpenSSL库配置

3. 证书有效性

  • 有效期:通常为1年(Let's Encrypt)至多年(商业CA)

  • 吊销检查:通过OCSP(Online Certificate Status Protocol)或CRL(Certificate Revocation List)

  • 密钥强度:推荐RSA 2048位或ECC 256位

4. 配置示例

Nginx示例

server {
    listen 443 ssl;
    server_name example.com;
    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;
    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_timeout 1d;
    ssl_session_cache shared:SSL:50m;
}

Apache示例

<VirtualHost *:443>
    ServerName example.com
    SSLEngine on
    SSLCertificateFile /path/to/cert.pem
    SSLCertificateKeyFile /path/to/key.pem
    SSLProtocol TLSv1.2 TLSv1.3
    SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
</VirtualHost>

5. 调试与验证

  • OpenSSL命令

    openssl s_client -connect example.com:443 -servername example.com
  • 在线工具

  • 日志检查

    • Nginx/Apache错误日志

    • 系统日志(如/var/log/messages)

6. 注意事项

  • 密钥保护:私钥文件权限应设置为600(仅所有者可读)

  • 协议禁用:禁用SSLv2、SSLv3和TLSv1.0、TLSv1.1(存在已知漏洞)

  • HSTS:启用HTTP Strict Transport Security头

  • 证书链:确保中间证书正确配置

  • 性能影响:启用会话复用和OCSP Stapling以减少握手开销

  • 兼容性:测试旧客户端(如Windows XP)的兼容性(如必要)