AI摘要:Certd是一款免费的全自动证书管理系统,支持证书申请、部署更新,并支持多种通知方式和私有化部署。它支持多种域名验证方式、部署插件和证书格式,提供多重安全保障和数据备份功能。
Powered by AISummary.
Certd
Certd® 是一个免费的全自动证书管理系统,让你的网站证书永不过期。
后缀d取自linux守护进程的命名风格,意为证书守护进程
一、特性
本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
- 全自动申请证书(支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式)
- 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等70+部署插件)
- 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式
- 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式
- 私有化部署,数据保存本地,安装简单快捷,镜像由Github Actions构建,过程公开透明
- 授权加密,站点隐藏,2FA,密码防爆破等多重安全保障
- 支持SQLite,PostgreSQL、MySQL多种数据库
- 开放接口支持
- 站点证书监控
- 多用户管理
- 多语言支持(中英双语切换)
- 各版本向下兼容,一键无忧升级
二、在线体验
官方Demo地址,自助注册后体验
注意数据将不定期清理,不定期停止定时任务,生产使用请自行部署
包含敏感信息,务必自己本地部署进行生产使用
三、使用教程
仅需3步,让你的证书永不过期
1. 创建证书流水线
添加成功后,就可以直接运行流水线申请证书了
2. 添加部署任务
当然我们一般需要把证书部署到应用上,certd支持海量的部署插件,您可以根据自身实际情况进行选择,比如部署到Nginx、阿里云、腾讯云、K8S、CDN、宝塔、1Panel等等
如果目前的部署插件都无法满足,您也可以手动下载,然后自行部署 
3. 定时运行
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
更多教程请访问官方文档 certd.docmirror.cn
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
四、私有化部署
由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全
您可以根据实际情况从如下方式中选择一种方式进行私有化部署:
【推荐】[Docker方式部署]
直接放上compose文件
version: '3.3' # 兼容旧版docker-compose
services:
certd:
# 镜像 # ↓↓↓↓↓ ---- 镜像版本号,建议改成固定版本号,例如:certd:1.29.0
image: registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
# image: ghcr.io/certd/certd:latest # --------- 如果 报镜像not found,可以尝试其他镜像源
# image: greper/certd:latest
container_name: certd # 容器名
restart: unless-stopped # 自动重启
volumes:
# ↓↓↓↓↓ -------------------------------------------------------- 数据库以及证书存储路径,默认存在宿主机的/data/certd/目录下,【您需要定时备份此目录,以保障数据容灾】
- /home/docker/certd:/app/data # 只要修改冒号前面的,冒号后面的/app/data切记切记不要动
#- /volume1/docker/certd:/app/data:delegated #群晖使用这个配置
# ↓↓↓↓↓ -------------------------------------------------------- 如果走时不准,考虑挂载localtime文件
#- /etc/localtime:/etc/localtime
#- /etc/timezone:/etc/timezone
ports: # 端口映射
# ↓↓↓↓ ---------------------------------------------------------- 如果端口有冲突,可以修改第一个7001为其他不冲突的端口号,第二个7001不要动
- "7001:7001"
# ↓↓↓↓ ---------------------------------------------------------- https端口,可以根据实际情况,是否暴露该端口
- "7002:7002"
#↓↓↓↓ -------------------------------------------------------------- 如果出现getaddrinfo EAI_AGAIN 或 getaddrinfo ENOTFOUND 错误,可以尝试设置dns
# dns:
# - 223.5.5.5 # 阿里云公共dns
# - 223.6.6.6
# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器在腾讯云,可以用这个替换上面阿里云的公共dns
# - 119.29.29.29 # 腾讯云公共dns
# - 182.254.116.116
# # ↓↓↓↓ --------------------------------------------------------- 如果你服务器部署在国外,可以用这个替换上面阿里云的公共dns
# - 8.8.8.8 # 谷歌公共dns
# - 8.8.4.4
# extra_hosts:
# # ↓↓↓↓ -------------------------------------------------------- 这里可以配置自定义hosts,外网域名可以指向本地局域网ip地址
# - "localdomain.com:192.168.1.3"
# # ↓↓↓↓ ------------------------------------------------ 直接使用主机的网络,如果网络问题实在找不到原因,可以尝试打开此参数
# network_mode: host
labels:
com.centurylinklabs.watchtower.enable: "true"
# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把下面networks的注释放开
# networks:
# - ip6net
environment:
# ↓↓↓↓ ----------------------------------------------------- 使用上海东八时区
- TZ=Asia/Shanghai
# 设置环境变量即可自定义certd配置
# 配置项见: packages/ui/certd-server/src/config/config.default.ts
# 配置规则: certd_ + 配置项, 点号用_代替
# #↓↓↓↓ ----------------------------- 如果忘记管理员密码,可以设置为true,docker compose up -d 重建容器之后,管理员密码将改成123456,然后请及时修改回false
- certd_system_resetAdminPasswd=false
# ↓↓↓ 要使用ipv6,将此配置修改为::
- certd_koa_hostname=0.0.0.0
# 默认使用sqlite文件数据库,如果需要使用其他数据库,请设置以下环境变量
# 注意: 选定使用一种数据库之后,不支持更换数据库。
# 数据库迁移方法:1、使用新数据库重新部署一套,然后将旧数据同步过去,注意flyway_history表的数据不要同步
# #↓↓↓↓ ----------------------------- 使用postgresql数据库,需要提前创建数据库
# - certd_flyway_scriptDir=./db/migration-pg # 升级脚本目录
# - certd_typeorm_dataSource_default_type=postgres # 数据库类型
# - certd_typeorm_dataSource_default_host=localhost # 数据库地址
# - certd_typeorm_dataSource_default_port=5433 # 数据库端口
# - certd_typeorm_dataSource_default_username=postgres # 用户名
# - certd_typeorm_dataSource_default_password=yourpasswd # 密码
# - certd_typeorm_dataSource_default_database=certd # 数据库名
# #↓↓↓↓ ----------------------------- 使用mysql数据库,需要提前创建数据库 charset=utf8mb4, collation=utf8mb4_bin
# - certd_flyway_scriptDir=./db/migration-mysql # 升级脚本目录
# - certd_typeorm_dataSource_default_type=mysql # 数据库类型, 或者 mariadb
# - certd_typeorm_dataSource_default_host=localhost # 数据库地址
# - certd_typeorm_dataSource_default_port=3306 # 数据库端口
# - certd_typeorm_dataSource_default_username=root # 用户名
# - certd_typeorm_dataSource_default_password=yourpasswd # 密码
# - certd_typeorm_dataSource_default_database=certd # 数据库名
# ↓↓↓↓ --------------------------------------------------------- 自动升级,上面certd的版本号要保持为latest
# 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=600 # 每 10 分钟检查一次更新
# ↓↓↓↓ -------------------------------------------------------------- 启用ipv6网络,还需要把上面networks的注释放开
#networks:
# ip6net:
# enable_ipv6: true
# ipam:
# config:
# - subnet: 2001:db8::/64
Docker镜像说明:
国内镜像地址:
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latestregistry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7、[version]-armv7
DockerHub地址:
https://hub.docker.com/r/greper/certdgreper/certd:latestgreper/certd:armv7、greper/certd:[version]-armv7
GitHub Packages地址:
ghcr.io/certd/certd:latestghcr.io/certd/certd:armv7、ghcr.io/certd/certd:[version]-armv7
镜像构建通过
Actions自动执行,过程公开透明,请放心使用
注意:
- 本应用存储的证书、授权信息等属于高度敏感数据,请做好安全防护
- 请务必使用HTTPS协议访问本应用,避免被中间人攻击
- 请务必使用web应用防火墙防护本应用,防止XSS、SQL注入等攻击
- 请务必做好服务器本身的安全防护,防止数据库泄露
- 请务必做好数据备份,避免数据丢失
- 更多安全生产建议点我
五、生态
1. 客户端工具 SSL-Assistant
SSL Assistant 是一个运行于主机上的证书部署管理助手客户端。
支持自动扫描主机Nginx配置,然后从Certd拉取证书并部署。
在不想暴露ssh主机密码情况下,该工具非常好用。
开源地址: https://github.com/Youngxj/SSL-Assistant
六、更多帮助
请访问官方文档:https://certd.docmirror.cn/
七、捐赠
发电权益:
- 可加入发电专属VIP群,可以获得作者一对一技术支持,必要时可以远程协助
- 您的需求我们将优先实现,并且可能将作为专业版功能提供
- 获得专业版功能
专业版特权对比
| 功能 | 免费版 | 专业版 |
|---|---|---|
| 免费证书申请 | 免费无限制 | 免费无限制 |
| 域名数量 | 无限制 | 无限制 |
| 证书流水线条数 | 无限制 | 无限制 |
| 站点证书监控 | 限制1条 | 无限制 |
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署、宝塔、1Panel等大部分插件 | 群晖、威联通、proxmox等 |
| 通知 | 邮件通知、自定义webhook | 邮件免配置、企微、钉钉、飞书、anpush、server酱等 |
| 批量操作 | 无 | 流水线模版,流水线复制,批量运行,批量设置通知、定时等 |
| VIP群 | 无 | 可加,一对一技术支持,必要时可申请远程协助 |
八、贡献代码
- 本地开发请参考 贡献插件向导
作为贡献者,代表您同意您贡献的代码如下许可:
- 可以调整开源协议以使其更严格或更宽松。
- 可以用于商业用途。
感谢以下贡献者做出的贡献。






