本案例演示,如何配置自动申请证书,并部署到腾讯云CDN,然后快要到期前自动更新证书并重新部署。
本地docker部署
1. 安装docker、docker-compose
1.1 安装docker
https://docs.docker.com/engine/install/
1.2 安装docker-compose
https://docs.docker.com/compose/install/linux/
2. 下载docker-compose.yaml文件
mkdir certd
cd certd
wget https://raw.githubusercontent.com/certd/certd/v2/docker/run/docker-compose.yaml
# 或者使用gitee地址
wget https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
# 根据需要修改里面的配置
# 1.修改镜像版本号
# 2.配置数据保存路径
# 3.配置certd_auth_jwt_secret
vi docker-compose.yaml
镜像版本号与release版本号同步:
https://github.com/certd/certd/releases
docker-compose.yaml
version: '3.3'
services:
certd:
# 镜像
# 1、 镜像版本号,建议改成固定版本号【可选】
image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
container_name: certd # 容器名
restart: unless-stopped # 自动重启
volumes:
# 2、 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下【可选】
- ./certd:/app/data
ports: # 端口映射
# 3、如果端口有冲突,可以修改第一个7001为其他不冲突的端口号【可选】
- "7001:7001"
dns:
# 如果出现getaddrinfo ENOTFOUND等错误,可以尝试修改或注释dns配置
- 223.5.5.5
- 223.6.6.6
- 8.8.8.8
- 8.8.4.4
environment: # 环境变量
- TZ=Asia/Shanghai
- certd_system_resetAdminPassword=false
- certd_cron_immediateTriggerOnce=false
- VITE_APP_ICP_NO=
- latest:默认是latest,也可以修改为CertD版本号
- ./data:本机挂载目录,用于持久化保存CertD数据,您可以修改为绝对路径
然后使用命令docker-compose up -d启动容器,然后输入http://your_server_ip:7001进行访问,默认账号密码:admin/123456,登录后务必修改。
基本使用
CertD的自动化流程如下截图所示。
我们需要先在授权管理,添加DNS授权,目前支持DNSPOD、腾讯、阿里云、华为云、CloudFlare等主流厂商DNS接入。
你域名使用的哪个厂商的DNS就选择哪个厂商进行接入!
接下来添加证书自动化流水线,根据自己的情况填写域名和邮箱等必填信息。
- 域名:如果需要泛域名证书可填写*.xxx.com,回车键还可以添加多个域名,Let's Encrypt是支持泛域名和多域名的,前提是这些域名使用的同一家DNS,如果主域名要使用记得把xxx.com也加上
- 证书提供商:默认选择Let's Encrypt就行了
- DNS提供商:你域名用的哪家服务商就选哪个
- 定时触发建议填写,这样后期可以自动续期,比如填写:0 0 4 * * *代表每天凌晨4点检测一次
添加完毕后,如果你需要立即申请SSL证书,手动点一下手动触发就行了,配置正确的情况下,一般几分钟就申请下来了。
申请前最好先把已有的_acme-challenge主机记录删除。
如果有配置邮件,也会有邮件提醒
添加通知邮箱
任务运行成功后,在这里可以下载证书
配置部署到腾讯云CDN的任务
添加步骤,如果有多个域名就创建多个步骤
填写域名选择授权
运行策略默认即可,如果上一次已经成功运行的,证书没有更新的时候再运行则会跳过
同时会继续执行新的部分