使用 Certbot 实现 Nginx 证书自动续期
引言
在网络安全日益重要的今天,SSL/TLS 证书对保障网站安全与可信度起着关键作用。Let’s Encrypt 作为免费、自动化和开放的证书颁发机构,为广大网站提供免费的 SSL/TLS 证书,有力推动了互联网安全的发展。
然而,Let’s Encrypt 颁发的证书有效期已从早期的一年缩短至现在的三个月。缩短有效期有助于提升安全性,能够及时应对潜在的安全漏洞,并促使网站管理者更积极地维护证书。但对于网站运营者而言,每三个月手动更新一次证书不仅繁琐,也容易因疏忽/遗忘而导致证书过期。一旦证书过期未续,网站可能会触发安全警告,影响用户体验和网站信誉。因此,实现证书自动续期显得尤为必要。
什么是Certbot
Certbot 是一款由Mozilla维护的开源项目,同时也是由Electronic Frontier Foundation (EFF) 创建的,它主要用于自动化获取和安装 SSL/TLS 证书,特别是与 Let’s Encrypt 服务结合使用时,使得网站的 HTTPS 化变得简单且免费。
安装Certbot
- 在不同的操作系统上安装 Certbot 的方法会有所不同。以下是一些常见操作系统的安装方法:
- Ubuntu/Debian:
sudo apt-get update sudo apt-get install certbot sudo apt-get install python3-certbot-nginx - CentOS/RHEL:
sudo yum install epel-release sudo yum install certbot sudo yum install python3-certbot-nginx
- Ubuntu/Debian:
- 安装完成后,可以通过运行以下命令来检查 Certbot 是否安装成功:
certbot --version
签发证书
在签发过程中需要保证域名已完成解析,中途会要求输入email地址并选择是否同意相关协议。
前提条件:需先完成nginx的站点conf配置,再进行证书的签发。
certbot --nginx -d yourdomain
使用 Certbot 的 nginx 插件自动为 nginx 服务器上的 yourdomain 域名获取并安装 SSL/TLS 证书。
通过此方法安装的证书文件通常位于/etc/letsencrypt/live/yourdomain/目录下,包括fullchain.pem(证书链)和privkey.pem(私钥)。
由于使用了nginx插件,certbot会自动更改nginx对应站点的conf配置,无需手动重复更改。
自动续签配置
这是最关键的一步,好消息是Certbot 在安装和首次使用时,会自动配置好续期机制。
你可以通过以下方式查看其状态:
-
检查 Systemd 定时器 (如果存在):
sudo systemctl status certbot.timer确保其状态为 active。若未运行,可执行 sudo systemctl enable --now certbot.timer 来启动并设置开机自启。
-
测试自动续期是否正常
建议使用 --dry-run 参数模拟一次续期过程,以验证配置是否正确,而不会实际更改证书。sudo certbot renew --dry-run如果输出包含 Congratulations, all renewals succeeded 或类似信息,则表示测试通过。
更多推荐
所有评论(0)