一直使用 acme.sh
来申请证书,涉及的证书除了一些网站 nginx
中使用,还包括家里的 nas
和 oss
等域名绑定的地方,部署方式各不相同,为了解决证书到期后手动下载上传部署证书的痛苦,这次直接使用自动申请,自动续期,自动部署来一次全部搞定。
证书管理工具有好几款,为啥选 certimate
?界面简洁,部署直接 docker
即可,查看了项目的 issue
记录维护良好,常用的域名供应商和部署方式基本都已支持,很好的满足需求,也就没再去试其他的了。
项目仓库
安装
直接使用项目仓库中的 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 SSL证书管理工具自动续期和部署域名证书
原文链接:https://beltxman.com/4428.html
若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。
请问使用需要梯子吗?
不需要,能拉到
certimate
镜像就行,拉镜像可以用各种docker
镜像站