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

文章目录 「隐藏」
  1. CertD 特点
  2. Docker 部署 CertD
  3. 基本使用
  4. 注意事项
  5. 结语

最近各家云服务提供商将免费 DV SSL 证书有效期从一年缩短到三个月,相比之下,Let's Encrypt 很早就支持了免费泛域名 SSL 证书和多域名 SSL 证书,有效期也是三个月。既然同样是三个月有效期,明显选择 Let's Encrypt 提供的泛域名 SSL 证书显得更为明智与合理。

对于熟悉使用 acme.sh的用户来说,这个工具可以自动申请并续期泛域名 SSL 证书,极大地简化了操作流程。最近,xiaoz 发现了一款名为 CertD 的新工具,它可以视为 acme.sh的 WEB 版本,提供了更便捷的操作界面。接下来,我将演示如何通过 Docker 快速部署 CertD 以申请免费泛域名 SSL 证书。

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第1张图片

CertD 特点

  • 全自动申请证书(支持阿里云、腾讯云、华为云、 Cloudflare 等各种途径注册的域名)
  • 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等)
  • 支持通配符域名/泛域名,支持多个域名打到一个证书上
  • 邮件通知
  • 提供私有化部署,保障安全
  • 免费

Docker 部署 CertD

接下来博主将使用 docker compose 工具私有部署 CertD,如果您对此并不熟悉,需要先去学习了解。

新建一个 docker-compose.yaml文件(建议打开原文复制),内容如下:

  1. version: '3.3'
  2. services:
  3. certd:
  4. # 镜像 # ↓↓↓↓↓ --- 1 、 镜像版本号,建议改成固定版本号【可选】
  5. image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:1.23.1
  6. container_name: certd # 容器名
  7. restart: unless-stopped # 自动重启
  8. volumes:
  9. # ↓↓↓↓↓ ------------------------------------------------------- 2 、 数据库以及证书存储路径, 默认存在宿主机的/data/certd/目录下【可选】
  10. - ./data:/app/data
  11. - ./ssl:/data/ssl
  12. ports: # 端口映射
  13. # ↓↓↓↓ ----------------------------------------------------------3 、如果端口有冲突,可以修改第一个 7001 为其他不冲突的端口号【可选】
  14. - "7001:7001"
  15. dns:
  16. # 如果出现 getaddrinfo ENOTFOUND 等错误,可以尝试修改或注释 dns 配置
  17. - 223.5.5.5
  18. - 223.6.6.6
  19. - 8.8.8.8
  20. - 8.8.4.4
  21. environment: # 环境变量
  22. - TZ=Asia/Shanghai
  23. - certd_system_resetAdminPassword=false
  24. - certd_cron_immediateTriggerOnce=false
  25. - VITE_APP_ICP_NO=
  • 1.23.1:为 CertD 版本号,你也可以修改为 latest
  • ./data:本机挂载目录,用于持久化保存 CertD 数据,您可以修改为绝对路径
  • ./ssl:用于导出 SSL 的证书目录,这个是博主自己添加的

然后使用命令 docker-compose up-d启动容器,然后输入 http://your_server_ip:7001进行访问,默认账号密码:admin/123456,登录后务必修改。

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第2张图片

基本使用

CertD 的自动化流程如下截图所示。

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第3张图片

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

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第4张图片

你域名使用的哪个厂商的 DNS 就选择哪个厂商进行接入!

接下来添加证书自动化流水线,根据自己的情况填写域名和邮箱等必填信息。

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第5张图片

  • 域名:如果需要泛域名证书可填写 *.xxx.com,回车键还可以添加多个域名,Let's Encrypt 是支持泛域名和多域名的,前提是这些域名使用的同一家 DNS
  • 证书提供商:默认选择 Let's Encrypt 就行了
  • DNS 提供商:你域名用的哪家服务商就选哪个
  • 定时触发建议填写,这样后期可以自动续期,比如填写: 004***代表每天凌晨 4 点检测一次

添加完毕后,如果你需要立即申请 SSL 证书,手动点一下手动触发就行了,配置正确的情况下,一般几分钟就申请下来了。

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第6张图片

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

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第7张图片

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

使用Docker快速部署CertD并自动申请免费泛域名SSL证书 - 第8张图片

注意事项

xiaoz 在申请过程中,遇到了申请失败的情况,原因是在申请之前,我的域名 DNS 存在名为 _acme-challenge的主机记录,和 Let's Encrypt 要求的主机名存在冲突,所以在申请前最好先把已有的 _acme-challenge主机记录删除。

结语

CertD 较为专业,不太适合新手小白,但比较适合运维和开发人员,其自动化证书管理流程能显著提高运维和开发人员的工作效率。当前,CertD 支持的服务商数量有限,期待未来能扩展到更多平台。同时,也感谢作者的辛苦付出。

CertD 开源地址:https://github.com/certd/certd

 

 

《使用Docker快速部署CertD并自动申请免费泛域名SSL证书》留言数:0

发表留言