kasuie page cover

使用Certbot自签SSL证书

发表于

浏览量154

评论数0

使用Certbot自签SSL证书

简单介绍了如何通过 Certbot Certbot 安装、申请、续签 SSL 证书,并通过脚本与定时任务实现自动化管理。

前言

因为服务器用的是腾讯云,所以一直都是走腾讯云申请免费证书,但是由于上游供应商调整,“2024年4月25日起,腾讯云新签发的免费证书有效期调整为 90 天”。哭哭

本来一年我觉得就挺麻烦了,因为我二级域名也有很多,差不多快十个了,这下直接缩短到3个月 (它快到期了还会发短信,几乎每个月都会给我发,跟骚扰短信一样) 实在顶不住了,而且它免费申请次数还有限制,遂找个自动化的方案。

大致看了一下,尝试了一下 acme.shacme.shcertbotcertbot 两种方案(叠甲:当然还有其他方案,我只尝试了这两种)。

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
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快到了,希望大家在健康的前提下都能暴富!

emo
最后修改:2025年01月02日

留下你的评论吧

http(s)://

回到顶部