服务器使用的华为云,之前SSL
证书通过配置Cloudflare
的DNS
实现的,最近华为云备案提示需修改解析至境内华为云IP,若解析境外IP,域名无需备案,需注销或取消接入备案信息,改为使用Certd
自搭建证书管理工具,自动申请、续签、部署SSL
证书
Certd部署
使用Docker
方式部署
# 创建目录
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
- 证书要部署的目标(可选,单纯当成证书申请工具用也不错)
自动化流水线创建
1.创建证书申请部署流水线
需要添加域名的DNS
解析服务商的授权
流水线创建成功
2.流水线详情界面
到这一步申请证书就已经配置完成了。
点击手动触发,就可以申请证书了。
接下来演示如何添加部署任务
3.添加部署到阿里云CDN任务
点击添加任务
选择任务类型
填写任务参数
此处,我是用的华为云,在【华为云控制台】–【内容分发网络CDN】,购买了流量包,开启CDN服务并配置好域名之后,在CDN
加速域名选项才可以选择
点击确定,部署到CDN任务配置成功
4.添加部署到服务器主机任务
点击新任务,弹出添加任务界面
先选择上传到主机任务
填写任务参数,比如证书保存路径
需要添加主机ip
、用户名、密码,只需添加一次,后续其他任务可以复用
然后添加第二个任务,执行主机命令,部署证书
选择执行脚本命令任务
编写脚本,选择之前添加的主机
点击确定,部署到主机任务配置成功
5.手动触发执行任务,测试一下
点击任务可以查看状态和日志
这里执行失败,可以查看错误日志
修改正确后,重新执行
可以看到前面执行过的就会跳过,不会重复执行
6.查看证书部署效果
可以看到证书已经部署到CDN
成功
也可以手动下载证书
7.定时触发
配置定时触发,以后每天定时执行
cron
格式,例如: 0 0 3 * * *
表示每天凌晨3点执行
到期前35天会自动申请新证书并部署,没到期前不会重复申请
8.邮件通知
可以接收邮件通知(支持时机:开始、成功、失败、失败转成功)
需要配置邮件服务器
详细流程参照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
域名解析