一、安装OpenSSL
sudo apt update
sudo apt install openssl libssl-dev
二、生成SSL证书与私钥
sudo openssl genrsa -out /etc/nginx/ssl/private.key 2048
sudo openssl req -x509 -newkey rsa:2048 -keyout /etc/nginx/ssl/private.key -out /etc/nginx/ssl/certificate.crt -days 365 -nodes
三、配置Nginx支持HTTPS
sudo nano /etc/nginx/sites-available/default
server {
listen 80;
server_name yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name yourdomain.com;
ssl_certificate /etc/nginx/ssl/certificate.crt;
ssl_certificate_key /etc/nginx/ssl/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
location / {
root /var/www/html;
index index.html;
}
}
四、测试与重启服务
sudo nginx -t
sudo systemctl restart nginx
五、验证HTTPS
- 访问
https://yourdomain.com,浏览器显示锁图标即成功。
- 若使用自签名证书,浏览器会提示“不安全”,可手动信任。
注意事项
- 生产环境建议使用 Let’s Encrypt 等权威CA签发的证书,避免自签名证书的信任问题。
- 确保防火墙(如UFW)开放HTTPS端口(443):
sudo ufw allow 'Nginx Full'。
- 定期更新OpenSSL以修复安全漏洞:
sudo apt upgrade openssl。