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

最近,各大云服务提供商将免费DV SSL证书的有效期从一年缩短至三个月。相比之下,Let’s Encrypt早已支持免费泛域名和多域名SSL证书,且有效期同样为三个月。因此,选择Let’s Encrypt的泛域名SSL证书显得更为明智。

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

592671e74202665e.png

CertD特点

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

Docker部署CertD

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

新建一个docker-compose.yaml文件,内容如下:

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

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

88de85fed55b1f31.png

基本使用

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

2d77b939fd58b991.png

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

904b28a449e72a21.png

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

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

3380f686d9ab4b51.png

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

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

dfb881720c9efa98.png

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

3efa97ee1b4a557a.png

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

52abe1831a270de0.png

注意事项
在申请过程中,遇到了申请失败的情况,原因是我的域名DNS中存在名为_acme-challenge的主机记录,这与Let’s Encrypt要求的主机名冲突。因此,在申请前最好先删除已有的_acme-challenge主机记录。

另外,作者并未将CertD的镜像推送到Docker Hub,因此必须使用作者提供的阿里云镜像地址,否则无法拉取。

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

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

转载:https://blog.xiaoz.org/archives/21203

原创文章,作者:WanKe,如若转载,请注明出处:https://wankewu.com/resource/224.html

(0)
上一篇 2024年7月7日 06:42
下一篇 2024年8月17日 14:29

相关推荐