AI编程生活评测

使用 certimate SSL证书管理工具自动续期和部署域名证书

编程笔记 / 2024-11-13 / 3 min
一直使用 acme.sh 来申请证书,涉及的证书除了一些网站 nginx 中使用,还包括家里的 nasoss 等域名绑定的地方,部署方式各不相同,为了解决证书到期后手动下载上传部署证书的痛苦,这次直接使用自动申请,自动续期,自动部署来一次全部搞定。 certimate证书管理工具 证书管理工具有好几款,为啥选 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

配置自动申请

  1. 配置证书颁发机构,支持 Let's EncryptZeroSSLGoogle Trust Services,我这里使用的是 ZeroSSL。使用 ZeroSSL 需要获取 EAB_KIDEAB_HMAC_KEY,登录 ZeroSSL 官网进下图页面生成一下就有了。
ZeroSSL EAB_KID EAB_HMAC_KEY
  1. 添加域名,添加域名解析的 DNS 服务商授权,即可自动申请。如果同时使用 www 和主域名比如我的这个博客站,填写域名时泛域名和主域名都写上即可:
certimate 添加域名

配置自动部署

certimate 非常方便的一点就是一个证书支持多地部署,比如我上面申请的这个泛域名证书,在自动续期后,可以同时部署到博客所在服务器,阿里云 OSS 中指定 bucket 域名绑定证书,我一起部署了三个网站加一个 OSS

OSS 域名证书部署

因为权限太大,不建议直接用阿里云主账号的 AccessKey 进行部署,而是在 RAM访问控制中创建一个专门用来部署的子账户,在子账户的授权上我踩坑了一会儿,下面是可行的授权。 certimate OSS域名证书部署 这个子账户需要授权:
  • 管理云盾证书服务的权限 AliyunYundunCertFullAccess
  • 管理CDN的权限 AliyunCDNFullAccess
  • 管理对象存储服务(OSS)权限 AliyunOSSFullAccess
这里可以更小化权限可以尝试把 AliyunOSSFullAccess 替换更小的权限,我测试下来 oss:PutCname 应该是必须的,可以自行尝试减少权限。

SSH 部署

SSH 部署相对很简单,指定部署目录,支持前置命令和部署后命令,对于生产环境可以使用这些命令备份旧证书,将新证书部署到一个目录然后 cp 到正确的目录,以便出问题了快速恢复,支持私钥或密码登录服务器,记得确认 SSH 登录用户拥有部署目录的写入权限。

总结

certimate 虽然是个小工具,但是对于维护很多域名证书的人员来说简直是太香了,再次感谢一下项目作者,这样的好项目大家多多的 Star 起来。
  1. 小杰克 2025-03-08 · 20:18 回复

    这个证书是免费的吗?

    1. 行星带 2025-03-10 · 13:15 回复

      是免费的

  2. abc 2024-11-15 · 15:15 回复

    请问使用需要梯子吗?

    1. 行星带 2024-11-18 · 10:59 回复

      不需要,能拉到 certimate 镜像就行,拉镜像可以用各种 docker 镜像站

点击刷新