let’s encrypt + certbot 是最省心的全自动方案,支持一键申请、验证、部署及自动续期;需域名解析正确且80端口开放,certbot会自动配置nginx启用https并设置301跳转。

直接用 Let’s Encrypt + certbot 是最省心的方式,整个过程基本全自动,从申请、验证到部署一步到位,不需要手动下载或复制证书文件。
选 Let’s Encrypt 免费证书的原因
它由 Mozilla、Cisco 等机构支持,浏览器完全信任;证书有效期 90 天,但 certbot 可自动续期;全程命令行操作,适合 Linux 服务器(Ubuntu/Debian/CentOS 均支持)。
前提条件:域名已正确解析到你的服务器 IP,且服务器 80 端口对外可访问(Let’s Encrypt 会通过 HTTP 访问 http://yourdomain/.well-known/acme-challenge/ 来验证域名控制权)。
一键申请并配置 Nginx(推荐方式)
以 Ubuntu/Debian 为例:
- 安装 certbot 和 Nginx 插件:
sudo apt update && sudo apt install certbot python3-certbot-nginx - 运行命令申请并自动修改 Nginx 配置:
sudo certbot --nginx -d example.com -d www.example.com(把example.com换成你的域名) - certbot 会自动:
- 验证域名所有权
- 申请证书并保存到
/etc/letsencrypt/live/example.com/ - 修改对应 server 块,启用 443 端口、加载证书路径
- 添加 HTTP → HTTPS 强制跳转(301)
- 设置 systemd timer 自动续期(每天检查,提前 30 天续签)
手动配置证书(适用于已有证书文件)
比如你从腾讯云、阿里云或 FreeSSL.cn 下载了 Nginx 版证书,解压后得到 xxx.crt(或 fullchain.pem)和 xxx.key:
- 把两个文件上传到服务器,例如放到
/usr/local/nginx/ssl/目录下 - 编辑 Nginx 配置(如
/etc/nginx/conf.d/default.conf),在 server 块中添加或修改:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /usr/local/nginx/ssl/example.com.crt;
ssl_certificate_key /usr/local/nginx/ssl/example.com.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:...;
# 其他配置…
}
- 再加一个 80 端口的 server 块,实现强制跳转:
server { listen 80; server_name example.com; return 301 https://$host$request_uri; } - 检查语法:
sudo nginx -t,无报错则重载:sudo nginx -s reload
验证是否生效
浏览器访问 https://yourdomain.com,地址栏出现锁形图标即表示成功;也可用在线工具如 SSL Checker 查看证书链、过期时间、协议支持等细节。
注意:如果之前没装过 SSL 模块,执行 nginx -V 查看 configure arguments 中是否有 --with-http_ssl_module。没有的话需重新编译 Nginx,加上该参数再 make(不建议用 make install 覆盖原安装)。











