在Ubuntu上使用Nginx和Let’s Encrypt实现SSL证书的自动续期,可以按照以下步骤进行:
Certbot是一个自动化的工具,用于获取和续期Let’s Encrypt证书。你可以使用以下命令安装Certbot:
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取SSL证书。假设你的域名是example.com,你可以运行以下命令:
sudo certbot --nginx -d example.com -d www.example.com
Certbot会自动配置Nginx并重启Nginx服务以应用新的SSL证书。
Certbot会创建一个定时任务(cron job)来自动续期证书。你可以检查这个定时任务是否存在:
sudo crontab -l | grep certbot
你应该会看到类似以下的条目:
0 */12 * * * root certbot renew --post-hook "systemctl reload nginx"
这个定时任务每天检查两次证书是否需要续期,并在续期后重新加载Nginx服务。
你可以手动测试续期过程,确保一切正常工作:
sudo certbot renew --dry-run
如果没有任何错误信息,说明续期过程是正常的。
Certbot会在续期成功后发送一封电子邮件通知你。你可以在Certbot的配置文件中设置电子邮件地址:
sudo nano /etc/letsencrypt/cli.ini
添加或修改以下行:
email = your-email@example.com
如果续期失败,Certbot会尝试再次续期。如果连续多次续期失败,你需要手动处理。你可以检查Certbot的日志文件来了解失败原因:
sudo tail -f /var/log/letsencrypt/renewal.log
通过以上步骤,你可以在Ubuntu上使用Nginx和Let’s Encrypt实现SSL证书的自动续期。Certbot会自动处理证书的获取和续期,并通过定时任务确保证书始终有效。