Certd自动化申请和部署SSL证书并配置https
服务器使用的华为云,之前SSL证书通过配置Cloudflare的DNS实现的,最近华为云备案提示需修改解析至境内华为云IP,若解析境外IP,域名无需备案,需注销或取消接入备案信息,改为使用Certd自搭建证书管理工具,自动申请、续签、部署SSL证书
Certd部署
使用Docker方式部署1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# 创建目录
mkdir certd
# 进入目录
cd certd
# 下载docker-compose.yaml文件,或者手动下载放到certd目录下
wget https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
# 可以根据需要修改里面的配置
# 1.修改镜像版本号【可选】
# 2.配置数据保存路径【可选】
# 3.修改端口号【可选】
vi docker-compose.yaml # 【可选】
# 启动certd
docker compose up -d
其他部署方式可参照Certd部署文档
创建证书自动化流程
本示例演示从创建证书申请任务到自动部署证书全流程
申请证书->部署证书->设置定时执行->设置邮件通知
准备工作
- 已部署CertD服务(可官方Demo自助注册体验 https://certd.handfree.work/ )
- 注册一个域名(支持阿里云万网、腾讯云DnsPod、华为云)
- 准备好以上DNS解析服务商的
AccessKey和AccessSecret - 证书要部署的目标(可选,单纯当成证书申请工具用也不错)
自动化流水线创建
创建证书申请部署流水线

需要添加域名的DNS解析服务商的授权
流水线创建成功
流水线详情界面

到这一步申请证书就已经配置完成了。
点击手动触发,就可以申请证书了。
接下来演示如何添加部署任务
添加部署到阿里云CDN任务
点击添加任务
选择任务类型
填写任务参数
此处,我是用的华为云,在【华为云控制台】—【内容分发网络CDN】,购买了流量包,开启CDN服务并配置好域名之后,在CDN加速域名选项才可以选择
点击确定,部署到CDN任务配置成功
添加部署到服务器主机任务
点击新任务,弹出添加任务界面
先选择上传到主机任务
填写任务参数,比如证书保存路径
需要添加主机ip、用户名、密码,只需添加一次,后续其他任务可以复用
然后添加第二个任务,执行主机命令,部署证书
选择执行脚本命令任务
编写脚本,选择之前添加的主机
点击确定,部署到主机任务配置成功
手动触发执行任务,测试一下

点击任务可以查看状态和日志
这里执行失败,可以查看错误日志

修改正确后,重新执行
可以看到前面执行过的就会跳过,不会重复执行
查看证书部署效果
可以看到证书已经部署到CDN成功

也可以手动下载证书
定时触发
配置定时触发,以后每天定时执行cron格式,例如: 0 0 3 * * * 表示每天凌晨3点执行
到期前35天会自动申请新证书并部署,没到期前不会重复申请
邮件通知
可以接收邮件通知(支持时机:开始、成功、失败、失败转成功)
需要配置邮件服务器
详细流程参照Certd演示教程
华为云CDN配置
域名管理
支持添加泛域名作为加速域名,如:在CDN添加泛域名.test.com作为加速域名,并将.test.com解析至CDN生成的CNAME域名后,那么您所有.test.com的次级域名(如a.test.com)都将默认支持CDN加速。泛域名(.test.com)的三级域名(如b.a.test.com)不会被CDN加速
此处我添加了两个域名,一个一级域名,一个二级的泛域名
源站配置
源站地址配置为你的服务器IP地址,回溯HOST是你配置的域名
回源配置
回源方式设置为HTTP,第一次设置为HTTPS导致页面无法访问
HTTPS配置
此处如果证书流水线运行成功,就会显示你申请的证书
配置强制跳转和HSTS
强制跳转可以将客户端到CDN节点的请求方式强制跳转为HTTPS。
开启HSTS后,CDN将响应给客户端Strict-Transport-Security头部。客户端缓存该头部后,将自动把HTTP请求转为HTTPS请求访问CDN节点,提升访问安全性。
CNAME配置
如果已成功添加CDN加速域名,系统会自动为CDN加速域名分配对应的CNAME域名。加速域名在CDN服务中获得的CNAME域名不能直接访问,必须在加速域名的域名服务商处配置CNAME记录,将加速域名指向CNAME域名,访问加速域名的请求才能转发到CDN节点上,达到加速效果。
1.在域名管理页面,复制CDN加速域名对应的CNAME域名
2.在DNS解析页面,将原本的A记录类型均改为CNAME域名解析











