一个免费全自动申请和自动部署更新SSL证书的管理系统

温馨提示:本文最后更新于2025-01-08 13:40:25,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长

Certd

Certd 是一个免费全自动申请和自动部署更新SSL证书的管理系统。
后缀d取自linux守护进程的命名风格,意为证书守护进程。

关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具

一、特性

本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。

  • 全自动申请证书(支持所有注册商注册的域名)
  • 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等,目前已支持40+部署插件)
  • 支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式
  • 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式
  • 邮件通知、webhook通知
  • 私有化部署,数据保存本地,授权信息加密存储,镜像由Github Actions构建,过程公开透明
  • 支持SQLite,PostgreSQL、MySQL数据库

流水线数量现已调整为无限制,欢迎大家使用

关于证书续期:

  • 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
  • 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。

二、在线体验

官方Demo地址,自助注册后体验

https://certd.handfree.work/

注意数据将不定期清理,不定期停止定时任务,生产使用请自行部署
包含敏感信息,务必自己本地部署进行生产使用

首页

三、使用教程

仅需3步,让你的证书永不过期

1. 创建证书流水线

演示

添加成功后,就可以直接运行流水线申请证书了

2. 添加部署任务

当然我们一般需要把证书部署到应用上,certd支持海量的部署插件,您可以根据自身实际情况进行选择,比如部署到Nginx、阿里云、腾讯云、K8S、CDN、宝塔、1Panel等等

此处演示部署证书到主机的nginx上
演示

如果目前的部署插件都无法满足,您也可以手动下载,然后自行部署
演示

3. 定时运行

演示

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
——-> 点我查看详细使用步骤演示 <——–
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑

更多教程请访问文档网站 certd.docmirror.cn

四、私有化部署

由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全

您可以根据实际情况从如下方式中选择一种方式进行私有化部署:

  1. 宝塔面板方式部署
  2. 1Panel面板方式部署
  3. Docker方式部署
  4. 源码方式部署

Docker镜像说明:

  • 国内镜像地址:

    • registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
    • registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7[version]-armv7
  • DockerHub地址:

    • https://hub.docker.com/r/greper/certd
    • greper/certd:latest
    • greper/certd:armv7greper/certd:[version]-armv7
  • 镜像构建通过Actions自动执行,过程公开透明,请放心使用

图片[6]-一个免费全自动申请和自动部署更新SSL证书的管理系统-胖大海博客资源网

五、 升级

docker-compose方式部署

1. 如果使用固定版本号

  1. 修改docker-compose.yaml中的镜像版本号
  2. 运行docker compose up -d 即可

2. 如果需要使用最新版本

#重新拉取镜像
docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
# 重新启动容器
docker compose down
docker compose up -d

数据默认存在/data/certd目录下,不用担心数据丢失

自动升级(仅限尝鲜建议非生产使用)

version: '3.3'
services:
  certd:
    image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
    container_name: certd
    restart: unless-stopped
    volumes:
      - /data/certd:/app/data
    ports:
      - "7001:7001"
      - "7002:7002"
    environment:
      - certd_system_resetAdminPasswd=false
    labels:
      com.centurylinklabs.watchtower.enable: "true"

  certd-updater:  # 添加 Watchtower 服务
    image: containrrr/watchtower:latest
    container_name: certd-updater
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    # 配置 自动更新
    environment:
      - WATCHTOWER_CLEANUP=true            # 自动清理旧版本容器
      - WATCHTOWER_INCLUDE_STOPPED=false   # 不更新已停止的容器
      - WATCHTOWER_LABEL_ENABLE=true       # 根据容器标签进行更新
      - WATCHTOWER_POLL_INTERVAL=300       # 每 5 分钟检查一次更新

六、一些说明

  • 本项目ssl证书提供商为letencrypt/Google/ZeroSSL
  • 申请过程遵循acme协议
  • 证书续期:
    • 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
    • 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
  • 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少
  • 设置每天自动运行,当证书过期前35天,会自动重新申请证书并部署
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

------关注微信公众号:胖大海TuT------
© 版权声明
THE END
喜欢就支持一下吧
点赞820 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容