要在Nginx上配置HTTPS加密证书访问,您需要完成以下步骤:
首先,您需要获取SSL证书,可以选择:
# 安装Certbot工具
sudo apt-get install certbot python3-certbot-nginx
# 获取并安装证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com
server {
listen 443 ssl;
server_name yourdomain.com www.yourdomain.com;
# SSL证书配置
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# SSL协议配置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
ssl_ecdh_curve secp384r1;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
ssl_stapling on;
ssl_stapling_verify on;
# 其他配置
root /var/www/html;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
return 301 https://$host$request_uri;
}
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload";
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/yourdomain.com/chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;
# 测试Nginx配置
sudo nginx -t
# 重载Nginx配置
sudo systemctl reload nginx
Let's Encrypt证书有效期为90天,建议设置自动续期:
# 测试续期
sudo certbot renew --dry-run
# 设置自动续期(添加到crontab)
0 12 * * * /usr/bin/certbot renew --quiet
ssl_certificate
和ssl_certificate_key
路径正确完成以上步骤后,您的网站应该可以通过HTTPS安全访问了。可以使用SSL Labs测试工具来检测您的SSL配置安全性。