Ubuntu Nginx配置HTTPS的关键注意事项
sudo certbot --nginx -d yourdomain.com即可自动完成证书申请与Nginx配置。openssl req -x509 -nodes -days 365 -newkey rsa:2048生成自签名证书,但浏览器会提示“不安全”,需手动信任。.crt/.pem)和私钥文件(.key)路径正确,避免权限问题(私钥需设置为600权限)。Let’s Encrypt证书路径通常为/etc/letsencrypt/live/yourdomain.com/。server块中添加return 301 https://$host$request_uri;,将所有HTTP请求永久重定向至HTTPS,提升安全性与SEO效果。例如:server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
ssl_protocols TLSv1.2 TLSv1.3;。ECDHE(椭圆曲线迪菲-赫尔曼)系列算法,如ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;,兼顾安全性与性能。ssl_prefer_server_ciphers on;,确保服务器优先选择加密套件,提升前向保密性。sudo nginx -t检查语法错误,避免因配置错误导致服务无法启动。sudo systemctl reload nginx重载配置,无需中断现有连接。/etc/nginx/nginx.conf的http块中添加server_tokens off;,避免响应头中泄露Nginx版本,减少针对性攻击。http块中添加限流配置(如limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;),防止DDoS或暴力破解。server块中添加以下头部,提升安全性:
Strict-Transport-Security "max-age=63072000; includeSubdomains; preload":强制浏览器使用HTTPS(有效期2年);X-Frame-Options "DENY":防止页面被嵌入iframe(防范点击劫持)。/var/log/nginx/error.log查看SSL配置错误(如证书过期、私钥不匹配),通过access.log监控HTTPS访问情况。server块或使用301重定向(如将www指向主域名);sudo ufw allow 443/tcp)。sudo certbot renew --dry-run测试自动续期功能,然后在crontab -e中添加0 3 * * * /usr/bin/certbot renew --quiet,每天凌晨3点自动尝试续期。