使用 Let's Encrypt 和 Certbot 为 Nginx 服务器颁发免费 SSL 证书
使用 Let's Encrypt 和 Certbot 为 Nginx 服务器颁发免费 SSL 证书的详细步骤
步骤1:前提条件
你的域名(例如 mydomain.com)必须通过 DNS 指向你的服务器 IP。
服务器上已安装并运行 Nginx。
如果还未安装 Nginx,可以运行下面命令进行安装:
sudo apt update
sudo apt install nginx
步骤2:安装 Certbot 和 Nginx 插件
安装 Certbot 及其 Nginx 插件包:
sudo apt install certbot python3-certbot-nginx
步骤3:准备好你的 Nginx 域名配置
确保你已经为你的域名创建了 Nginx 服务器块配置,文件路径通常是 /etc/nginx/sites-available/mydomain.com
示例最简配置:
text
server {
listen 80;
listen [::]:80;
server_name mydomain.com;
root /var/www/mydomain.com;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
启用站点(如果还未启用):
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
步骤4:自动获取并安装 SSL 证书
运行 Certbot 并使用 Nginx 插件自动获取和安装证书:
sudo certbot --nginx -d mydomain.com
Certbot 会提示你输入邮箱地址并同意 Let's Encrypt 的服务条款。
Certbot 会自动通过 HTTP-01 挑战验证你对域名的所有权。
Certbot 会自动修改你的 Nginx 配置以使用 SSL 证书。如果你选择的话,Certbot 会设置 HTTPS 强制跳转。
步骤5:验证证书安装
证书安装完成后,Certbot 会显示证书路径和成功信息。此时你可以通过浏览器访问:
https://mydomain.com
检查 HTTPS 连接。
步骤6:确保自动续期正常工作
Let's Encrypt 证书有效期为90天,Certbot 会自动设置续期任务。
你可以通过以下命令测试续期功能:
sudo certbot renew --dry-run
如果成功,证书会自动续期,无需手动干预。