Certbot 是一个自动化工具,可以帮助你申请和管理 Let’s Encrypt SSL 证书。以下是如何使用 Certbot 申请和管理 Let’s Encrypt 证书的详细步骤:
1. 安装 Certbot 和 Nginx 插件
首先,你需要安装 Certbot 和适用于 Nginx 的插件。
sudo apt update
sudo apt install certbot python3-certbot-nginx
2. 使用 Certbot 申请证书
Certbot 提供了一个简单的命令来自动配置 SSL 证书并更新 Nginx 配置文件。假设你的域名是 www.example.com
,执行以下命令:
sudo certbot --nginx -d www.example.com
这将做以下几件事:
- 自动与 Let’s Encrypt 通信并申请 SSL 证书。
- 自动配置 Nginx 以使用新的证书。
- 更新 Nginx 配置文件中的 SSL 设置。
申请中会让你输入你的邮箱:
安装完成后会有类似下面的提示:
3. 配置自动重定向(可选)
在申请证书时,Certbot 会自动尝试配置 HTTP 到 HTTPS 的重定向。如果没有自动配置,或者你希望手动配置,可以修改你的 Nginx 配置:
server {
listen 80;
server_name www.example.com;
return 301 https://$host$request_uri; # 强制 HTTP 重定向到 HTTPS
}
server {
listen 443 ssl http2;
server_name www.example.com;
ssl_certificate /etc/letsencrypt/live/www.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.example.com/privkey.pem;
# 其他 SSL 配置
}
4. 自动续期证书
Let’s Encrypt 的证书有效期为 90 天,因此你需要定期续期。Certbot 提供了一个自动续期的功能。你可以使用 cron
或 systemd
来定期运行续期命令。
要测试自动续期,运行以下命令:
sudo certbot renew --dry-run
如果测试成功,Certbot 会自动配置系统定期运行证书续期。通常情况下,Certbot 会自动将续期命令添加到系统的任务调度器中,确保证书在过期前得到更新。
5. 查看和管理证书
- 列出所有证书:
sudo certbot certificates
- 撤销证书:
sudo certbot revoke --cert-path /etc/letsencrypt/live/www.example.com/fullchain.pem
- 删除证书:
sudo certbot delete
6. 检查证书的有效性
你可以通过访问网站,或者使用以下命令检查证书是否正确安装并有效:
sudo systemctl status nginx
如果一切设置正确,你的 Nginx 应该已经成功使用 Let’s Encrypt 证书,网站访问时应当是安全的(HTTPS)。