Certd自动化申请和部署SSL证书并配置https

发布于:2025-03-20 ⋅ 阅读:(18) ⋅ 点赞:(0)

服务器使用的华为云,之前SSL证书通过配置CloudflareDNS实现的,最近华为云备案提示需修改解析至境内华为云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部署文档

创建证书自动化流程

本示例演示从创建证书申请任务到自动部署证书全流程

申请证书->部署证书->设置定时执行->设置邮件通知

准备工作

  1. 已部署CertD服务(可官方Demo自助注册体验 https://certd.handfree.work/ )
  2. 注册一个域名(支持阿里云万网、腾讯云DnsPod、华为云)
  3. 准备好以上DNS解析服务商的AccessKeyAccessSecret
  4. 证书要部署的目标(可选,单纯当成证书申请工具用也不错)

自动化流水线创建

1.创建证书申请部署流水线

创建证书申请任务

需要添加域名的DNS解析服务商的授权
添加域名的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域名解析