一直使用
acme.sh 来申请证书,涉及的证书除了一些网站
nginx 中使用,还包括家里的
nas 和
oss 等域名绑定的地方,部署方式各不相同,为了解决证书到期后手动下载上传部署证书的痛苦,这次直接使用自动申请,自动续期,自动部署来一次全部搞定。

证书管理工具有好几款,为啥选
certimate?界面简洁,部署直接
docker即可,查看了项目的
issue 记录维护良好,常用的域名供应商和部署方式基本都已支持,很好的满足需求,也就没再去试其他的了。
项目仓库
usual2970/certimate
安装
直接使用项目仓库中的
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
运行起来就可以登录进去就可以开始配置了,记得修改默认用户和密码,根据需要配置消息推送。
默认账号密码:
用户名:admin@certimate.fun
密码:1234567890
配置自动申请
- 配置证书颁发机构,支持
Let's Encrypt,ZeroSSL 和 Google Trust Services,我这里使用的是 ZeroSSL。使用 ZeroSSL 需要获取 EAB_KID 和 EAB_HMAC_KEY,登录 ZeroSSL 官网进下图页面生成一下就有了。
- 添加域名,添加域名解析的
DNS 服务商授权,即可自动申请。如果同时使用 www 和主域名比如我的这个博客站,填写域名时泛域名和主域名都写上即可:
配置自动部署
certimate 非常方便的一点就是一个证书支持多地部署,比如我上面申请的这个泛域名证书,在自动续期后,可以同时部署到博客所在服务器,阿里云
OSS 中指定
bucket 域名绑定证书,我一起部署了三个网站加一个
OSS。
OSS 域名证书部署
因为权限太大,不建议直接用阿里云主账号的
AccessKey 进行部署,而是在
RAM访问控制中创建一个专门用来部署的子账户,在子账户的授权上我踩坑了一会儿,下面是可行的授权。

这个子账户需要授权:
- 管理云盾证书服务的权限
AliyunYundunCertFullAccess
- 管理CDN的权限
AliyunCDNFullAccess
- 管理对象存储服务(OSS)权限
AliyunOSSFullAccess
这里可以更小化权限可以尝试把
AliyunOSSFullAccess 替换更小的权限,我测试下来
oss:PutCname 应该是必须的,可以自行尝试减少权限。
SSH 部署
SSH 部署相对很简单,指定部署目录,支持前置命令和部署后命令,对于生产环境可以使用这些命令备份旧证书,将新证书部署到一个目录然后
cp 到正确的目录,以便出问题了快速恢复,支持私钥或密码登录服务器,记得确认
SSH 登录用户拥有部署目录的写入权限。
总结
certimate 虽然是个小工具,但是对于维护很多域名证书的人员来说简直是太香了,再次感谢一下项目作者,这样的好项目大家多多的
Star 起来。
这个证书是免费的吗?
是免费的
请问使用需要梯子吗?
不需要,能拉到
certimate镜像就行,拉镜像可以用各种docker镜像站