自签泛域名证书
使用Docker快速部署CertD并自动申请免费泛域名SSL证书

CertD特点
- 全自动申请证书(支持阿里云、腾讯云、华为云、Cloudflare等各种途径注册的域名)
- 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等)
- 支持通配符域名/泛域名,支持多个域名打到一个证书上
- 邮件通知
- 提供私有化部署,保障安全
- 免费
Docker部署CertD
接下来博主将使用docker compose工具私有部署CertD,如果您对此并不熟悉,需要先去学习了解。
新建一个docker-compose.yaml文件,内容如下:
1 | version: '3.3' |
1.23.1:为CertD版本号,你也可以修改为latest./data:本机挂载目录,用于持久化保存CertD数据,您可以修改为绝对路径./ssl:用于导出SSL的证书目录,这个是博主自己添加的
然后使用命令docker-compose up -d启动容器,然后输入http://your_server_ip:7001进行访问,默认账号密码:admin/123456,登录后务必修改。

基本使用
CertD的自动化流程如下截图所示。

我们需要先在授权管理,添加DNS授权,目前支持DNSPOD、腾讯、阿里云、华为云、CloudFlare等主流厂商DNS接入。

你域名使用的哪个厂商的DNS就选择哪个厂商进行接入!
接下来添加证书自动化流水线,根据自己的情况填写域名和邮箱等必填信息。

- 域名:如果需要泛域名证书可填写
*.xxx.com,回车键还可以添加多个域名,Let’s Encrypt是支持泛域名和多域名的,前提是这些域名使用的同一家DNS - 证书提供商:默认选择Let’s Encrypt就行了
- DNS提供商:你域名用的哪家服务商就选哪个
- 定时触发建议填写,这样后期可以自动续期,比如填写:
0 0 4 * * *代表每天凌晨4点检测一次
添加完毕后,如果你需要立即申请SSL证书,手动点一下手动触发就行了,配置正确的情况下,一般几分钟就申请下来了。

申请完毕后点击下载按钮,可以将SSL证书下载到本地。

同时你还可以手动添加更多步骤,比如将证书自动导出,或者将证书上传到阿里云、腾讯云等,自动化程度还是挺高的,就是支持的厂商目前还比较少。

注意事项
xiaoz在申请过程中,遇到了申请失败的情况,原因是在申请之前,我的域名DNS存在名为_acme-challenge的主机记录,和Let’s Encrypt要求的主机名存在冲突,所以在申请前最好先把已有的_acme-challenge主机记录删除。
另外作者并没有把CertD的镜像推送到Docker Hub,所以必须使用上面作者给出的阿里云镜像地址,否则无法拉取。
结语
CertD较为专业,不太适合新手小白,但比较适合运维和开发人员,其自动化证书管理流程能显著提高运维和开发人员的工作效率。当前,CertD支持的服务商数量有限,期待未来能扩展到更多平台。同时,也感谢作者的辛苦付出。
CertD开源地址:https://github.com/certd/certd