网站 HTTPS 升级实录:Nginx + Let's Encrypt
为什么需要 HTTPS
- 加密传输,防止内容被劫持或篡改
- 浏览器地址栏显示小锁,用户更信任
- SEO 友好,搜索引擎优先收录 HTTPS 站点
前置条件
- 域名 DNS 已解析到服务器 IP
- 服务器 80 端口可访问(证书验证需要)
- 有可用的联系邮箱(用于到期提醒)
签发证书
使用 Let’s Encrypt 的官方工具 certbot:
# 安装 certbot 及 nginx 插件
sudo apt install -y certbot python3-certbot-nginx
# 自动配置 nginx 并签发证书
sudo certbot --nginx -d felix827.xyz -d www.felix827.xyz -m you@example.com --agree-tos --redirect
--redirect 参数会自动配置 HTTP 强制跳转到 HTTPS。
nginx 站点配置
server {
listen 80;
server_name felix827.xyz www.felix827.xyz;
return 301 https://www.felix827.xyz$request_uri;
}
server {
listen 443 ssl;
server_name felix827.xyz www.felix827.xyz;
ssl_certificate /etc/letsencrypt/live/felix827.xyz/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/felix827.xyz/privkey.pem;
root /var/www/felix827.xyz/public;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
自动续期
证书有效期 90 天,certbot 安装时会自动创建续期任务:
# 查看续期任务
systemctl list-timers | grep certbot
# 手动测试续期(不实际更新)
sudo certbot renew --dry-run
小结
整个升级流程 10 分钟内即可完成,之后无需人工干预,证书会自动续期。