告别手动更新,实现跨平台 SSL 证书自动化部署

首先…

现如今,https 已广泛应用于各类站点和服务当中。然而,随着 SSL 证书有效期的逐次缩水,频繁、重复地部署 SSL 证书已成为令人头疼的一件事。

本次介绍的工具是 Certimate – 一款开源、自部署的 SSL 证书管理工具 。它通过可视化编辑,将申请、部署和续期证书的全流程自动化 。

使用 Certimate,你只需要在初次使用时在后台配置好平台和工作流,Certimate 就会自动向 Let’s Encrypt 等证书颁发机构申请证书,然后自动部署到你指定的部署平台(如 CDN、负载均衡、Kubernetes 、R2 等),并在证书到期前自动续期,以及在完成/出错时通过各类渠道推送通知 。


部署 Certimate

Certimate 支持二进制和 Docker 两种部署方式,推荐 Docker 部署,迁移/升级都更方便。

通过 Docker 部署

首先,在准备部署的目录下创建 docker-compose.yml 文件:

version: "3.0" services: certimate: image: registry.cn-shanghai.aliyuncs.com/usual2970/certimate:latest container_name: certimate_server ports: - 8090:8090 volumes: - ./data:/app/pb_data restart: unless-stopped

然后,执行 docker compose up -d 启动服务。访问 http://IP:8090 或查看 Log 中的登录信息,并使用以下默认账户登录:

admin@certimate.fun
1234567890

注意:如果通过 Docker 部署 Certimate,工作流中“本地部署”目标指向的是容器内部,而非宿主机(运行 Certimate 的服务器)。

如需部署到宿主机,需要使用二进制部署。

二进制部署

GitHub Releases 下载对应系统压缩包,解压后在同目录内执行 ./certimate serve。

如需给 Certimate 管理页面自身配置 HTTPS 并添加域名,可通过 Nginx 进行反代。

配置 Certimate

第一步:添加授权

授权分为两类,需要分别配置:

  1. DNS 服务商授权:用于证明域名所有权(DNS-01 验证)。Certimate 会自动添加和删除 ACME 验证所需的 TXT 记录。
  2. 部署目标授权:用于将证书部署到目标服务(如 CDN、负载均衡、服务器)。

在后台“授权管理”中添加。不同服务商的密钥字段不同,例如阿里云需要 AccessKey ID + AccessKey Secret,腾讯云需要 SecretId + SecretKey,这些内容均可在各个云平台的“账号-安全”中找到。

Tips:为子账号授权时,至少需要授予 DNS 解析管理权限和对应部署目标的读写权限。腾讯云用户可参考为子账号绑定自定义策略,同时授予 DNS、EdgeOne、SSL 证书的控制权。直接创建主账号的密钥无需此步骤,但可能会增加安全风险。

第二步:创建工作流

在后台“工作流”页面点击新建,按顺序配置以下节点:

2.1 开始节点——触发方式

· 手动:用于首次测试验证。
· 定时:启用后需设置 Cron 表达式(如 10 1 * * * 表示每日凌晨 1:10 执行)。启用定时模式的同时需将工作流状态设为“启用”。

2.2 申请证书节点——参数

· 域名:支持单域名、多域名(用分号分隔)、泛域名(如 *.example.com)。
· 证书颁发机构(CA) :可选 Let’s Encrypt、ZeroSSL、Buypass、Google Trust Services 等。
· 密钥算法:RSA(兼容性更好)或 EC256(性能更优)。
· DNS 提供商:选择已添加授权的 DNS 服务商。若域名托管商不在支持列表,可使用 CNAME 方式解决:在域名托管商后台将 _acme-challenge.目标域名 CNAME 到某个支持列表内域名的 _acme-challenge 子域名,然后在 Certimate 中 DNS 提供商选择支持列表内的授权即可。
· 通知:用于接收证书到期提醒(Let’s Encrypt 要求填写)。
· 跳过续期天数:默认 30 天,即证书有效期剩余少于该天数时触发续期,反之则跳过申请续期。

2.3 部署证书节点——目标位置

选择已添加授权的部署目标(如阿里云 CDN、腾讯云 EdgeOne、SSH 服务器、Kubernetes Secret 等)。

某些服务需填写某些额外参数,如 CDN 的加速域名、EdgeOne 的站点 ID。

2.4 通知节点(可选)

支持邮件、钉钉、飞书、企业微信、Webhook 等渠道,配置接收人地址即可在工作流执行成功或失败时收到通知,具体通知内容/逻辑可自定义。

WenBlog 的 SSL 证书工作流

第三步:发布/验证

完成所有节点配置后,点击“发布”保存工作流。系统会立即执行一次任务。

在“执行记录”中可查看日志,确认申请和部署是否成功。

确认无误后,将工作流状态切换为“启用”,定时触发即生效。

Tips:

· 多域名/单机多服务:在域名配置中设置“域名变量”(如 key1=val1; key2=val2),部署证书时可在证书路径或命令中使用 ${key1} 引用,实现不同域名部署到不同路径。
· 一个证书部署到多台服务器:创建“部署授权组”,将多个 SSH 主机授权加入同一组,然后在工作流中选用该授权组即可。
· 通过终端管理:Certimate 还提供 CLI 工具,支持通过命令行列出、执行工作流等操作,适合脚本化集成(如与 1Panel 等面板组建自动化 Flow,实现面板的 IP SSL)。

 拓展

Certimate Docs

上一篇