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

一直使用 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 起来。

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

原文链接:https://beltxman.com/4428.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

使用 certimate SSL证书管理工具自动续期和部署域名证书”上有 2 条评论;

发表评论

您的电子邮箱地址不会被公开。

Scroll to top