diff --git a/CHANGELOG.md b/CHANGELOG.md index ced56212..8d46a63e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Bug Fixes + +* 修复部署到又拍云强制https无效的bug ([2397097](https://github.com/certd/certd/commit/2397097e4ddcb6f593210598e8779ffd44ac3f8f)) +* 修复刷新流水线页面后,日志不自动更新的bug ([0b2e28b](https://github.com/certd/certd/commit/0b2e28b62dd5eb6804c602083e65c87a9d1d72d2)) + +### Performance Improvements + +* 集成智能问答机器人 ([9dd4905](https://github.com/certd/certd/commit/9dd49054d18ec436a5029444ca55a38adc682933)) +* 支持设置网安备案号 ([d18e431](https://github.com/certd/certd/commit/d18e431e2f08e6b37704032c4ea6fbdd8e971442)) +* http方式支持校验443端口 ([d75fcb7](https://github.com/certd/certd/commit/d75fcb7fec421a9a638eaa27fe9378c84b5e0f19)) + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Bug Fixes diff --git a/README.md b/README.md index 6a8657b4..d2ce75e3 100644 --- a/README.md +++ b/README.md @@ -5,28 +5,35 @@ Certd 是一个免费全自动申请和自动部署更新SSL证书的管理系 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具 +> 关于证书续期: +>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。 +>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。 +>* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少 + + +> 流水线数量现已调整为无限制,欢迎大家使用 + ## 一、特性 本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。 -* 全自动申请证书(支持所有注册商注册的域名) +* 全自动申请证书(支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式) * 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等70+部署插件) -* 支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式 * 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式 -* 邮件通知、webhook通知 -* 私有化部署,数据保存本地,授权信息加密存储,镜像由Github Actions构建,过程公开透明 -* 支持SQLite,PostgreSQL、MySQL数据库 +* 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式 +* 私有化部署,数据保存本地,安装升级非常简单快捷 +* 镜像由Github Actions构建,过程公开透明 +* 授权加密,站点隐藏,2FA,密码防爆破等多重安全保障 +* 支持SQLite,PostgreSQL、MySQL多种数据库 +* 开放接口支持 +* 站点证书监控 +* 多用户管理 ![](./docs/images/intro/intro.svg) -> -> 流水线数量现已调整为无限制,欢迎大家使用 -> -> 关于证书续期: - >* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。 - >* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。 - >* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少 + + ## 二、在线体验 diff --git a/build.trigger b/build.trigger index bcb87263..f19ef6e2 100644 --- a/build.trigger +++ b/build.trigger @@ -1 +1 @@ -00:32 +20:28 diff --git a/docker/run/docker-compose.yaml b/docker/run/docker-compose.yaml index b66ffc6f..2192012d 100644 --- a/docker/run/docker-compose.yaml +++ b/docker/run/docker-compose.yaml @@ -3,6 +3,8 @@ 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: @@ -35,6 +37,8 @@ services: # networks: # - ip6net environment: +# ↓↓↓↓ ----------------------------------------------------- 使用上海东八时区 +# - TZ=Asia/Shanghai # 设置环境变量即可自定义certd配置 # 配置项见: packages/ui/certd-server/src/config/config.default.ts # 配置规则: certd_ + 配置项, 点号用_代替 diff --git a/docs/.vitepress/config.ts b/docs/.vitepress/config.ts index e32d1353..02847ebc 100644 --- a/docs/.vitepress/config.ts +++ b/docs/.vitepress/config.ts @@ -88,22 +88,25 @@ export default defineConfig({ text: "特性", items: [ {text: "CNAME代理校验", link: "/guide/feature/cname/index.md"}, - {text: "插件列表", link: "/guide/plugins.md"}, {text: "多数据库支持", link: "/guide/install/database.md"}, {text: "开放接口", link: "/guide/open/index.md"}, { - text: "站点安全", items: [ - {text: "安全特性", link: "/guide/feature/safe"}, - {text: "站点隐藏", link: "/guide/feature/safe/hidden"}, - {text: "安全生产建议", link: "/guide/feature/safe/suggest"}, + text: "站点安全", link: "/guide/feature/safe" + }, + { + text: "插件列表", items: [ + {text: "授权提供商", link: "/guide/plugins/access"}, + {text: "DNS提供商", link: "/guide/plugins/dns-provider"}, + {text: "任务插件", link: "/guide/plugins/deploy"}, + {text: "通知插件", link: "/guide/plugins/notification"}, ] }, - ] }, { text: "常见问题", items: [ + {text: "常见报错处理", link: "/guide/qa/"}, {text: "群晖证书部署", link: "/guide/use/synology/"}, {text: "腾讯云密钥获取", link: "/guide/use/tencent/"}, {text: "连接windows主机", link: "/guide/use/host/windows.md"}, @@ -115,8 +118,14 @@ export default defineConfig({ {text: "js脚本插件使用", link: "/guide/use/custom-script/index.md"}, {text: "邮箱配置", link: "/guide/use/email/index.md"}, {text: "IPv6支持", link: "/guide/use/setting/ipv6.md"}, - {text: "其他插件使用", link: "/deploy/"}, - {text: "商业版说明", link: "/comm/"}, + {text: "ESXi", link: "/guide/use/ESXi/index.md"}, + ] + }, + { + text: "商业版配置", link: "/guide/use/comm/", items: [ + {text: "支付宝配置", link: "/guide/use/comm/payments/alipay.md"}, + {text: "微信支付配置", link: "/guide/use/comm/payments/wxpay.md"}, + {text: "彩虹易支付配置", link: "/guide/use/comm/payments/yizhifu.md"}, ] }, { @@ -133,26 +142,6 @@ export default defineConfig({ ] } ], - "/deploy/": [ - { - text: "部署证书插件", - items: [ - {text: "插件说明", link: "/deploy/index.md"}, - {text: "部署到ESXi", link: "/deploy/ESXi/index.md"}, - ] - } - ], - "/comm/": [ - { - text: "商业版", - items: [ - {text: "支付宝配置", link: "/comm/payments/alipay.md"}, - {text: "微信支付配置", link: "/comm/payments/wxpay.md"}, - {text: "彩虹易支付配置", link: "/comm/payments/yizhifu.md"}, - ] - } - ] - , }, socialLinks: [ diff --git a/docs/deploy/index.md b/docs/deploy/index.md deleted file mode 100644 index 2fe18e65..00000000 --- a/docs/deploy/index.md +++ /dev/null @@ -1,4 +0,0 @@ -# 部署插件说明 - -## 待完善 - diff --git a/docs/guide/changelogs/CHANGELOG.md b/docs/guide/changelogs/CHANGELOG.md index ced56212..8d46a63e 100644 --- a/docs/guide/changelogs/CHANGELOG.md +++ b/docs/guide/changelogs/CHANGELOG.md @@ -3,6 +3,19 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Bug Fixes + +* 修复部署到又拍云强制https无效的bug ([2397097](https://github.com/certd/certd/commit/2397097e4ddcb6f593210598e8779ffd44ac3f8f)) +* 修复刷新流水线页面后,日志不自动更新的bug ([0b2e28b](https://github.com/certd/certd/commit/0b2e28b62dd5eb6804c602083e65c87a9d1d72d2)) + +### Performance Improvements + +* 集成智能问答机器人 ([9dd4905](https://github.com/certd/certd/commit/9dd49054d18ec436a5029444ca55a38adc682933)) +* 支持设置网安备案号 ([d18e431](https://github.com/certd/certd/commit/d18e431e2f08e6b37704032c4ea6fbdd8e971442)) +* http方式支持校验443端口 ([d75fcb7](https://github.com/certd/certd/commit/d75fcb7fec421a9a638eaa27fe9378c84b5e0f19)) + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Bug Fixes diff --git a/docs/guide/feature/safe/hidden/index.md b/docs/guide/feature/safe/hidden/index.md index d56e80c9..ffd6e429 100644 --- a/docs/guide/feature/safe/hidden/index.md +++ b/docs/guide/feature/safe/hidden/index.md @@ -22,4 +22,6 @@ ![](./images/hidden2.png) ## 3、忘记解除地址和解除密码怎么办 -登录服务器,在数据库平级的目录下创建`.unhidden`文件即可`临时解除`站点隐藏 +登录服务器,在数据库平级的目录下创建`.unhidden`命名的空白文件,即可临时解除站点隐藏 +临时解除后会自动删除`.unhidden`文件,请尽快设置好新的`解除地址`和`解除密码`,并记住 + diff --git a/docs/guide/feature/safe/index.md b/docs/guide/feature/safe/index.md index b578c95d..6aec4647 100644 --- a/docs/guide/feature/safe/index.md +++ b/docs/guide/feature/safe/index.md @@ -1,36 +1,48 @@ -# 站点安全特性 +# 安全特性 -Certd 存储了证书以及授权等敏感数据,所以需要严格保障安全。 -我们非常重视您的数据安全,提供了以下安全特性 +Certd 存储了证书以及授权等敏感数据,所以需要严格保障安全。 +我们提供了以下安全特性,以及安全生产建议(请遵照建议进行生产部署以保障数据安全) -## 1、 授权数据加密存储【默认开启】 +## 一、站点安全特性 + +### 1、 授权数据加密存储【默认开启】 * 所有的授权敏感字段会加密后存储 * 每个用户独立维护授权数据,连管理员都无权查看 ![星号部分为加密数据](./images/access.png) 星号部分为加密数据 -## 2、 密码防爆破【默认开启】 +### 2、 密码防爆破【默认开启】 * 登录失败次数过多,账号将被锁定,最高24小时(重启服务可解除锁定) * 用户登录密码加密hash后存储,无法计算出密码明文 ![](./images/login.png) -## 3、站点隐藏【建议开启】 +### 3、站点隐藏【建议开启】 * 一般来说Certd设置好之后,后续很少需要访问修改。 * 所以我们平时可以把站点访问关闭,需要的时候再打开,减少站点被攻击的风险 * 请前往 `系统管理->系统设置->安全设置->开启站点隐藏` -* [站点隐藏设置说明](./hidden/) ![](./images/hidden.png) -## 4、登录双重验证 +点击查看 [站点隐藏功能详细使用说明](./hidden/) + + +### 4、登录双重验证 支持2FA双重认证 ![](./images/2fa.png) -## 5、数据库自动备份【建议开启】 +### 5、数据库自动备份【建议开启】 * [自动备份设置说明](../../use/backup/) -## 更多安全生产建议 -[安全生产建议](./suggest.md) \ No newline at end of file +## 二、安全生产建议 + +尽管`Cert`本身实现了很多安全特性,但`外部环境的安全`仍需要您来确保。 +请`务必`遵循如下建议做好安全防护 + +* 请`务必`使用`HTTPS协议`访问本应用,避免被中间人攻击 +* 请`务必`使用`web应用防火墙`防护本应用,防止XSS、SQL注入等攻击 +* 请`务必`做好`服务器本身`的安全防护,防止数据库泄露 +* 请`务必`做好[`数据备份`](../../use/backup/),避免数据丢失 +* 建议开启[`站点隐藏`](./hidden/)功能 diff --git a/docs/guide/feature/safe/suggest.md b/docs/guide/feature/safe/suggest.md index 87f37fc4..e69de29b 100644 --- a/docs/guide/feature/safe/suggest.md +++ b/docs/guide/feature/safe/suggest.md @@ -1,10 +0,0 @@ -# 安全生产建议 - -尽管`Cert`本身实现了很多安全特性,但`外部环境的安全`仍需要您来确保。 -请`务必`遵循如下建议做好安全防护 - -* 请`务必`使用`HTTPS协议`访问本应用,避免被中间人攻击 -* 请`务必`使用`web应用防火墙`防护本应用,防止XSS、SQL注入等攻击 -* 请`务必`做好`服务器本身`的安全防护,防止数据库泄露 -* 请`务必`做好[`数据备份`](../../use/backup/),避免数据丢失 -* 建议开启[`站点隐藏`](./hidden/)功能 diff --git a/docs/guide/index.md b/docs/guide/index.md index 5844eeef..fb38fa18 100644 --- a/docs/guide/index.md +++ b/docs/guide/index.md @@ -5,32 +5,28 @@ Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工 关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具 +## 1、关于证书续期 +>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。 +>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。 +>* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少 -## 一、特性 + +## 2、项目特性 本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。 -* 全自动申请证书(支持所有注册商注册的域名) -* 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等,目前已支持60+部署插件) -* 支持通配符域名/泛域名,支持多个域名打到一个证书上 -* 邮件通知 -* 私有化部署,保障数据安全 -* 支持SQLite、Postgresql、MySQL数据库 +* 全自动申请证书(支持所有注册商注册的域名,支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式) +* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等70+部署插件) +* 支持通配符域名/泛域名,支持多个域名打到一个证书上,支持pem、pfx、der、jks等多种证书格式 +* 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式 +* 私有化部署,数据保存本地,安装升级非常简单快捷 +* 镜像由Github Actions构建,过程公开透明 +* 授权加密,站点隐藏,2FA,密码防爆破等多重安全保障 +* 支持SQLite,PostgreSQL、MySQL多种数据库 +* 开放接口支持 +* 站点证书监控 +* 多用户管理 ![](../images/intro/intro.svg) -## 二、一些说明 -* 本项目申请证书过程遵循acme协议 -* 需要验证域名所有权,一般有两种方式 - * http-01: 在网站根目录下放置一份txt文件 - * dns-01: 需要给域名添加txt解析记录,通配符域名只能用这种方式(本项目仅支持dns-01) -* 证书续期: - * 实际上没有办法不改变证书文件本身情况下直接续期或者续签。 - * 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。 -* 免费证书过期时间90天,以后可能还会缩短,所以自动化部署必不可少 -* 设置每天自动运行,当证书过期前35天,会自动重新申请证书并部署 -## 三、证书颁发机构对比 -* Let's Encrypt:申请最简单。 -* Google: 大厂光环,兼容性好,首次需要翻墙获取EAB。 -* ZeroSSL: 需要EAB,获取EAB无需翻墙。 \ No newline at end of file diff --git a/docs/guide/plugins.md b/docs/guide/plugins.md deleted file mode 100644 index 4e0d7d21..00000000 --- a/docs/guide/plugins.md +++ /dev/null @@ -1,5 +0,0 @@ -# 插件列表 - -![img_1.png](../images/plugins/list.png) - - diff --git a/docs/guide/plugins/access.md b/docs/guide/plugins/access.md new file mode 100644 index 00000000..b4e920fc --- /dev/null +++ b/docs/guide/plugins/access.md @@ -0,0 +1,58 @@ +# 授权列表 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **阿里云授权** | | +| 2.| **EAB授权** | ZeroSSL证书申请需要EAB授权 | +| 3.| **google cloud** | 谷歌云授权 | +| 4.| **主机登录授权** | | +| 5.| **SFTP授权** | | +| 6.| **阿里云OSS授权** | 包含地域和Bucket | +| 7.| **FTP授权** | | +| 8.| **腾讯云** | | +| 9.| **腾讯云COS授权** | 腾讯云对象存储授权,包含地域和存储桶 | +| 10.| **七牛云授权** | | +| 11.| **七牛OSS授权** | | +| 12.| **天翼云授权** | | +| 13.| **s3/minio授权** | S3/minio oss授权 | +| 14.| **baota授权** | | +| 15.| **易盾DCDN授权** | https://user.yiduncdn.com | +| 16.| **易盾rcdn授权** | 易盾CDN,每月免费30G,[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) | +| 17.| **易发云短信** | sms.yfyidc.cn/ | +| 18.| **cdnfly授权** | | +| 19.| **群晖登录授权** | | +| 20.| **k8s授权** | | +| 21.| **1panel授权** | 账号和密码 | +| 22.| **百度云授权** | | +| 23.| **LeCDN授权** | | +| 24.| **白山云授权** | | +| 25.| **plesk授权** | | +| 26.| **易支付** | | +| 27.| **支付宝** | | +| 28.| **微信支付** | | +| 29.| **长亭雷池授权** | | +| 30.| **lucky** | | +| 31.| **括彩云cdn授权** | 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) | +| 32.| **uniCloud** | unicloud授权 | +| 33.| **华为云授权** | | +| 34.| **西部数码授权** | | +| 35.| **多吉云** | | +| 36.| **我爱云授权** | 我爱云CDN | +| 37.| **CacheFly** | CacheFly | +| 38.| **Gcore** | Gcore | +| 39.| **亚马逊云aws授权** | | +| 40.| **dns.la授权** | | +| 41.| **又拍云** | | +| 42.| **火山引擎** | | +| 43.| **京东云** | | +| 44.| **51dns授权** | | + + + \ No newline at end of file diff --git a/docs/guide/plugins/deploy.md b/docs/guide/plugins/deploy.md new file mode 100644 index 00000000..823897c1 --- /dev/null +++ b/docs/guide/plugins/deploy.md @@ -0,0 +1,130 @@ +# 任务插件 +共 `70` 款任务插件 +## 1. 证书申请 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **证书申请(JS版)** | 免费通配符域名证书申请,支持多个域名打到同一个证书上 | +| 2.| **证书申请(Lego)** | 支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上 | +| 3.| **商用证书托管** | 手动上传自定义证书后,自动部署(每次证书有更新,都需要手动上传一次) | +## 2. 主机 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **FTP-上传证书到FTP** | 将证书上传到FTP服务器 | +| 2.| **IIS-部署到IIS站点** | | +| 3.| **主机-执行远程主机脚本命令** | 可以执行重启nginx等操作让证书生效 | +| 4.| **主机-部署证书到SSH主机** | SFTP上传证书到主机,然后SSH执行部署脚本命令 | +## 3. CDN + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **易盾-部署到易盾DCDN** | 主要是防御,http://user.yiduncdn.com/ | +| 2.| **易盾-部署到易盾RCDN** | 易盾CDN,每月免费30G,[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) | +| 3.| **cdnfly-部署证书到cdnfly** | cdnfly | +| 4.| **百度云-部署证书到CDN** | 部署到百度云CDN | +| 5.| **LeCDN-更新证书** | | +| 6.| **LeCDN-更新证书V2** | 支持新版本LeCDN | +| 7.| **白山云-更新证书** | | +| 8.| **天翼云-部署证书到CDN** | 部署证书到天翼云CDN和全站加速 | +| 9.| **括彩云-部署到括彩云CDN** | 括彩云CDN,每月免费30G,[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) | +| 10.| **多吉云-部署到多吉云CDN** | | +| 11.| **我爱云-部署证书到我爱云CDN** | 部署证书到我爱云CDN | +| 12.| **CacheFly-部署证书到CacheFly** | 部署证书到 CacheFly | +| 13.| **Gcore-部署证书到Gcore** | 仅上传 并不会部署到cdn | +| 14.| **Gcore-刷新Gcore证书** | 刷新现有的证书 | +| 15.| **又拍云-部署证书到CDN/USS** | 支持又拍云CDN,又拍云云存储USS | +## 4. 面板 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **宝塔-面板证书部署** | 部署宝塔面板本身的ssl证书 | +| 2.| **宝塔-网站证书部署** | 部署宝塔管理的站点的ssl证书,目前支持网站站点、docker站点等 | +| 3.| **群晖-部署证书到群晖面板** | Synology,支持6.x以上版本 | +| 4.| **K8S-部署证书到Secret** | 部署证书到k8s的secret | +| 5.| **K8S-Ingress 证书部署** | 部署证书到k8s的Ingress | +| 6.| **1Panel-部署证书到1Panel** | 更新1Panel的证书 | +| 7.| **Plesk-部署Plesk网站证书** | | +| 8.| **雷池-更新证书** | 更新长亭雷池WAF的证书 | +| 9.| **lucky-更新Lucky证书** | | +| 10.| **uniCloud-部署到服务空间** | 部署到服务空间 | +| 11.| **威联通-部署证书到威联通** | 部署证书到qnap | +## 5. 阿里云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **阿里云-部署到Ack** | 部署到阿里云Ack集群Ingress等通过Secret管理证书的应用 | +| 2.| **阿里云-部署至任意云资源** | 【不建议使用】需要消耗阿里云自动部署次数,支持SLB、LIVE、webHosting、VOD、CR、DCDN、DDoS、CDN、ALB、APIGateway、FC、GA、MSE、NLB、OSS、SAE、WAF等云产品 | +| 3.| **阿里云-部署证书至CDN** | 自动部署域名证书至阿里云CDN | +| 4.| **阿里云-部署证书至DCDN** | 依赖证书申请前置任务,自动部署域名证书至阿里云DCDN | +| 5.| **阿里云-部署证书至OSS** | 自动部署域名证书至阿里云OSS | +| 6.| **阿里云-上传证书到阿里云** | 如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出 | +| 7.| **阿里云-部署至阿里云WAF** | 部署证书到阿里云WAF | +| 8.| **阿里云-部署至ALB(应用负载均衡)** | ALB,更新监听器的默认证书 | +| 9.| **阿里云-部署至NLB(网络负载均衡)** | NLB,网络负载均衡,更新监听器的默认证书 | +| 10.| **阿里云-部署至SLB(传统负载均衡)** | 部署证书到阿里云SLB(传统负载均衡) | +| 11.| **阿里云-部署至阿里云FC(3.0)** | 部署证书到阿里云函数计算(FC3.0),【注意】证书的加密算法必须选择【pkcs1旧版】 | +## 6. 华为云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **华为云-部署证书至CDN** | | +## 7. 腾讯云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **腾讯云-部署证书到任意云资源** | 支持负载均衡、CDN、DDoS、直播、点播、Web应用防火墙、API网关、TEO、容器服务、对象存储、轻应用服务器、云原生微服务、云开发 | +| 2.| **腾讯云-部署到CLB** | 暂时只支持单向认证证书,暂时只支持通用负载均衡 | +| 3.| **腾讯云-部署到CDN(废弃)** | 已废弃,请使用v2版 | +| 4.| **腾讯云-部署到CDN-v2** | 推荐使用 | +| 5.| **腾讯云-上传证书到腾讯云** | 上传成功后输出:tencentCertId | +| 6.| **腾讯云-部署证书到COS** | 部署到腾讯云COS源站域名证书【注意:很不稳定,需要重试很多次偶尔才能成功一次】 | +| 7.| **腾讯云-部署到腾讯云EO** | 腾讯云边缘安全加速平台EO,必须配置上传证书到腾讯云任务 | +| 8.| **腾讯云-删除即将过期证书** | 仅删除未使用的证书 | +| 9.| **腾讯云-部署到TKE-ingress** | serverless集群请使用K8S部署插件;Qcloud类型需要【上传到腾讯云】作为前置任务;ApiServer未开启外网访问则需要做域名的内网IP映射 | +## 8. 火山引擎 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **火山引擎-部署证书至CDN** | 支持网页,文件下载,音视频点播 | +| 2.| **火山引擎-部署证书至CLB** | 部署至火山引擎负载均衡 | +| 3.| **火山引擎-上传证书至证书中心** | 上传证书至火山引擎证书中心 | +| 4.| **火山引擎-部署证书至ALB** | 部署至火山引擎应用负载均衡 | +| 5.| **火山引擎-部署证书至Live** | 部署至火山引擎视频直播 | +## 9. 京东云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **京东云-部署证书至CDN** | 京东云内容分发网络 | +| 2.| **京东云-更新已有证书** | 更新SSL数字证书中的证书 | +| 3.| **京东云-上传新证书** | 上传证书到SSL数字证书中心 | +## 10. 七牛云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **七牛云-部署证书至OSS** | 自动部署域名证书至七牛云KODO,注意是自定义源站域名,不是CDN域名 | +| 2.| **七牛云-部署证书至CDN** | 自动部署域名证书至七牛云CDN | +## 11. 亚马逊云 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **AWS-部署证书到CloudFront** | 部署证书到 AWS CloudFront | +## 12. 其他 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **Demo-测试插件** | | +| 2.| **重启 Certd** | 【仅管理员可用】 重启 certd的https服务,用于更新 Certd 的 ssl 证书 | +| 3.| **自定义js脚本** | 【仅管理员】运行自定义js脚本执行 | +| 4.| **等待** | 等待一段时间 | +| 5.| **数据库备份** | 仅支持备份SQLite数据库 | + + + \ No newline at end of file diff --git a/docs/guide/plugins/dns-provider.md b/docs/guide/plugins/dns-provider.md new file mode 100644 index 00000000..1c4718ea --- /dev/null +++ b/docs/guide/plugins/dns-provider.md @@ -0,0 +1,22 @@ +# DNS提供商 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **阿里云** | 阿里云DNS解析提供商 | +| 2.| **腾讯云** | 腾讯云域名DNS解析提供者 | +| 3.| **华为云** | 华为云DNS解析提供商 | +| 4.| **西部数码** | west dns provider | +| 5.| **dns.la** | dns.la | +| 6.| **火山引擎** | 火山引擎DNS解析提供商 | +| 7.| **京东云** | 京东云DNS解析提供商 | +| 8.| **51dns** | 51DNS | + + + \ No newline at end of file diff --git a/docs/guide/plugins/notification.md b/docs/guide/plugins/notification.md new file mode 100644 index 00000000..c9c72637 --- /dev/null +++ b/docs/guide/plugins/notification.md @@ -0,0 +1,26 @@ +# 通知插件 + +| 序号 | 名称 | 说明 | +|-----|-----|-----| +| 1.| **企业微信通知** | 企业微信群聊机器人通知 | +| 2.| **电子邮件** | 电子邮件通知 | +| 3.| **爱语飞飞微信通知(iyuu)** | https://iyuu.cn/ | +| 4.| **自定义webhook** | 根据模版自定义http请求 | +| 5.| **Server酱ᵀ** | https://sct.ftqq.com/ | +| 6.| **Server酱³** | https://doc.sc3.ft07.com/serverchan3 | +| 7.| **AnPush** | https://anpush.com | +| 8.| **Telegram通知** | Telegram Bot推送通知 | +| 9.| **Discord 通知** | Discord 机器人通知 | +| 10.| **Slack通知** | Slack消息推送通知 | +| 11.| **Bark 通知** | Bark 推送通知插件 | +| 12.| **飞书通知** | 飞书群聊webhook通知 | + + + \ No newline at end of file diff --git a/docs/guide/qa/index.md b/docs/guide/qa/index.md new file mode 100644 index 00000000..eae66615 --- /dev/null +++ b/docs/guide/qa/index.md @@ -0,0 +1,19 @@ +# 常见报错解决 + +## 1. getaddrinfo ENOTFOUND错误 +如果出现`getaddrinfo ENOTFOUND`错误,可以尝试在`docker-compose.yaml`中设置dns +```yaml +version: '3.3' # 兼容旧版docker-compose +services: + certd: + #↓↓↓↓ ------------ # 如果出现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 +``` \ No newline at end of file diff --git a/docs/deploy/ESXi/images/ssh.png b/docs/guide/use/ESXi/images/ssh.png similarity index 100% rename from docs/deploy/ESXi/images/ssh.png rename to docs/guide/use/ESXi/images/ssh.png diff --git a/docs/deploy/ESXi/index.md b/docs/guide/use/ESXi/index.md similarity index 100% rename from docs/deploy/ESXi/index.md rename to docs/guide/use/ESXi/index.md diff --git a/docs/comm/images/index.png b/docs/guide/use/comm/images/index.png similarity index 100% rename from docs/comm/images/index.png rename to docs/guide/use/comm/images/index.png diff --git a/docs/comm/index.md b/docs/guide/use/comm/index.md similarity index 100% rename from docs/comm/index.md rename to docs/guide/use/comm/index.md diff --git a/docs/comm/payments/alipay.md b/docs/guide/use/comm/payments/alipay.md similarity index 100% rename from docs/comm/payments/alipay.md rename to docs/guide/use/comm/payments/alipay.md diff --git a/docs/comm/payments/wxpay.md b/docs/guide/use/comm/payments/wxpay.md similarity index 100% rename from docs/comm/payments/wxpay.md rename to docs/guide/use/comm/payments/wxpay.md diff --git a/docs/comm/payments/yizhifu.md b/docs/guide/use/comm/payments/yizhifu.md similarity index 100% rename from docs/comm/payments/yizhifu.md rename to docs/guide/use/comm/payments/yizhifu.md diff --git a/docs/guide/use/pretask/images/pretask1.png b/docs/guide/use/pretask/images/pretask1.png new file mode 100644 index 00000000..e933ac0e Binary files /dev/null and b/docs/guide/use/pretask/images/pretask1.png differ diff --git a/docs/guide/use/pretask/images/pretask2.png b/docs/guide/use/pretask/images/pretask2.png new file mode 100644 index 00000000..3fc7f02c Binary files /dev/null and b/docs/guide/use/pretask/images/pretask2.png differ diff --git a/docs/guide/use/pretask/index.md b/docs/guide/use/pretask/index.md new file mode 100644 index 00000000..96b6df8e --- /dev/null +++ b/docs/guide/use/pretask/index.md @@ -0,0 +1,13 @@ +# 带输出的前置任务 + +前置任务输出可以在后续任务中使用 + +比如上传证书到阿里云,会返回阿里云的CertId,之后其他阿里云的部署任务可以选择复用这个证书 + +## 复用证书 + +![img.png](images/pretask1.png) + +在后续任务中可以选择前置任务的输出 + +![img.png](images/pretask2.png) \ No newline at end of file diff --git a/lerna.json b/lerna.json index 96b1fe8a..e6073136 100644 --- a/lerna.json +++ b/lerna.json @@ -9,5 +9,5 @@ } }, "npmClient": "pnpm", - "version": "1.34.1" + "version": "1.34.2" } diff --git a/packages/core/acme-client/CHANGELOG.md b/packages/core/acme-client/CHANGELOG.md index a07d8992..20318b0f 100644 --- a/packages/core/acme-client/CHANGELOG.md +++ b/packages/core/acme-client/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/publishlab/node-acme-client/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Performance Improvements + +* http方式支持校验443端口 ([d75fcb7](https://github.com/publishlab/node-acme-client/commit/d75fcb7fec421a9a638eaa27fe9378c84b5e0f19)) + ## [1.34.1](https://github.com/publishlab/node-acme-client/compare/v1.34.0...v1.34.1) (2025-05-05) ### Bug Fixes diff --git a/packages/core/acme-client/package.json b/packages/core/acme-client/package.json index a9be92bf..f1f96d8b 100644 --- a/packages/core/acme-client/package.json +++ b/packages/core/acme-client/package.json @@ -3,7 +3,7 @@ "description": "Simple and unopinionated ACME client", "private": false, "author": "nmorsman", - "version": "1.34.1", + "version": "1.34.2", "type": "module", "module": "scr/index.js", "main": "src/index.js", @@ -18,7 +18,7 @@ "types" ], "dependencies": { - "@certd/basic": "^1.34.1", + "@certd/basic": "^1.34.2", "@peculiar/x509": "^1.11.0", "asn1js": "^3.0.5", "axios": "^1.7.2", @@ -69,5 +69,5 @@ "bugs": { "url": "https://github.com/publishlab/node-acme-client/issues" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/core/acme-client/src/auto.js b/packages/core/acme-client/src/auto.js index 30c454a3..ddaa7d54 100644 --- a/packages/core/acme-client/src/auto.js +++ b/packages/core/acme-client/src/auto.js @@ -234,6 +234,7 @@ export default async (client, userOpts) => { throw new CancelError("用户取消"); } + const waitDnsDiffuseTime = opts.waitDnsDiffuseTime || 30; try { // eslint-disable-next-line no-await-in-loop await runPromisePa(challengePromises); @@ -242,8 +243,8 @@ export default async (client, userOpts) => { await wait(60 * 1000); } else { await runPromisePa(localVerifyTasks, 1000); - log("本地校验完成,等待30s") - await wait(30 * 1000) + log(`本地校验完成,等待${waitDnsDiffuseTime}s`) + await wait(waitDnsDiffuseTime * 1000) } log("开始向提供商请求挑战验证"); diff --git a/packages/core/acme-client/src/verify.js b/packages/core/acme-client/src/verify.js index 2334331a..0af93fd5 100644 --- a/packages/core/acme-client/src/verify.js +++ b/packages/core/acme-client/src/verify.js @@ -24,22 +24,46 @@ const dns = dnsSdk.promises */ async function verifyHttpChallenge(authz, challenge, keyAuthorization, suffix = `/.well-known/acme-challenge/${challenge.token}`) { + + async function doQuery(challengeUrl){ + log(`正在测试请求 ${challengeUrl} `) + // const httpsPort = axios.defaults.acmeSettings.httpsChallengePort || 443; + // const challengeUrl = `https://${authz.identifier.value}:${httpsPort}${suffix}`; + + /* May redirect to HTTPS with invalid/self-signed cert - https://letsencrypt.org/docs/challenge-types/#http-01-challenge */ + const httpsAgent = new https.Agent({ rejectUnauthorized: false }); + + log(`Sending HTTP query to ${authz.identifier.value}, suffix: ${suffix}, port: ${httpPort}`); + let data = "" + try{ + const resp = await axios.get(challengeUrl, { httpsAgent }); + data = (resp.data || '').replace(/\s+$/, ''); + }catch (e) { + log(`[error] HTTP request error from ${authz.identifier.value}`,e.message); + return false + } + + if (!data || (data !== keyAuthorization)) { + log(`[error] Authorization not found in HTTP response from ${authz.identifier.value}`); + return false + } + return true + + } + const httpPort = axios.defaults.acmeSettings.httpChallengePort || 80; const challengeUrl = `http://${authz.identifier.value}:${httpPort}${suffix}`; - /* May redirect to HTTPS with invalid/self-signed cert - https://letsencrypt.org/docs/challenge-types/#http-01-challenge */ - const httpsAgent = new https.Agent({ rejectUnauthorized: false }); - - log(`Sending HTTP query to ${authz.identifier.value}, suffix: ${suffix}, port: ${httpPort}`); - const resp = await axios.get(challengeUrl, { httpsAgent }); - const data = (resp.data || '').replace(/\s+$/, ''); - - log(`Query successful, HTTP status code: ${resp.status}`); - - if (!data || (data !== keyAuthorization)) { - throw new Error(`Authorization not found in HTTP response from ${authz.identifier.value}`); + if (!await doQuery(challengeUrl)) { + const httpsPort = axios.defaults.acmeSettings.httpsChallengePort || 443; + const httpsChallengeUrl = `https://${authz.identifier.value}:${httpsPort}${suffix}`; + const res = await doQuery(httpsChallengeUrl) + if (!res) { + throw new Error(`[error] 验证失败,请检查以上测试url是否可以正常访问`); + } } + log(`Key authorization match for ${challenge.type}/${authz.identifier.value}, ACME challenge verified`); return true; } diff --git a/packages/core/basic/CHANGELOG.md b/packages/core/basic/CHANGELOG.md index c2b42658..d4438364 100644 --- a/packages/core/basic/CHANGELOG.md +++ b/packages/core/basic/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/basic + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Performance Improvements diff --git a/packages/core/basic/build.md b/packages/core/basic/build.md index 335badc4..ae84a845 100644 --- a/packages/core/basic/build.md +++ b/packages/core/basic/build.md @@ -1 +1 @@ -00:16 +20:23 diff --git a/packages/core/basic/package.json b/packages/core/basic/package.json index 540756f2..d5ded6e6 100644 --- a/packages/core/basic/package.json +++ b/packages/core/basic/package.json @@ -1,7 +1,7 @@ { "name": "@certd/basic", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -45,5 +45,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/core/basic/src/utils/util.request.ts b/packages/core/basic/src/utils/util.request.ts index 983b1e39..f1da0a5f 100644 --- a/packages/core/basic/src/utils/util.request.ts +++ b/packages/core/basic/src/utils/util.request.ts @@ -145,7 +145,8 @@ export function createAxiosService({ logger }: { logger: Logger }) { } else { logger.info("http response status:", response?.status); } - if (response?.config?.returnResponse) { + + if (response?.config?.returnOriginRes) { return response; } return response.data; @@ -215,7 +216,7 @@ export type HttpRequestConfig = { logParams?: boolean; logRes?: boolean; httpProxy?: string; - returnResponse?: boolean; + returnOriginRes?: boolean; } & AxiosRequestConfig; export type HttpClient = { request(config: HttpRequestConfig): Promise>; diff --git a/packages/core/pipeline/CHANGELOG.md b/packages/core/pipeline/CHANGELOG.md index 8747e021..5c4a5eee 100644 --- a/packages/core/pipeline/CHANGELOG.md +++ b/packages/core/pipeline/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/pipeline + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/pipeline diff --git a/packages/core/pipeline/package.json b/packages/core/pipeline/package.json index 6ef57cd1..3d15c7ec 100644 --- a/packages/core/pipeline/package.json +++ b/packages/core/pipeline/package.json @@ -1,7 +1,7 @@ { "name": "@certd/pipeline", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,8 +17,8 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.34.1", - "@certd/plus-core": "^1.34.1", + "@certd/basic": "^1.34.2", + "@certd/plus-core": "^1.34.2", "dayjs": "^1.11.7", "lodash-es": "^4.17.21", "reflect-metadata": "^0.1.13" @@ -44,5 +44,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-huawei/CHANGELOG.md b/packages/libs/lib-huawei/CHANGELOG.md index 7250aa71..b0218fd4 100644 --- a/packages/libs/lib-huawei/CHANGELOG.md +++ b/packages/libs/lib-huawei/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/lib-huawei + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/lib-huawei diff --git a/packages/libs/lib-huawei/package.json b/packages/libs/lib-huawei/package.json index 1988cd2b..d259a921 100644 --- a/packages/libs/lib-huawei/package.json +++ b/packages/libs/lib-huawei/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-huawei", "private": false, - "version": "1.34.1", + "version": "1.34.2", "main": "./dist/bundle.js", "module": "./dist/bundle.js", "types": "./dist/d/index.d.ts", @@ -24,5 +24,5 @@ "prettier": "^2.8.8", "tslib": "^2.8.1" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-iframe/CHANGELOG.md b/packages/libs/lib-iframe/CHANGELOG.md index 10f9d2bb..34d85a98 100644 --- a/packages/libs/lib-iframe/CHANGELOG.md +++ b/packages/libs/lib-iframe/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/lib-iframe + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/lib-iframe diff --git a/packages/libs/lib-iframe/package.json b/packages/libs/lib-iframe/package.json index 2a136993..6a60a163 100644 --- a/packages/libs/lib-iframe/package.json +++ b/packages/libs/lib-iframe/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-iframe", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -31,5 +31,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-jdcloud/CHANGELOG.md b/packages/libs/lib-jdcloud/CHANGELOG.md index 8631da46..467cde7d 100644 --- a/packages/libs/lib-jdcloud/CHANGELOG.md +++ b/packages/libs/lib-jdcloud/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/jdcloud + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/jdcloud diff --git a/packages/libs/lib-jdcloud/package.json b/packages/libs/lib-jdcloud/package.json index 8766b729..c2e6fa61 100644 --- a/packages/libs/lib-jdcloud/package.json +++ b/packages/libs/lib-jdcloud/package.json @@ -1,6 +1,6 @@ { "name": "@certd/jdcloud", - "version": "1.34.1", + "version": "1.34.2", "description": "jdcloud openApi sdk", "main": "./dist/bundle.js", "module": "./dist/bundle.js", @@ -61,5 +61,5 @@ "fetch" ] }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-k8s/CHANGELOG.md b/packages/libs/lib-k8s/CHANGELOG.md index 3187d41c..20b5a2e9 100644 --- a/packages/libs/lib-k8s/CHANGELOG.md +++ b/packages/libs/lib-k8s/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/lib-k8s + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/lib-k8s diff --git a/packages/libs/lib-k8s/package.json b/packages/libs/lib-k8s/package.json index eed91b08..783ffe92 100644 --- a/packages/libs/lib-k8s/package.json +++ b/packages/libs/lib-k8s/package.json @@ -1,7 +1,7 @@ { "name": "@certd/lib-k8s", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "module": "./dist/index.js", @@ -17,7 +17,7 @@ "pub": "npm publish" }, "dependencies": { - "@certd/basic": "^1.34.1", + "@certd/basic": "^1.34.2", "@kubernetes/client-node": "0.21.0" }, "devDependencies": { @@ -32,5 +32,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-server/CHANGELOG.md b/packages/libs/lib-server/CHANGELOG.md index bfd86f0e..10ec0d4b 100644 --- a/packages/libs/lib-server/CHANGELOG.md +++ b/packages/libs/lib-server/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Performance Improvements + +* 支持设置网安备案号 ([d18e431](https://github.com/certd/certd/commit/d18e431e2f08e6b37704032c4ea6fbdd8e971442)) + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/lib-server diff --git a/packages/libs/lib-server/package.json b/packages/libs/lib-server/package.json index b621f6a2..85e52143 100644 --- a/packages/libs/lib-server/package.json +++ b/packages/libs/lib-server/package.json @@ -1,6 +1,6 @@ { "name": "@certd/lib-server", - "version": "1.34.1", + "version": "1.34.2", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -27,10 +27,10 @@ ], "license": "AGPL", "dependencies": { - "@certd/acme-client": "^1.34.1", - "@certd/basic": "^1.34.1", - "@certd/pipeline": "^1.34.1", - "@certd/plus-core": "^1.34.1", + "@certd/acme-client": "^1.34.2", + "@certd/basic": "^1.34.2", + "@certd/pipeline": "^1.34.2", + "@certd/plus-core": "^1.34.2", "@midwayjs/cache": "~3.14.0", "@midwayjs/core": "~3.20.3", "@midwayjs/i18n": "~3.20.3", @@ -61,5 +61,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/libs/lib-server/src/system/settings/service/models.ts b/packages/libs/lib-server/src/system/settings/service/models.ts index 61161f7a..5c99a0c9 100644 --- a/packages/libs/lib-server/src/system/settings/service/models.ts +++ b/packages/libs/lib-server/src/system/settings/service/models.ts @@ -25,6 +25,7 @@ export class SysPublicSettings extends BaseSettings { limitUserPipelineCount = 0; managerOtherUserPipeline = false; icpNo?: string; + mpsNo?: string; robots?: boolean = true; } diff --git a/packages/libs/midway-flyway-js/CHANGELOG.md b/packages/libs/midway-flyway-js/CHANGELOG.md index 3d179a83..869ccd31 100644 --- a/packages/libs/midway-flyway-js/CHANGELOG.md +++ b/packages/libs/midway-flyway-js/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/midway-flyway-js + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) **Note:** Version bump only for package @certd/midway-flyway-js diff --git a/packages/libs/midway-flyway-js/package.json b/packages/libs/midway-flyway-js/package.json index a8d205f4..51c2cdf2 100644 --- a/packages/libs/midway-flyway-js/package.json +++ b/packages/libs/midway-flyway-js/package.json @@ -1,6 +1,6 @@ { "name": "@certd/midway-flyway-js", - "version": "1.34.1", + "version": "1.34.2", "description": "midway with flyway, sql upgrade way ", "private": false, "type": "module", @@ -46,5 +46,5 @@ "typeorm": "^0.3.11", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/plugins/plugin-cert/CHANGELOG.md b/packages/plugins/plugin-cert/CHANGELOG.md index 227cc3bf..928f18bd 100644 --- a/packages/plugins/plugin-cert/CHANGELOG.md +++ b/packages/plugins/plugin-cert/CHANGELOG.md @@ -3,6 +3,10 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +**Note:** Version bump only for package @certd/plugin-cert + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Bug Fixes diff --git a/packages/plugins/plugin-cert/package.json b/packages/plugins/plugin-cert/package.json index b9e00dc0..263509a5 100644 --- a/packages/plugins/plugin-cert/package.json +++ b/packages/plugins/plugin-cert/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-cert", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -16,10 +16,10 @@ "pub": "npm publish" }, "dependencies": { - "@certd/acme-client": "^1.34.1", - "@certd/basic": "^1.34.1", - "@certd/pipeline": "^1.34.1", - "@certd/plugin-lib": "^1.34.1", + "@certd/acme-client": "^1.34.2", + "@certd/basic": "^1.34.2", + "@certd/pipeline": "^1.34.2", + "@certd/plugin-lib": "^1.34.2", "@google-cloud/publicca": "^1.3.0", "dayjs": "^1.11.7", "jszip": "^3.10.1", @@ -43,5 +43,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/plugins/plugin-cert/src/dns-provider/base.ts b/packages/plugins/plugin-cert/src/dns-provider/base.ts index ae9a61ce..25dfa5a8 100644 --- a/packages/plugins/plugin-cert/src/dns-provider/base.ts +++ b/packages/plugins/plugin-cert/src/dns-provider/base.ts @@ -8,6 +8,8 @@ export abstract class AbstractDnsProvider implements IDnsProvider { logger!: ILogger; usePunyCode(): boolean { + //是否使用punycode来添加解析记录 + //默认都使用原始中文域名来添加 return false; } diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts index d01d8d11..beb99697 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/acme.ts @@ -63,6 +63,7 @@ type AcmeServiceOptions = { maxCheckRetryCount?: number; userId: number; domainParser: IDomainParser; + waitDnsDiffuseTime?: number; }; export class AcmeService { diff --git a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts index ec0a3098..39a1e552 100644 --- a/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts +++ b/packages/plugins/plugin-cert/src/plugin/cert-plugin/index.ts @@ -68,9 +68,9 @@ export class CertApplyPlugin extends CertApplyBasePlugin { ], }, required: true, - helper: `DNS直接验证:域名是在阿里云/腾讯云/华为云/Cloudflare/NameSilo/西数/火山/dns.la/京东云注册的,选它; -CNAME代理验证:支持任何注册商注册的域名,但第一次需要手动添加CNAME记录; -HTTP文件验证:不支持泛域名,需要配置网站文件上传`, + helper: `1. DNS直接验证:域名dns解析是在阿里云/腾讯云/华为云/CF/NameSilo/西数/火山/dns.la/京东云/51dns的,选它 +2. CNAME代理验证:支持任何注册商的域名,第一次需要手动添加CNAME记录(建议将DNS服务器修改为阿里云/腾讯云的,然后使用DNS直接验证) +3. HTTP文件验证:不支持泛域名,需要配置网站文件上传`, }) challengeType!: string; @@ -290,6 +290,17 @@ HTTP文件验证:不支持泛域名,需要配置网站文件上传`, }) maxCheckRetryCount = 20; + @TaskInput({ + title: "等待解析生效时长", + value: 30, + component: { + name: "a-input-number", + vModel: "value", + }, + helper: "等待解析生效时长(秒)", + }) + waitDnsDiffuseTime = 30; + acme!: AcmeService; eab!: EabAccess; @@ -341,6 +352,7 @@ HTTP文件验证:不支持泛域名,需要配置网站文件上传`, signal: this.ctx.signal, maxCheckRetryCount: this.maxCheckRetryCount, domainParser, + waitDnsDiffuseTime: this.waitDnsDiffuseTime, }); } diff --git a/packages/plugins/plugin-lib/CHANGELOG.md b/packages/plugins/plugin-lib/CHANGELOG.md index 73d70411..7c5ba6b9 100644 --- a/packages/plugins/plugin-lib/CHANGELOG.md +++ b/packages/plugins/plugin-lib/CHANGELOG.md @@ -3,6 +3,12 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Performance Improvements + +* http方式支持校验443端口 ([d75fcb7](https://github.com/certd/certd/commit/d75fcb7fec421a9a638eaa27fe9378c84b5e0f19)) + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Performance Improvements diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index bca59572..9e6b9fd1 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -1,7 +1,7 @@ { "name": "@certd/plugin-lib", "private": false, - "version": "1.34.1", + "version": "1.34.2", "type": "module", "main": "./dist/index.js", "types": "./dist/index.d.ts", @@ -18,8 +18,8 @@ "dependencies": { "@alicloud/pop-core": "^1.7.10", "@aws-sdk/client-s3": "^3.787.0", - "@certd/basic": "^1.34.1", - "@certd/pipeline": "^1.34.1", + "@certd/basic": "^1.34.2", + "@certd/pipeline": "^1.34.2", "@kubernetes/client-node": "0.21.0", "ali-oss": "^6.22.0", "basic-ftp": "^5.0.5", @@ -50,5 +50,5 @@ "tslib": "^2.8.1", "typescript": "^5.4.2" }, - "gitHead": "6c74148c277432f91014bf1eebd824e7423c6f4b" + "gitHead": "a1e504c1387e9b0554c8d030cb53c5058e7d683a" } diff --git a/packages/plugins/plugin-lib/src/aliyun/lib/oss-client.ts b/packages/plugins/plugin-lib/src/aliyun/lib/oss-client.ts index 362abc9b..9b23309d 100644 --- a/packages/plugins/plugin-lib/src/aliyun/lib/oss-client.ts +++ b/packages/plugins/plugin-lib/src/aliyun/lib/oss-client.ts @@ -52,9 +52,11 @@ export class AliossClient { } } - async uploadFile(filePath: string, content: Buffer | string) { + async uploadFile(filePath: string, content: Buffer | string, timeout = 1000 * 60 * 60) { await this.init(); - return await this.client.put(filePath, content); + return await this.client.put(filePath, content, { + timeout, + }); } async removeFile(filePath: string) { @@ -62,9 +64,11 @@ export class AliossClient { return await this.client.delete(filePath); } - async downloadFile(key: string, savePath: string) { + async downloadFile(key: string, savePath: string, timeout = 1000 * 60 * 60) { await this.init(); - return await this.client.get(key, savePath); + return await this.client.get(key, savePath, { + timeout, + }); } async listDir(dirKey: string) { diff --git a/packages/ui/certd-client/CHANGELOG.md b/packages/ui/certd-client/CHANGELOG.md index 92abc035..e3e95d8a 100644 --- a/packages/ui/certd-client/CHANGELOG.md +++ b/packages/ui/certd-client/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.34.2](https://github.com/certd/certd/compare/v1.34.1...v1.34.2) (2025-05-11) + +### Bug Fixes + +* 修复刷新流水线页面后,日志不自动更新的bug ([0b2e28b](https://github.com/certd/certd/commit/0b2e28b62dd5eb6804c602083e65c87a9d1d72d2)) + +### Performance Improvements + +* 集成智能问答机器人 ([9dd4905](https://github.com/certd/certd/commit/9dd49054d18ec436a5029444ca55a38adc682933)) +* 支持设置网安备案号 ([d18e431](https://github.com/certd/certd/commit/d18e431e2f08e6b37704032c4ea6fbdd8e971442)) + ## [1.34.1](https://github.com/certd/certd/compare/v1.34.0...v1.34.1) (2025-05-05) ### Bug Fixes diff --git a/packages/ui/certd-client/package.json b/packages/ui/certd-client/package.json index 759c044f..ee232cb2 100644 --- a/packages/ui/certd-client/package.json +++ b/packages/ui/certd-client/package.json @@ -1,6 +1,6 @@ { "name": "@certd/ui-client", - "version": "1.34.1", + "version": "1.34.2", "private": true, "scripts": { "dev": "vite --open", @@ -102,8 +102,8 @@ "zod-defaults": "^0.1.3" }, "devDependencies": { - "@certd/lib-iframe": "^1.34.1", - "@certd/pipeline": "^1.34.1", + "@certd/lib-iframe": "^1.34.2", + "@certd/pipeline": "^1.34.2", "@rollup/plugin-commonjs": "^25.0.7", "@rollup/plugin-node-resolve": "^15.2.3", "@types/chai": "^4.3.12", diff --git a/packages/ui/certd-client/src/App.vue b/packages/ui/certd-client/src/App.vue index 9197921d..d8f9367f 100644 --- a/packages/ui/certd-client/src/App.vue +++ b/packages/ui/certd-client/src/App.vue @@ -3,6 +3,7 @@ + @@ -10,7 +11,7 @@ diff --git a/packages/ui/certd-client/src/api/service.ts b/packages/ui/certd-client/src/api/service.ts index 116db11d..7a16c726 100644 --- a/packages/ui/certd-client/src/api/service.ts +++ b/packages/ui/certd-client/src/api/service.ts @@ -36,7 +36,7 @@ function createService() { return response; } //@ts-ignore - if (response.config.returnResponse) { + if (response.config.returnOriginRes) { return response; } // dataAxios 是 axios 返回数据中的 data diff --git a/packages/ui/certd-client/src/components/ai/index.vue b/packages/ui/certd-client/src/components/ai/index.vue new file mode 100644 index 00000000..dc9020de --- /dev/null +++ b/packages/ui/certd-client/src/components/ai/index.vue @@ -0,0 +1,307 @@ + + + + + diff --git a/packages/ui/certd-client/src/components/index.ts b/packages/ui/certd-client/src/components/index.ts index 4698b26d..ed9ea3e2 100644 --- a/packages/ui/certd-client/src/components/index.ts +++ b/packages/ui/certd-client/src/components/index.ts @@ -19,6 +19,7 @@ export default { "CodeEditor", defineAsyncComponent(() => import("./code-editor/index.vue")) ); + app.component("PiContainer", PiContainer); app.component("TextEditable", TextEditable); app.component("FileInput", FileInput); diff --git a/packages/ui/certd-client/src/layout/components/footer/index.vue b/packages/ui/certd-client/src/layout/components/footer/index.vue index 1644f596..4eac1265 100644 --- a/packages/ui/certd-client/src/layout/components/footer/index.vue +++ b/packages/ui/certd-client/src/layout/components/footer/index.vue @@ -15,8 +15,13 @@ + + + {{ sysPublic.mpsNo }} +
v{{ version }}
@@ -26,7 +31,7 @@ import { computed, onMounted, ref } from "vue"; import { useSettingStore } from "/@/store/settings"; defineOptions({ - name: "PageFooter" + name: "PageFooter", }); const version = ref(import.meta.env.VITE_APP_VERSION); diff --git a/packages/ui/certd-client/src/layout/layout-basic.vue b/packages/ui/certd-client/src/layout/layout-basic.vue index 04736a56..da33b3e6 100644 --- a/packages/ui/certd-client/src/layout/layout-basic.vue +++ b/packages/ui/certd-client/src/layout/layout-basic.vue @@ -20,8 +20,8 @@ const menus = computed(() => [ router.push("/certd/mine/user-profile"); }, icon: "fa-solid:book", - text: "账号信息" - } + text: "账号信息", + }, ]); const avatar = computed(() => { @@ -42,7 +42,7 @@ const siteInfo = computed(() => { return settingStore.siteInfo; }); -onErrorCaptured((e) => { +onErrorCaptured(e => { console.error("ErrorCaptured:", e); // notification.error({ message: e.message }); //阻止错误向上传递 @@ -69,6 +69,9 @@ onMounted(async () => {
+
+ +