使用 Certimate 实现自动续签 SSL 证书

使用 Certimate 实现自动续签 SSL 证书,不用再担心网站 SSL 证书过期了!

上周三金部署的几个 Web 应用的 SSL 证书都过期了

之前呢,都是使用的付费产品来做的自动续期,省事倒是省事,就是得花钱。

这次想了想,觉得自己本来就是干这行的,怎么搞个自动续期还要给别人掏钱,Github 上啥没有!

折(bai)腾(piao)!必须折(bai)腾(piao)!

开源三大应用

在 Github 上逛了一圈,发现开源的 SSL 证书管理工具还不少,比较出名的有:

  • Certimate :Github 有 7.5k Star。可以自动申请、部署 SSL 证书,并在证书即将过期时自动续期;
  • Certd :Github Star 数 3.7k。全自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、宝塔等;HTTPS 证书、PFX 证书、TLS 证书自动续签自动部署;
  • All in SSL :Github Star 数 2.9k。集证书申请、管理、部署和监控于一体的 SSL 证书全生命周期管理工具。

花了点时间大概看了下这三个应用的文档,发现其实大同小异。

其中 Certimate 支持在 1Panel 的应用商店中一键安装,我就直接搜索安装了~

官方文档:docs.certimate.me/

Docker 部署

有的小伙伴可能没有 1Panel 或者宝塔面板,这里再提供一下 Docker Compose 部署的方式。

bash 复制代码
mkdir -p ~/.certimate && \
cd ~/.certimate && \
curl -O https://raw.githubusercontent.com/certimate-go/certimate/refs/heads/main/docker/docker-compose.yml && \
docker compose up -d

复制上述命令到服务器终端,即可通过 Docker Compose 一键部署 Certimate~

如果不想使用 Docker Compose 也没关系,单纯使用 docker run 也 OK:

bash 复制代码
# 拉取镜像
docker pull registry.cn-shanghai.aliyuncs.com/certimate/certimate:latest
# 启动容器
docker run -d \
--name certimate \
--restart unless-stopped \
-p 8090:8090 \
-v /etc/localtime:/etc/localtime:ro \
-v /etc/timezone:/etc/timezone:ro \
-v $(pwd)/data:/app/pb_data \
registry.cn-shanghai.aliyuncs.com/certimate/certimate:latest

运行起来之后,我们就可以通过 IP:8090 来访问 Certimate 了!

配置

Certimate 的初始账号和密码为:

  • 账号:admin@certimate.fun
  • 密码:1234567890

登录之后,大家记得先去系统设置中把账号和密码修改了。

完了也别着急去新建工作流,而是先去「授权管理」新建授权。在 Certimate 上,我们一般只需要配置三个授权即可:

  • DNS 提供商:你的 DNS 托管方,通常等同于域名注册商,用于在申请证书时管理你的域名解析记录。三金使用的是阿里云 ECS,域名也是在阿里云买的,所以这里就授权了下阿里云;

AccessKeyId 和 AccessKeySecret 可以在阿里云控制台上进行获取,具体步骤为:

  • 到 RAM 平台创建一个 RAM 账号,专门用来做这种第三方授权的 AK\SK,好处就是相对直接使用主账号来说比较安全;
  • 然后通过 hover 头像出来的「AccessKey」按钮到 AccessKey 页面去创建一个 AK/SK。

创建好之后一定要妥善保存到本地哦~

  • 主机提供商:你的服务器或者云服务的托管方,用于部署签发的证书。我这里使用「远程主机」来存放申请下来的证书。

服务器地址一定要写你真实的服务器地址。

  • 通知渠道:用于推送消息通知的应用。这里选了飞书(飞书的配置,实打实讲是非常方便的)

证书颁发机构 Certimate 内置了几个,倒是免去了我们再动手操作的麻烦。

新建工作流

设置完授权之后,我们就可以到「仪表盘」中「新建工作流」了:

选择标准模板进行创建:

名称大家自己起一个就行,到流程编排页面后,我们修改已有的节点即可:

  • 首先是开始节点,里面就两个选项:自动触发和手动触发。
  • 接下来是申请证书的节点,里面需要输入域名、邮箱和配置好的 DNS 提供商;
  • 第三步的时候会根据成功或者失败走入不同分支。失败会走到通知节点,需要选择通知渠道;
  • 申请证书成功会走到部署节点,这里选择你要部署证书的主体,比如你要部署到远程服务器上还是 CDN 加速上;
  • 最后按照前一步任务是否成功,会走到不同的分支中。如果成功,那整个流程就走完结束了;如果失败会走到另外一个通知节点上,通知用户部署失败。

至此!配置完成。

让我们点击右上角的「发布更改」,再点击「执行」就可以了。

可以在执行历史中看到工作流的执行情况,如果部署成功,以远程服务器为例,可以通过 SSH 登录服务器,在对应目录下查看是否有新的证书文件生成即可~

最后,大家需要注意的是,这个路径一定得是你 Nginx 里的 SSL 证书配置路径,不然不生效哦~

相关推荐
怣疯knight3 小时前
Flocus+Github实现浏览器书签同步
github
proud12124 小时前
开源的 CSS 动画库
前端·css·开源
ajassi20005 小时前
开源 C# 快速开发(三)复杂控件
开发语言·开源·c#
黄金旺铺7 小时前
【GitHub Issue Fetcher】 轻松整理项目问题与解决方案知识库
github·issue
算家计算7 小时前
阿里最新开源Wan2.2-Animate-14B 本地部署教程:统一双模态框架,MoE架构赋能电影级角色动画与替换
人工智能·开源
逛逛GitHub7 小时前
GitHub 上贼牛逼浏览器自动化 MCP,已有 2 万人点赞。
github·mcp
AI分享官7 小时前
低代码平台+MonkeyCode混合开发:3天上线一个App的野路子实操
github·ai编程
什么半岛铁盒8 小时前
C++项目:仿muduo库高并发服务器--------Any类的实现
linux·服务器·数据库·c++·mysql·github