如何给网站配置免费 HTTPS(Let's Encrypt)?
想给网站加 HTTPS 但不想花钱买证书
解决方案
使用 Certbot 自动配置 推荐
# 1. 安装 certbot sudo apt install certbot python3-certbot-nginx # 2. 获取证书并自动配置 Nginx sudo certbot --nginx -d example.com -d www.example.com # 3. 验证自动续期 sudo certbot renew --dry-run # 4. 设置定时续期(certbot 通常自动设置) # /etc/cron.d/certbot 或 systemd timer
Certbot 会自动获取 Let's Encrypt 证书、修改 Nginx 配置、设置自动续期。整个过程不到 1 分钟。
适用场景:大多数场景,最简单的方式
手动配置(已有证书)
server {
listen 443 ssl http2;
server_name example.com;
ssl_certificate /etc/ssl/certs/example.com.pem;
ssl_certificate_key /etc/ssl/private/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256;
ssl_prefer_server_ciphers off;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
add_header Strict-Transport-Security "max-age=63072000" always;
root /var/www/html;
}
# HTTP → HTTPS 重定向
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}手动指定证书路径和安全参数。适合从其他 CA 购买的证书或企业内部 CA。
适用场景:已有证书文件、企业内部 CA、特殊安全要求