type
status
date
slug
summary
tags
category
icon
password
在网络安全日益重要的今天,SSL/TLS 证书对于确保网站的安全性和可信度起着至关重要的作用。Let's Encrypt 是一个免费、自动化和开放的证书颁发机构,为广大网站所有者提供了免费的 SSL/TLS 证书,极大地推动了互联网的安全发展。
然而,Let's Encrypt 颁发的免费证书的有效期曾经为 90 天,现在缩短为 3 个月。这样的短有效期是为了确保证书的安全性和有效性,及时更新可能出现的安全漏洞和问题,同时也鼓励证书使用者保持对证书管理的关注和维护。但对于网站所有者来说,手动每三个月更新一次证书是一项繁琐且容易被遗忘的任务。如果证书过期未及时更新,可能会导致网站出现安全警告,影响用户信任度和访问体验。因此,实现证书的自动续期就变得尤为重要。
一、安装步骤
1.1 安装 Certbot
- 在不同的操作系统上安装 Certbot 的方法会有所不同。以下是一些常见操作系统的安装方法:
- Ubuntu/Debian:
- CentOS/RHEL:
2. 安装完成后,可以通过运行以下命令来检查 Certbot 是否安装成功:
如果是其他操作系统,可以查看: https://certbot.eff.org/instructions
1.2 获取证书
- 使用 Certbot 获取证书的命令格式如下:
- -nginx:表示使用 Nginx 插件来配置证书。如果你的 Web 服务器是其他类型,可以使用相应的插件,如--apache等。
- d example.com -d www.example.com:指定要为哪些域名获取证书。可以指定多个域名,用空格隔开。
- 运行命令后,Certbot 会引导你进行一些配置,例如同意服务条款、设置邮箱等。按照提示完成操作后,Certbot 会为指定的域名生成证书,并将其存储在相应的位置。
1.3 配置自动续期
- Certbot 可以通过定时任务来实现证书的自动续期。在大多数系统中,可以使用cron来设置定时任务。
- 打开终端,输入以下命令来编辑cron任务:
- 在打开的文件中添加以下内容:
说明
- 0 0,12 * * *:表示每天的 0 点和 12 点执行任务。你可以根据自己的需求调整这个时间。
- /usr/bin/certbot renew --quiet:执行 Certbot 的续期命令,--quiet参数表示静默模式,不输出过多的信息。
- service nginx reload:如果你的 Web 服务器是 Nginx,在续期完成后重新加载 Nginx 服务,使新的证书生效。如果你的 Web 服务器是其他类型,将此命令替换为相应的服务重新加载命令。
- 保存文件并退出。现在,Certbot 将会按照你设置的时间自动续期证书。
1.4 检查证书续期状态
- 你可以随时运行以下命令来检查证书的续期状态:
certbot renew --dry-run
- -dry-run参数表示进行一次模拟续期,不会实际更新证书,但会显示如果进行续期会发生的情况。
- 该命令会输出证书的到期时间、是否需要续期等信息。如果显示“Your existing certificate has not expired yet and there is nothing to do.”,则表示证书目前不需要续期。
通过以上步骤,你可以使用 Certbot 轻松实现证书的自动续期,确保你的网站始终使用有效的 SSL/TLS 证书,提高网站的安全性和可信度。
二、通配符域名的安装
然而,很多时候,我们需要对通配符域名(也就是
*.example.com
格式的域名)进行证书续期,这个时候上面的步骤就不够用了。不管是申请还是续期,只要是通配符证书,只能采用 dns-01 的方式校验申请者的域名,也就是说 certbot 操作者必须手动添加 DNS TXT 记录。
2.0 准备工作
只需要将脚本下载到服务器上,并且配置好对应的 服务 Open API 密钥即可
参数说明
- certonly:表示采用验证模式,只会获取证书,不会为web服务器配置证书
- -manual:表示插件
- -preferred-challenges dns:表示采用DNS验证申请者合法性(是不是域名的管理者)
- -dry-run:在实际申请/更新证书前进行测试,强烈推荐
- d:表示需要为那个域名申请证书,可以有多个。
- -manual-auth-hook:在执行命令的时候调用一个 hook 文件
- -manual-cleanup-hook:清除 DNS 添加的记录
参数 | 参数使用说明 |
--manual-auth-hook | 在执行命令的时候调用的 hook 脚本文件,用于鉴权使用 |
--manual-cleanup-hook | 在执行命令的时候调用的 hook 脚本文件,用于清理 DNS TXT Record |
2.1 安装 Certbot
同1.1步骤,这里不赘述了
2.2 获取证书
2.3 更新证书
三、其他
3.1 如何查看证书过期时间?
命令行方式
会打印出证书到期时间,如下所示
Web 页面直接查看
打开对应网站,点击浏览器链接输入栏旁的锁图样,点击连接安全,点击证书图样,即可打开证书查看,如下图所示:
参考
- 作者:eachenkuang
- 链接:https://kuangyichen.com/article/certbot-auto-renew
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。