使用Certbot自签SSL证书
发表于
浏览量154
评论数0
使用Certbot自签SSL证书
简单介绍了如何通过 Certbot 安装、申请、续签 SSL 证书,并通过脚本与定时任务实现自动化管理。
前言
因为服务器用的是腾讯云,所以一直都是走腾讯云申请免费证书,但是由于上游供应商调整,“2024年4月25日起,腾讯云新签发的免费证书有效期调整为 90 天”。
本来一年我觉得就挺麻烦了,因为我二级域名也有很多,差不多快十个了,这下直接缩短到3个月 (它快到期了还会发短信,几乎每个月都会给我发,跟骚扰短信一样) 实在顶不住了,而且它免费申请次数还有限制,遂找个自动化的方案。
大致看了一下,尝试了一下 acme.sh 和 certbot 两种方案(叠甲:当然还有其他方案,我只尝试了这两种)。
acme.sh
基于Shell脚本的开源工具,网上教程也比较多一点,所以首先尝试用的它,但是一直申请失败,捣鼓了半天,放弃了,可能是我打开方式不对吧,转战certbot
。步骤
certbot
就很顺利,基本没遇到什么坑。记录一下步骤(linux):
安装:
sudo apt update && sudo apt install certbot
查看版本(检测是否安装成功):
certbot --version
证书申请:
sudo certbot certonly --standalone -d api.kasuie.cc
这里是使用的--standalone
模式,申请api.kasuie.cc
这个域名,然后它提供了多种模式用于申请证书,最常见的包括 --standalone
、--webroot
和 --nginx
等模式。
standalone
模式: 模式适用于服务器上没有运行任何 Web 服务(如 Nginx 或 Apache)的情况。它会启动一个临时的 Web 服务器来处理验证请求。webroot
模式适用于已经运行 Web 服务的情况。它会将验证文件放置在指定的 Web 根目录中供上游服务器验证。nginx
模式适用于服务器运行 Nginx 并希望 Certbot 自动配置 HTTPS 的情况。
......
查看已申请的证书
certbot certificates
可以看到申请的证书文件可以在/etc/letsencrypt/live/example.com
目录下找到,对应的如果需要进行配置使用,填写改文件路径就好了。
续签:
certbot renew
// 或者强制续签
certbot renew --force-renewal
使用这个命令貌似证书在到期前30天才能触发更新证书,否则会跳过,如果需要强制更新可以加上
--force-renewal
参数。
当然到这里只是自签一个证书,还不能全自动续签,因此还需要一个定时任务。
编写自动续签脚本
为实现证书的自动续签,可以编写一个简单的脚本,定时执行。
编写脚本:
sudo nano example.sh
// 或者
vim example.sh
在脚本写入:
certbot renew // 还可以根据实际情况可以添加 前置和后置钩子 --pre-hook "命令" --post-hook "命令"
保存之后,注意需要给脚本文件添加可执行权限:chmod +x example.sh
编写定时任务:
crontab -e
添加定时任务:
0 4 1 * * /usr/script/example.sh // 每个月第一天凌晨四点执行 根据自己情况来
完成设置后,可以运行
crontab -l
命令查看当前的定时任务,在里面找到上面写入的命令就算是成功了。这样就可以每个月第一天凌晨四点执行在example.sh
中编写的脚本命令了,也就是进行续签的操作啦。写在最后
地点: 成都
时间: 2024-12-30 17:47:35
心情:2025快到了,希望大家在健康的前提下都能暴富!