在Ubuntu系统下,使用Nginx实现SSL自动续期可以通过Certbot工具来完成。Certbot是一个自动化的Let’s Encrypt客户端,可以轻松地为Nginx配置SSL证书并设置自动续期。以下是详细步骤:
首先,确保你的系统是最新的,然后安装Certbot和Nginx插件。
sudo apt update
sudo apt install certbot python3-certbot-nginx
使用Certbot获取SSL证书。你可以选择为单个域名或多个域名获取证书。
sudo certbot --nginx -d yourdomain.com
sudo certbot --nginx -d domain1.com -d domain2.com
在运行上述命令时,Certbot会提示你输入电子邮件地址、同意服务条款,并选择是否将Nginx配置文件重定向到Certbot的默认位置(通常是/etc/letsencrypt/options-ssl-nginx.conf)。
Certbot会自动修改你的Nginx配置文件以启用SSL。通常,它会创建一个符号链接,指向Certbot生成的配置文件。
sudo ln -s /etc/letsencrypt/options-ssl-nginx.conf /etc/nginx/options-ssl-nginx.conf
然后,重新加载Nginx以应用更改:
sudo systemctl reload nginx
Certbot会自动设置一个cron任务或systemd定时器来定期检查并续期证书。你可以通过以下命令查看定时器的状态:
sudo systemctl list-timers | grep certbot
如果你想手动触发续期,可以使用以下命令:
sudo certbot renew --dry-run
如果续期成功,Certbot会输出一条消息。如果证书即将过期,它会自动续期并重新加载Nginx。
为了确保自动续期正常工作,你可以模拟证书过期并观察Certbot的行为。
sudo certbot renew --dry-run --post-hook "systemctl reload nginx"
这将模拟证书续期并重新加载Nginx。
通过以上步骤,你可以在Ubuntu系统下使用Certbot为Nginx配置SSL证书,并设置自动续期。Certbot的自动化功能大大简化了SSL证书的管理过程。