Certimate:自动更换 CDN 证书
在之前的文章中,我介绍过 Certbot 自动更新 SSL 证书的方案,但这种方案对于 CDN 部署并不适用,导致我只能每隔两个月手动更换证书。今天,我将介绍 Certimate,它能够有效解决这个问题。
Certimate 支持对阿里云、七牛云等 CDN 服务的 SSL 证书进行更新。同时,它可以在证书过期前 10 天自动续期,并每日检查证书状态,确保在快要过期时自动申请新证书并部署到目标服务上。

部署代码
推荐通过 Docker Compose 部署 Certimate,详情请见 Docker Compose 部署教程。以下是 Docker Compose 配置示例:
version: "3.0"
services:
certimate:
image: registry.cn-shanghai.aliyuncs.com/usual2970/certimate:latest
container_name: certimate_server
ports:
- 8090:8090
volumes:
- /volume1/docker/certimate/data:/app/pb_data
restart: unless-stopped
执行完上述安装操作后,在浏览器中访问 http://<你的服务器IP或域名>:8090
以进入 Certimate 管理页面。
用户名:admin@certimate.fun
密码:1234567890
建议你点击右上角的「账户」>「偏好设置」,修改默认账户和密码。
使用问题
页面无法打开
如果无法打开页面,请访问后台 http://<你的服务器IP或域名>:8090/_
,选择 Collections > domains,查看是否有数据问题。
SERVFAIL 错误处理
若遇到以下 SERVFAIL 报错:error: one or more domains had a problem: [1.newzone.top] propagation: time limit exceeded: last error: authoritative nameservers: NS dns20.hichina.com.:53 returned SERVFAIL for _acme-challenge.1.newzone.top.
请按以下步骤检查:
- 确认域名设置是否正确。
- 进入 域名列表 > 域名编辑 > 高级设置 > 自定义 DNS(域名服务器),将 DNS 设置为公共 DNS,例如
8.8.8.8
。 - 或尝试将 DNS 传播检查超时时间修改为 600。
此外,若路由器固件出现问题,也可能导致此错误。修改路由器 DNS 或重新刷机后,问题可能会得到解决。
CDN 泛域名报错
在 Certimate v0.1.9 中,对 CDN 使用泛域名证书可能会出现报错 getDomainInfo failed: req failed: ToRequest failed: status code is not 200: 404
。
此问题已向开发者反馈过,可能会在后续版本中修复。