debian

Debian Nginx SSL安全设置

小樊
51
2025-08-28 14:40:58
栏目: 云计算

以下是Debian Nginx的SSL安全设置要点:

  1. 证书管理

    • 推荐使用Let’s Encrypt免费证书(通过Certbot工具自动获取和续签):
      sudo apt install certbot python3-certbot-nginx
      sudo certbot --nginx -d yourdomain.com
    • 若使用自签名证书(仅测试环境),需生成证书并配置路径:
      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/ssl/key.key -out /etc/nginx/ssl/cert.crt
  2. 配置强加密协议与套件

    • 在Nginx配置文件(/etc/nginx/sites-available/yourdomain.conf)中添加:
      ssl_protocols TLSv1.2 TLSv1.3;  
      ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384';  
      ssl_prefer_server_ciphers on;  
      ```。  
      
      
  3. 启用安全特性

    • HSTS:强制浏览器使用HTTPS,添加以下头部:
      add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
    • OCSP Stapling:优化证书验证性能,配置:
      ssl_stapling on; ssl_stapling_verify on; resolver 8.8.8.8 8.8.4.4 valid=300s;
  4. 优化性能与安全

    • 启用HTTP/2(需Nginx版本≥1.9.5):
      http2 on;
    • 限制DH参数长度(增强前向保密):
      ssl_dhparam /etc/nginx/ssl/dhparam.pem;(需提前生成:openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048)。
  5. 权限与维护

    • 确保证书文件权限正确:
      sudo chmod 600 /etc/nginx/ssl/*.key
      sudo chmod 644 /etc/nginx/ssl/*.crt
    • 定期更新系统和软件,通过Certbot自动续签证书(设置定时任务):
      sudo crontab -e 添加 0 0 * * * certbot renew --quiet
  6. 验证配置

    • 检查Nginx语法:sudo nginx -t
    • 测试SSL连接:curl -I https://yourdomain.com 或通过SSL Labs等工具验证配置。

参考来源:

0
看了该问题的人还看了