Compare commits

...

1140 Commits

Author SHA1 Message Date
xiaojunnuo
c31eef6b82 chore: buy 2025-11-09 00:12:31 +08:00
xiaojunnuo
0c99f41bd9 chore: bindurl 提示消除 2025-11-05 00:08:59 +08:00
xiaojunnuo
bcac810f71 Merge branch 'v2-dev' into v2-dev-buy 2025-11-04 23:04:11 +08:00
xiaojunnuo
feae105426 docs: 群晖delegated配置说明 2025-11-03 18:22:35 +08:00
xiaojunnuo
d46b9c54b1 perf: 支持记忆字段排序 2025-10-31 16:57:32 +08:00
xiaojunnuo
d0b7162b6a Merge branch 'v2-dev' of https://github.com/certd/certd into v2-dev 2025-10-30 15:08:20 +08:00
xiaojunnuo
c16660254b fix: 修复批量修改定时没有立即显示生效的bug 2025-10-30 15:08:14 +08:00
xiaojunnuo
bbe0d52740 build: release 2025-10-29 01:52:41 +08:00
xiaojunnuo
65117ebdd7 build: publish 2025-10-29 01:32:37 +08:00
xiaojunnuo
445d55e800 build: trigger build image 2025-10-29 01:32:19 +08:00
xiaojunnuo
dbce751464 v1.37.4 2025-10-29 01:30:41 +08:00
xiaojunnuo
b8640d903f build: prepare to build 2025-10-29 01:28:26 +08:00
xiaojunnuo
6e7560ee77 build: prepare to build 2025-10-29 01:25:54 +08:00
xiaojunnuo
efa26a067f fix: 修复站点证书监控复制按钮无效的bug 2025-10-28 23:45:08 +08:00
xiaojunnuo
f7cf7c198d fix: 修复lego模式下 私钥加密类型错误的bug 2025-10-28 15:46:52 +08:00
xiaojunnuo
d32f4fc38e 修复邮箱注册验证码报错的bug 2025-10-28 15:30:31 +08:00
xiaojunnuo
0c8b8647f3 docs: openapi 2025-10-28 10:34:52 +08:00
xiaojunnuo
c38dbbb1d7 perf: 优化数据备份效率,流式写入文件 2025-10-27 15:25:41 +08:00
xiaojunnuo
98cec15625 build: release 2025-10-25 01:26:51 +08:00
xiaojunnuo
bad9828f47 build: publish 2025-10-25 01:15:11 +08:00
xiaojunnuo
18f91ddffa build: trigger build image 2025-10-25 01:14:52 +08:00
xiaojunnuo
335745d365 v1.37.3 2025-10-25 01:13:14 +08:00
xiaojunnuo
4204b31398 build: prepare to build 2025-10-25 01:10:48 +08:00
xiaojunnuo
029a568645 build: prepare to build 2025-10-25 01:06:05 +08:00
xiaojunnuo
6b2f1fcd3e perf: 注册页面增加手机注册tab页签 2025-10-25 01:05:42 +08:00
xiaojunnuo
3bdc610249 chore: 流水线有效期 2025-10-25 00:42:27 +08:00
xiaojunnuo
c03a70fde2 fix: 修复网络测试,telnet的bug 2025-10-25 00:15:40 +08:00
xiaojunnuo
c77645e173 perf: 通知支持meow 2025-10-25 00:09:54 +08:00
xiaojunnuo
6531002d61 chore: 流水线有效期优化 2025-10-24 23:48:32 +08:00
xiaojunnuo
fea808ca5f chore: 1 2025-10-24 23:11:21 +08:00
xiaojunnuo
59ba408070 perf: 流水线创建时支持添加到证书监控 2025-10-24 23:10:20 +08:00
xiaojunnuo
3a8931feef perf: ssh 增加禁止-i参数提示 2025-10-24 22:48:32 +08:00
xiaojunnuo
7ebd8f6bf5 chore: 1 2025-10-23 00:37:35 +08:00
xiaojunnuo
73883979c6 chore: 1 2025-10-23 00:37:09 +08:00
xiaojunnuo
d8935b46b3 chore: check before 2025-10-23 00:36:20 +08:00
xiaojunnuo
1505d04622 chore: pipeline valid time add to plus 2025-10-23 00:14:31 +08:00
xiaojunnuo
3b690cc31f 支持开启流水线有效期设置 2025-10-23 00:05:36 +08:00
xiaojunnuo
b3814920bd perf: 群辉增加请求超时时长设置 2025-10-22 23:40:00 +08:00
xiaojunnuo
8bf1f828b9 perf: esa 自动删除过期证书提示 2025-10-22 23:07:33 +08:00
xiaojunnuo
911e69e3bc perf: 流水线支持有效期设置 2025-10-21 23:23:56 +08:00
xiaojunnuo
77b4a1eaf6 站点监控批量导入支持分组和备注 2025-10-21 22:38:02 +08:00
xiaojunnuo
2ed12c429e perf: 站点证书监控增加导出和分组功能 2025-10-21 22:28:02 +08:00
xiaojunnuo
e578c52fdf perf: 证书监控增加批量删除 2025-10-21 00:01:28 +08:00
xiaojunnuo
5ff4e3c4ea chore: 1 2025-10-17 14:48:39 +08:00
xiaojunnuo
1c2e7256c1 doc: 1 2025-10-17 13:43:15 +08:00
xiaojunnuo
7a51ca225a Merge branch 'v2' into v2-dev 2025-10-17 09:34:22 +08:00
xiaojunnuo
8d242d8072 Merge branch 'v2-dev' of https://github.com/certd/certd into v2-dev 2025-10-17 09:33:24 +08:00
xiaojunnuo
543b068efa chore: gitignore 2025-10-17 09:33:14 +08:00
xiaojunnuo
eadbd5e821 doc: plugin doc gen 2025-10-17 09:32:14 +08:00
xiaojunnuo
c771f5a13c Merge branch 'v2' of https://github.com/certd/certd into v2 2025-10-17 09:25:31 +08:00
xiaojunnuo
f13b3111c3 doc: plugin-doc-gen 2025-10-17 09:25:22 +08:00
xiaojunnuo
bb2714ff24 fix: 修复并发情况下证书申请日志混乱的bug 2025-10-15 23:03:59 +08:00
xiaojunnuo
54c42b1fc2 build: release 2025-10-14 23:24:59 +08:00
xiaojunnuo
1f42f933f0 fix: 修复站点证书监控,证书已经更新到最新日期了,仍然发出警告通知的bug 2025-10-14 23:24:47 +08:00
xiaojunnuo
6c533d225b chore: 1 2025-10-14 23:00:30 +08:00
xiaojunnuo
67a89d1289 chore: 1 2025-10-14 22:53:32 +08:00
xiaojunnuo
0b9bef2f38 build: publish 2025-10-14 22:52:22 +08:00
xiaojunnuo
1c4649409d build: trigger build image 2025-10-14 22:52:03 +08:00
xiaojunnuo
e1daaf07ce v1.37.2 2025-10-14 22:50:33 +08:00
xiaojunnuo
cd21f2d1d7 build: prepare to build 2025-10-14 22:48:36 +08:00
xiaojunnuo
836e41064f build: prepare to build 2025-10-14 22:43:55 +08:00
xiaojunnuo
4658e4c739 build: prepare to build 2025-10-14 22:41:32 +08:00
xiaojunnuo
7993a7cdb0 perf: 优化start.sh脚本,去掉删除非ui目录的操作及提示 2025-10-14 22:41:03 +08:00
xiaojunnuo
567cb7d737 perf: start.sh脚本支持根据当前系统判断是否使用sudo 2025-10-14 22:35:24 +08:00
xiaojunnuo
985128b537 chore: 1 2025-10-14 22:25:42 +08:00
xiaojunnuo
cd35568e04 perf: 证书监控支持设置证书即将过期天数 2025-10-14 22:25:04 +08:00
xiaojunnuo
f612509cac perf: 支持新网代理方式 2025-10-14 12:05:31 +08:00
xiaojunnuo
f415190483 perf: dns支持新网互联 2025-10-14 10:55:10 +08:00
xiaojunnuo
e00733a346 fix: aliyunoss 选择证书接入点选择新加坡无法上传的bug 2025-10-13 23:16:03 +08:00
xiaojunnuo
aafafa0e73 chore: 1 2025-10-12 23:57:17 +08:00
xiaojunnuo
c87c9af12e chore: 1 2025-10-12 23:56:14 +08:00
xiaojunnuo
622215715f chore: 删除无用依赖 2025-10-11 19:08:14 +08:00
xiaojunnuo
c87250c028 docs: ipv6地址提示 2025-10-11 18:52:57 +08:00
xiaojunnuo
d6b6d700a5 docs: ipv6地址提示 2025-10-11 18:21:17 +08:00
xiaojunnuo
9d4e2c98a3 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-10-11 17:00:00 +08:00
xiaojunnuo
08094c2660 docs: ipv6地址提示 2025-10-11 16:59:28 +08:00
xiaojunnuo
fda82c82b0 chore: 1 2025-10-07 21:54:50 +08:00
xiaojunnuo
f0eabd4ea0 build: vscode auto compile 2025-10-07 21:45:09 +08:00
xiaojunnuo
5a4d812146 perf: 增加飞牛证书id选择的提示 2025-10-07 21:05:28 +08:00
xiaojunnuo
bf156a13bd fix: 修复飞牛证书部署后无法生效的bug 2025-10-07 21:01:19 +08:00
xiaojunnuo
53d276a8fc chore: 官方email服务支持发送附件 2025-10-05 22:44:59 +08:00
xiaojunnuo
978fa54518 Merge branch 'v2-dev' of https://github.com/certd/certd into v2-dev 2025-10-05 08:05:59 +00:00
xiaojunnuo
31f82e58b5 chore: test优化 2025-10-05 07:59:56 +00:00
xiaojunnuo
5967f66e6d chore: 1 2025-10-05 15:01:35 +08:00
xiaojunnuo
bea81b54ca chore: 1 2025-10-05 14:52:25 +08:00
xiaojunnuo
6fd403bdca Merge branch 'v2-dev' of https://github.com/certd/certd into v2-dev 2025-10-05 14:47:45 +08:00
xiaojunnuo
3d673d9d40 chroe: remote 2025-10-05 14:47:40 +08:00
xiaojunnuo
cac949de56 Merge branch 'v2-dev' of https://github.com/certd/certd into v2-dev 2025-10-05 05:57:03 +00:00
xiaojunnuo
dffa152698 chore: nettest 2025-10-05 13:10:03 +08:00
xiaojunnuo
7796298fca 1 2025-10-01 02:11:03 +08:00
xiaojunnuo
5291bfe8d4 chore: 网络测试 2025-09-30 18:03:16 +00:00
xiaojunnuo
b364313297 chore: linux 网络测试命令验证 2025-09-30 18:01:49 +00:00
xiaojunnuo
2bef608e07 perf: 支持网络测试 2025-09-30 23:27:31 +08:00
xiaojunnuo
aee13ad909 docs 2025-09-29 21:11:43 +08:00
xiaojunnuo
9d82eba599 docs: 2025-09-29 21:00:28 +08:00
xiaojunnuo
4852beb390 1.37.1 2025-09-29 20:48:34 +08:00
xiaojunnuo
522c2f61c0 build: publish 2025-09-29 20:37:20 +08:00
xiaojunnuo
d331396afe build: trigger build image 2025-09-29 20:37:03 +08:00
xiaojunnuo
c725cee044 v1.37.1 2025-09-29 20:35:30 +08:00
xiaojunnuo
367ef4ecb2 build: prepare to build 2025-09-29 20:32:54 +08:00
xiaojunnuo
c3a64facd5 chore 2025-09-29 20:32:31 +08:00
xiaojunnuo
2671781e1b fix: 修复某些情况下cname申请证书报错主域名不一致的bug 2025-09-29 18:58:19 +08:00
xiaojunnuo
9291fa68aa perf: dns解析支持阿里esa 2025-09-28 23:29:56 +08:00
xiaojunnuo
6ebb3659f4 perf: cname主域名校验提示优化,显示不一致的两方便于排查问题 2025-09-28 16:18:39 +08:00
xiaojunnuo
109696e965 fix: 修复版本比较bug 2025-09-28 12:49:53 +08:00
xiaojunnuo
b86bbd370c chore: deploy 1.37.0 2025-09-28 12:44:02 +08:00
xiaojunnuo
1575a4fb1a chore: deploy 1.37.0 2025-09-28 12:42:54 +08:00
xiaojunnuo
e2f500be90 chore: deploy 1.37.0 2025-09-28 12:37:22 +08:00
xiaojunnuo
284b00a826 chore: 2025-09-28 12:21:42 +08:00
xiaojunnuo
66180e19b5 build: publish 2025-09-28 12:18:46 +08:00
xiaojunnuo
1531462d22 build: trigger build image 2025-09-28 12:18:30 +08:00
xiaojunnuo
e17cd1f298 v1.37.0 2025-09-28 12:17:05 +08:00
xiaojunnuo
13092e9f80 build: prepare to build 2025-09-28 12:14:35 +08:00
xiaojunnuo
8133b8b9dd build: prepare to build 2025-09-28 12:07:54 +08:00
xiaojunnuo
e25aafac6d chore: 2025-09-28 12:07:51 +08:00
xiaojunnuo
037c7beb1b build: prepare to build 2025-09-28 12:06:22 +08:00
xiaojunnuo
faac4dfc30 chore: 2025-09-28 12:06:13 +08:00
xiaojunnuo
469a088a4d build: prepare to build 2025-09-28 11:30:24 +08:00
xiaojunnuo
9c854f727f chore: 2025-09-28 11:29:57 +08:00
xiaojunnuo
8f6e5bd24b feat: dist打包前检查 2025-09-28 11:02:25 +08:00
xiaojunnuo
992f91cf4c Merge branch 'refs/heads/v2' into v2-dev 2025-09-28 10:42:17 +08:00
xiaojunnuo
0c61d4c978 feat: @certd/ui-server module import报错的问题 2025-09-28 09:58:22 +08:00
xiaojunnuo
72d32edf9a build: publish 2025-09-27 09:41:54 +08:00
xiaojunnuo
dde39def9e build: trigger build image 2025-09-27 09:41:37 +08:00
xiaojunnuo
6b43007c44 v1.36.25 2025-09-27 09:40:13 +08:00
xiaojunnuo
876558cf77 build: prepare to build 2025-09-27 09:38:14 +08:00
xiaojunnuo
b35a146edf chore: 2025-09-27 09:37:30 +08:00
xiaojunnuo
86cf6a9908 chore: 2025-09-27 09:30:22 +08:00
xiaojunnuo
b0f7288ac0 build: prepare to build 2025-09-27 09:28:26 +08:00
xiaojunnuo
32fcc1a8fb chore: 2025-09-27 09:27:21 +08:00
xiaojunnuo
eb4d125eaf fix: 固定midwayjs版本,修复ui-server import 错误的bug 2025-09-27 09:26:17 +08:00
xiaojunnuo
87e5cced3c chore: 2025-09-27 09:03:29 +08:00
xiaojunnuo
bcd9ee2d48 build: publish 2025-09-27 08:36:18 +08:00
xiaojunnuo
edf3d87458 build: trigger build image 2025-09-27 08:36:02 +08:00
xiaojunnuo
0c0c353ecc v1.36.24 2025-09-27 08:34:35 +08:00
xiaojunnuo
aaa4c8f899 build: prepare to build 2025-09-27 08:32:23 +08:00
xiaojunnuo
57e3565c11 chore: 2025-09-27 08:32:17 +08:00
xiaojunnuo
fbcf72d762 build: prepare to build 2025-09-27 08:31:29 +08:00
xiaojunnuo
ca8daa836e Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-09-27 08:29:44 +08:00
xiaojunnuo
c2ccdbec9d fix: 修复 ui-server 加载失败问题 2025-09-27 08:29:22 +08:00
xiaojunnuo
69aee36e75 chore: 修复 ui-server 加载失败问题 2025-09-27 08:29:16 +08:00
xiaojunnuo
063f5c3b55 fix: 修复 ui-server 加载失败问题 2025-09-27 08:26:18 +08:00
xiaojunnuo
6d1b8ca65e chore: fix ui-server 加载失败问题 2025-09-27 08:24:39 +08:00
xiaojunnuo
03899d4d9c perf: 重置管理员密码同时会关闭验证码,防止验证码失效之后无法登录 2025-09-27 01:47:53 +08:00
xiaojunnuo
2b84af977d build: publish 2025-09-27 01:45:35 +08:00
xiaojunnuo
e15b180322 build: trigger build image 2025-09-27 01:45:19 +08:00
xiaojunnuo
f070030f6b v1.36.23 2025-09-27 01:43:28 +08:00
xiaojunnuo
330ac66b38 build: prepare to build 2025-09-27 01:39:53 +08:00
xiaojunnuo
12a9e650af chore: sql 2025-09-27 01:39:30 +08:00
xiaojunnuo
1e5ccd811e build: prepare to build 2025-09-27 01:35:54 +08:00
xiaojunnuo
2902ee6ad5 chore: sql 2025-09-27 01:35:39 +08:00
xiaojunnuo
90ce4fec2c chore: sql 2025-09-27 01:24:34 +08:00
xiaojunnuo
a7ab26d08d chore: 2025-09-27 01:19:32 +08:00
xiaojunnuo
dcc396afb7 perf: 动态加载验证码script 2025-09-27 00:43:20 +08:00
xiaojunnuo
3f1722d54d fix: 授权页面,id列位置不在第一列的bug 2025-09-27 00:17:29 +08:00
xiaojunnuo
c79658afbb chore: 2025-09-26 01:32:26 +08:00
xiaojunnuo
6f84ebb323 chore: 2025-09-26 01:27:55 +08:00
xiaojunnuo
54c8d62243 perf: 开启子域名托管之后cname记录支持重置 2025-09-26 01:21:24 +08:00
xiaojunnuo
83e6476408 perf: 验证码支持测试,登录验证码需要测试通过后才能开启 2025-09-26 01:21:01 +08:00
xiaojunnuo
03f317ffdb perf: 支持腾讯云验证码 2025-09-26 01:20:25 +08:00
xiaojunnuo
3f67c7c74a docs: 增加子域名托管下的cname记录问题说明 2025-09-25 22:38:13 +08:00
xiaojunnuo
b8b4660563 chore: 1 2025-09-24 23:55:43 +08:00
xiaojunnuo
3d42bfd479 perf: 手动上传证书优化,增加到期前报错提醒 2025-09-24 14:14:19 +08:00
xiaojunnuo
c4ebbaba74 Merge branch 'v2-dev' into v2-dev-buy
# Conflicts:
#	packages/core/basic/src/utils/util.hash.ts
2025-09-24 01:58:11 +08:00
xiaojunnuo
2ae193092d build: publish 2025-09-24 01:50:34 +08:00
xiaojunnuo
7e1d52ff00 build: trigger build image 2025-09-24 01:50:19 +08:00
xiaojunnuo
c98f43b984 v1.36.22 2025-09-24 01:48:55 +08:00
xiaojunnuo
e93f128a7a build: prepare to build 2025-09-24 01:46:48 +08:00
xiaojunnuo
71d8e7edd2 perf: 优化连接失败的报错提示 2025-09-24 01:40:11 +08:00
xiaojunnuo
48f4298a8d chore: 新网已支持 2025-09-24 00:55:31 +08:00
xiaojunnuo
1c15beadc7 perf: 登录失败时清除验证码状态 2025-09-24 00:06:00 +08:00
xiaojunnuo
2c1600ddfb chore: 新网dns完善 2025-09-23 23:27:36 +08:00
xiaojunnuo
298f7d9d52 chore: 新网dns完善 2025-09-23 23:24:36 +08:00
xiaojunnuo
105f0bfde2 chore: 2025-09-23 00:56:08 +08:00
xiaojunnuo
cf3a78e114 perf: dns支持新网域名解析 2025-09-22 23:30:28 +08:00
xiaojunnuo
9cc5f0f889 perf: 公共cname支持权限校验 2025-09-22 23:29:55 +08:00
xiaojunnuo
81e588a896 Merge branch 'refs/heads/v2-dev' into v2-dev-buy
# Conflicts:
#	docs/.vitepress/config.ts
#	packages/ui/certd-client/src/views/certd/pipeline/sub-domain/index.vue
2025-09-22 22:29:59 +08:00
xiaojunnuo
e30db9ee77 docs: 2025-09-21 17:33:44 +08:00
xiaojunnuo
235be757f8 Merge branch 'v2' into v2-dev 2025-09-19 18:03:15 +08:00
Zero Clover
e31d26a887 perf: add preferred chain for google trust service (#539) @ZeroClover 2025-09-19 17:36:29 +08:00
xiaojunnuo
2293ba02ea docs: 宝塔动态IP白名单 2025-09-19 15:31:59 +08:00
xiaojunnuo
7188997dd1 perf: 7001绑定::地址 2025-09-18 10:05:07 +08:00
xiaojunnuo
31cfb09468 fix: 选择授权对话框编辑时,名称字段排在最后的bug 2025-09-17 16:15:31 +08:00
xiaojunnuo
b76f2e2008 fix: 修复旧版本升级上来报错eab授权的bug 2025-09-17 13:25:08 +08:00
xiaojunnuo
4b90972341 perf: gcore flush plugin ssl_id改为必填项 2025-09-16 10:26:16 +08:00
xiaojunnuo
f4ff34224c Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-09-16 09:31:54 +08:00
xiaojunnuo
877c9c4ff9 perf: 增加自签名证书提示 2025-09-16 09:31:02 +08:00
xiaojunnuo
ac0b7291dd build: publish 2025-09-15 21:10:22 +08:00
xiaojunnuo
491ef6085a build: trigger build image 2025-09-15 21:09:51 +08:00
xiaojunnuo
3cedef4974 v1.36.21 2025-09-15 21:08:26 +08:00
xiaojunnuo
22ab04bd2b build: prepare to build 2025-09-15 20:59:51 +08:00
xiaojunnuo
e5a080aebe fix: 修复导入插件对话框无法打开的bug,修复插件编辑页面打开多个代码编辑器消失的bug 2025-09-15 18:03:55 +08:00
xiaojunnuo
c560cc5add fix: 修复ssl.com报EMAILADDRESS数量不对的bug 2025-09-14 23:01:18 +08:00
xiaojunnuo
0d27bc323b chore: build new version 2025-09-14 02:29:41 +08:00
xiaojunnuo
c71d3cef18 chore: 升级fast-crud 2025-09-14 02:29:22 +08:00
xiaojunnuo
4e2d8daa3a chore: 2025-09-14 02:16:55 +08:00
xiaojunnuo
d0f51da0af chore: 2025-09-14 01:51:16 +08:00
xiaojunnuo
aeb73bca27 chore: 2025-09-14 01:40:55 +08:00
xiaojunnuo
f239b03291 chore: 2025-09-14 01:39:52 +08:00
xiaojunnuo
297c2965f4 Merge branch 'v2-dev' into v2 2025-09-14 01:04:20 +08:00
xiaojunnuo
daddf4d98e build: publish 2025-09-14 01:01:39 +08:00
xiaojunnuo
e05f9bfebf build: trigger build image 2025-09-14 01:01:18 +08:00
xiaojunnuo
ef46aeae6f v1.36.20 2025-09-14 00:59:40 +08:00
xiaojunnuo
7edb3fd856 build: prepare to build 2025-09-14 00:56:22 +08:00
xiaojunnuo
43b79778ea fix: 修复授权类型和名称字段排到最后的bug 2025-09-14 00:47:30 +08:00
xiaojunnuo
37f1f53b56 chore: 数据库同步 2025-09-14 00:40:38 +08:00
xiaojunnuo
67bd1cdcd9 chore: 2025-09-14 00:22:17 +08:00
xiaojunnuo
506385e5a2 fix: 修复证书手动托管时新上传的证书无效的bug 2025-09-13 23:59:16 +08:00
ahe
2d4586b1c4 perf: 证书到期剩余天数进度条根据实际证书有效期计算 (#528) nicheng-he
* Create FUNDING.yml

* Update FUNDING.yml

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README_en.md

* 证书到期剩余天数进度条根据实际证书时间计算

---------

Co-authored-by: greper <xiaojunnuo@qq.com>
2025-09-13 23:40:06 +08:00
xiaojunnuo
1476b9cb9c chore: 设置tab页签标题中英文优化 2025-09-13 23:33:18 +08:00
xiaojunnuo
7bdde68ece perf: 登录注册、找回密码都支持极验验证码和图片验证码 2025-09-13 23:01:14 +08:00
xiaojunnuo
50f92f55e2 chore: 2025-09-13 16:27:20 +08:00
xiaojunnuo
370db62bf0 perf: 登录支持极验验证码 2025-09-11 23:47:05 +08:00
xiaojunnuo
65f34f1d31 Merge branch 'v2-dev' into v2-dev-addon 2025-09-11 20:42:44 +08:00
xiaojunnuo
00a3908abb docs: 2025-09-11 15:20:13 +08:00
xiaojunnuo
32034d590a docs: 2025-09-11 11:24:51 +08:00
xiaojunnuo
3635fb3910 chore: 2025-09-11 00:19:38 +08:00
xiaojunnuo
d2ecfe5491 fix: 修复证书监控某些情况下报 options.lookup不能为null的bug 2025-09-10 14:12:36 +08:00
xiaojunnuo
1f759dce5b docs: 2025-09-10 12:21:04 +08:00
xiaojunnuo
ae41c6038b perf: ssh配置增加脚本类型设置,bash还是sh 2025-09-09 18:14:14 +08:00
xiaojunnuo
f41f7eb2ad Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-09-09 16:31:39 +08:00
xiaojunnuo
d04f383161 fix: 修复secret patch 类型多了type:的bug 2025-09-09 16:30:21 +08:00
xiaojunnuo
cb989d7489 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-09-08 23:04:25 +08:00
xiaojunnuo
b5cba19d26 chore: 2025-09-08 23:04:02 +08:00
xiaojunnuo
b7271d7a46 perf: start.sh增加sudo 2025-09-08 23:01:45 +08:00
greper
768bdc2cc2 Update README_en.md 2025-09-08 22:27:59 +08:00
greper
a0a093e260 Update README.md 2025-09-08 22:27:28 +08:00
greper
0b2a7fdc15 Update README.md 2025-09-08 22:27:01 +08:00
greper
f1876e20f8 Update README.md 2025-09-08 22:25:52 +08:00
greper
7d6a6e53f7 Update README.md 2025-09-08 22:23:43 +08:00
greper
6b765a1f77 Update FUNDING.yml 2025-09-08 22:14:57 +08:00
greper
3b3c93dd53 Create FUNDING.yml 2025-09-08 22:06:57 +08:00
xiaojunnuo
521083a309 chore: 2025-09-08 14:45:31 +08:00
xiaojunnuo
6d35325601 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-09-08 14:45:21 +08:00
xiaojunnuo
3c65f37d84 perf: 优化加量包展示效果 2025-09-08 14:43:36 +08:00
xiaojunnuo
d75dd058d6 fix: 修复商业版退出登录后,丢失站点个性化设置的bug 2025-09-08 14:29:15 +08:00
xiaojunnuo
40475e02ec chore: 2025-09-06 20:07:50 +08:00
COYG⚡️
f6ea9c1300 docs: 更改中英文档跳转链接显示形式 (#518) @1411430556
* Update README.md

* Update README_en.md
2025-09-06 00:43:08 +08:00
Zero Clover
902359f24e perf: add preferred chain option (#519) @ZeroClover 2025-09-06 00:41:03 +08:00
xiaojunnuo
bb4d5f1e93 build: publish 2025-09-06 00:35:14 +08:00
xiaojunnuo
1dec3f000e build: trigger build image 2025-09-06 00:34:58 +08:00
xiaojunnuo
6d89814795 v1.36.19 2025-09-06 00:33:10 +08:00
xiaojunnuo
f339bc9f7f build: prepare to build 2025-09-06 00:30:00 +08:00
xiaojunnuo
bb80bc0c07 chore: 2025-09-06 00:29:55 +08:00
xiaojunnuo
96677ff8bf build: prepare to build 2025-09-06 00:28:54 +08:00
xiaojunnuo
c7b6a6df79 chore: 2025-09-06 00:28:50 +08:00
xiaojunnuo
8bb7e8bfb2 chore: 2025-09-06 00:28:43 +08:00
xiaojunnuo
02ab343e22 build: prepare to build 2025-09-06 00:26:48 +08:00
xiaojunnuo
4d875a18de chore: 2025-09-06 00:26:29 +08:00
xiaojunnuo
cff2336923 build: prepare to build 2025-09-06 00:17:10 +08:00
xiaojunnuo
0e96bfdfa3 perf: 创建证书时支持选择通知时机 2025-09-06 00:12:16 +08:00
xiaojunnuo
a24ef48ad1 chore: 2025-09-06 00:01:45 +08:00
xiaojunnuo
fe9c4f3391 perf: 支持根据id更新证书(证书Id不变接口),不过该接口为白名单功能,普通腾讯云账户无法使用 2025-09-06 00:01:17 +08:00
xiaojunnuo
6cbb0739f8 fix: 修复远程数据选择无法过滤的bug 2025-09-05 22:19:03 +08:00
xiaojunnuo
79ebabfcfb perf: 创建k8s secret 时设置type为tls 2025-09-05 21:32:34 +08:00
xiaojunnuo
0c8e3262fe chore: 2025-09-05 21:17:15 +08:00
xiaojunnuo
c24a040c19 perf: ssh 增加超时断开连接,默认10分钟超时 2025-09-05 21:16:09 +08:00
xiaojunnuo
4f39cb8dfa chore: 2025-09-05 18:08:23 +08:00
xiaojunnuo
cdd2816642 chore: 2025-09-05 00:16:34 +08:00
xiaojunnuo
27b6dfa4d2 perf: 支持ssl.com证书颁发机构 2025-09-04 23:42:03 +08:00
xiaojunnuo
204cbd0209 chore: 2025-09-04 15:21:53 +08:00
xiaojunnuo
b7980aad5a perf: 支持godaddy 2025-09-04 15:13:45 +08:00
xiaojunnuo
e175729e2c chore: 2025-09-02 10:39:46 +08:00
xiaojunnuo
c26ad4c807 fix: 修复mysql下购买套餐加量包无效的bug 2025-09-02 10:37:36 +08:00
xiaojunnuo
4372adc703 fix: 修复批量流水线执行时日志显示错乱的问题 2025-09-01 18:10:32 +08:00
xiaojunnuo
8a0c2b9b13 perf: 去掉宝塔url后面的斜杠 2025-09-01 17:01:14 +08:00
xiaojunnuo
4443a1c030 perf: 商业版隐藏文档相关链接 2025-09-01 16:18:50 +08:00
xiaojunnuo
39a02235cf perf: 子域名托管说明 2025-09-01 15:52:19 +08:00
xiaojunnuo
db89561480 perf: 商业版隐藏文档相关链接 2025-09-01 15:52:14 +08:00
xiaojunnuo
a4cbb11693 chore: 2025-09-01 14:18:42 +08:00
xiaojunnuo
1ceeacc526 chore: 2025-09-01 13:33:12 +08:00
xiaojunnuo
b59052cc43 fix: 前置任务输出不存在时输出警告提示 2025-09-01 13:29:47 +08:00
xiaojunnuo
b5d8161bc2 perf: 子域名托管说明 2025-08-31 10:50:07 +08:00
xiaojunnuo
b497eda26e Merge branch 'v2-dev' into v2-dev-buy 2025-08-29 16:54:11 +08:00
xiaojunnuo
44019e1042 perf: 增加健康检查探针 /health/liveliness 和 /health/readiness 2025-08-29 10:07:17 +08:00
xiaojunnuo
fd0e1da4a2 build: publish 2025-08-29 00:43:39 +08:00
xiaojunnuo
f6c67b475a build: trigger build image 2025-08-29 00:43:24 +08:00
xiaojunnuo
ea18a5ad15 v1.36.18 2025-08-29 00:41:56 +08:00
xiaojunnuo
4d0cd3f497 build: prepare to build 2025-08-29 00:39:03 +08:00
xiaojunnuo
7dbdeaebe0 perf: 支持部署到dokploy 2025-08-29 00:38:45 +08:00
xiaojunnuo
2085bcceb6 perf: openapi返回证书时挑选匹配范围最小的那一个;增加format参数,增加返回值p7b格式,增加detail返回 2025-08-28 22:39:11 +08:00
xiaojunnuo
c09c962cb6 perf: 部署到k8s支持自动创建secret 2025-08-28 21:28:32 +08:00
xiaojunnuo
9108459ae4 perf: 短信验证码支持腾讯云 2025-08-28 17:35:17 +08:00
xiaojunnuo
992bac0b1f chore: 2025-08-28 15:53:15 +08:00
xiaojunnuo
ebd6917a1d fix: 修复proxmox某些情况下执行卡住的bug 2025-08-28 15:47:32 +08:00
xiaojunnuo
3e079e3b80 chore: 2025-08-28 00:58:17 +08:00
xiaojunnuo
2ca20be197 perf: 支持部署到阿里云云原生API网关、AI网关 2025-08-28 00:36:28 +08:00
xiaojunnuo
17f23f3751 perf: 商业版支持自定义插件的参数配置 2025-08-27 18:23:24 +08:00
xiaojunnuo
8e3d699856 chore: 2025-08-27 09:56:36 +08:00
xiaojunnuo
f1a168fa53 chore: plugin config 2025-08-26 18:42:54 +08:00
xiaojunnuo
3575113655 perf: 支持删除宝塔证书夹中的过期证书 2025-08-25 23:58:03 +08:00
xiaojunnuo
fe9dd7d23f Merge branch 'v2-dev' into v2-dev-buy 2025-08-25 23:22:39 +08:00
xiaojunnuo
9feb9d04b3 perf: 支持部署到华为云obs 2025-08-25 23:22:17 +08:00
xiaojunnuo
5419b1439a Merge branch 'v2' into v2-dev 2025-08-25 21:52:50 +08:00
xiaojunnuo
6f8fbe3f09 chore: 2025-08-25 21:16:33 +08:00
xiaojunnuo
e4489343fe perf: lecdnv2支持api token 2025-08-25 18:38:35 +08:00
xiaojunnuo
d9f4a5793d perf: 支持p7b证书格式 2025-08-25 18:21:38 +08:00
xiaojunnuo
70fcdc9ebb perf: 腾讯云EO插件支持自动获取zoneid和域名列表 2025-08-25 17:22:55 +08:00
SHAREWEBS
78e7a81638 fix: 更新我爱云CDN域名地址,和部分目录结构 @tyjsjxh (#514)
更新我爱云CDN域名地址,和部分目录结构
2025-08-25 16:30:23 +08:00
xiaojunnuo
58e82d5dbd perf: 腾讯云插件支持国际版 2025-08-25 16:19:37 +08:00
xiaojunnuo
06d15be43a chore: 2025-08-21 15:57:39 +08:00
xiaojunnuo
e1e7011853 perf: ssh 配置sudo免密提示 2025-08-19 17:06:14 +08:00
xiaojunnuo
eff7645035 chore: 移除ksyun-sdk-node包 2025-08-19 11:01:01 +08:00
xiaojunnuo
eb75e52278 fix: 修复cron选择组件星期显示错误的bug 2025-08-18 18:48:42 +08:00
xiaojunnuo
15e6148272 chore: 2025-08-18 00:28:55 +08:00
xiaojunnuo
ccd448a675 chore: 2025-08-18 00:27:31 +08:00
xiaojunnuo
db54c019ad chore: 2025-08-18 00:16:28 +08:00
xiaojunnuo
b762b4d72c build: publish 2025-08-17 23:58:37 +08:00
xiaojunnuo
2f8faa839d build: trigger build image 2025-08-17 23:58:22 +08:00
xiaojunnuo
831c325c63 v1.36.17 2025-08-17 23:56:48 +08:00
xiaojunnuo
f4f73078c5 build: prepare to build 2025-08-17 23:53:21 +08:00
xiaojunnuo
f7d43ad5af perf: 部署到腾讯云cdn,每个域名增加3每秒延迟 2025-08-17 23:43:39 +08:00
xiaojunnuo
a77c777980 perf: 腾讯云关闭证书通知增加开关选项,在腾讯云授权里面 2025-08-17 23:32:29 +08:00
xiaojunnuo
a34db7449e perf: 阿里云 FC3.0 不在要求证书加密方式为旧版, 修复支持的协议类型可以正常选择 2025-08-17 23:27:50 +08:00
xiaojunnuo
0283bd2f97 perf: 证书申请任务默认不发送申请成功通知 2025-08-17 23:08:50 +08:00
xiaojunnuo
a8de2f8ae7 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-08-17 20:13:42 +08:00
xiaojunnuo
d5dee75df3 fix: 修复新部署的无法保存公共eab配置的bug 2025-08-17 19:08:08 +08:00
xiaojunnuo
6b7631ed5e fix: 修复新部署的无法保存公共eab配置的bug 2025-08-17 19:07:50 +08:00
xiaojunnuo
79cb5c0631 build: publish 2025-08-16 12:51:23 +08:00
xiaojunnuo
7d9901540f build: trigger build image 2025-08-16 12:51:04 +08:00
xiaojunnuo
e979e9c9fb v1.36.16 2025-08-16 12:49:25 +08:00
xiaojunnuo
de719df6fe build: prepare to build 2025-08-16 12:46:55 +08:00
xiaojunnuo
38d7f91ea0 build: prepare to build 2025-08-16 12:44:29 +08:00
xiaojunnuo
a20a429e8c chore: 2025-08-16 12:23:03 +08:00
xiaojunnuo
9b63fb4ee2 perf: 支持apisix证书部署 2025-08-16 01:33:51 +08:00
xiaojunnuo
099efdbc1d chore: 2025-08-15 19:11:03 +08:00
xiaojunnuo
af9120fc7a chore: 2025-08-15 19:02:59 +08:00
xiaojunnuo
798a48aa96 perf: 百度云支持上传到证书托管,支持部署到负载均衡 2025-08-15 18:19:36 +08:00
xiaojunnuo
462e22a3b0 perf: 支持更新金山云cdn证书 2025-08-15 10:27:06 +08:00
xiaojunnuo
4e432ed03f perf: 部署到百度cdn支持自动获取域名列表选择 2025-08-15 10:26:52 +08:00
xiaojunnuo
1b56c0f191 chore: comm trial 2025-08-15 00:20:38 +08:00
xiaojunnuo
94cbeba495 chore: comm trial 2025-08-15 00:11:48 +08:00
xiaojunnuo
dfa74a69f7 perf: 支持部署到金山云CDN 2025-08-14 18:48:04 +08:00
xiaojunnuo
9e1e4eeec2 perf: 支持阿里云API网关 2025-08-14 11:00:10 +08:00
xiaojunnuo
962f8233b0 chore: 2025-08-11 02:02:30 +08:00
xiaojunnuo
31923d511e chore: 修复vip过期时间显示错误的问题 2025-08-11 01:47:39 +08:00
xiaojunnuo
fdbb8300d3 chore: 自动更新vip状态 2025-08-10 23:48:40 +08:00
xiaojunnuo
203d8bca57 chore: 永久专业版特殊颜色 2025-08-10 02:21:32 +08:00
xiaojunnuo
74c331eaf7 chore: 永久专业版特殊颜色 2025-08-10 02:07:48 +08:00
xiaojunnuo
54365528a8 chore: buy page and login 2025-08-09 23:41:59 +08:00
xiaojunnuo
bc174f7054 perf: cname方式hostRecord增加user校验 2025-08-09 23:37:31 +08:00
xiaojunnuo
221e068bac fix: 修复授权配置复制功能,无法复制已加密字段的问题 2025-08-09 18:11:20 +08:00
xiaojunnuo
1bdceeecf4 perf: 验证码可重试次数设置为3次 2025-08-09 16:59:48 +08:00
xiaojunnuo
a6824d9cd0 Merge branch 'v2' into v2-dev 2025-08-09 16:47:12 +08:00
ahe
fe03f9942b perf: 增加找回密码的验证码可重试次数 @nicheng-he (#496)
2.找回密码邮件方式增加长度到6位
3.开启自主找回密码放置更合适的位置
2025-08-09 16:41:57 +08:00
xiaojunnuo
4c196922fb chore: 使用TZ 2025-08-08 08:56:19 +08:00
xiaojunnuo
2a9a513d85 build: publish 2025-08-07 23:23:23 +08:00
xiaojunnuo
2bcea27ecd build: trigger build image 2025-08-07 23:23:07 +08:00
xiaojunnuo
fb7341f1f7 v1.36.15 2025-08-07 23:21:18 +08:00
xiaojunnuo
f327daa12d build: prepare to build 2025-08-07 23:18:12 +08:00
xiaojunnuo
2872b9fbf9 chore: 2025-08-07 22:40:17 +08:00
xiaojunnuo
cedd5c9c96 chore: 2025-08-07 22:37:21 +08:00
xiaojunnuo
60e6aa9b54 fix: 修复 https://cas.undefined.aliyuncs.com 的bug 2025-08-07 22:31:25 +08:00
xiaojunnuo
541f482518 chore: 2025-08-07 21:56:02 +08:00
xiaojunnuo
4019b7939a chore: 2025-08-07 18:52:20 +08:00
xiaojunnuo
013b9c4c7c perf: 部署到阿里云支持选择bucket和域名 2025-08-07 18:30:47 +08:00
xiaojunnuo
79addfda42 chore: issue template 2025-08-07 14:35:21 +08:00
xiaojunnuo
8546bda471 chore: 2025-08-07 11:48:26 +08:00
xiaojunnuo
0770f174a1 fix: 修复阿里云clb api接口没有使用region的问题 2025-08-07 11:40:13 +08:00
xiaojunnuo
5f4a89cecc chore: 2025-08-07 11:26:14 +08:00
xiaojunnuo
cbe0b1c5a6 perf: 支持webhook部署证书 2025-08-07 11:04:25 +08:00
xiaojunnuo
0af193c505 chore: cron * 开头的 换成 0 2025-08-07 10:39:48 +08:00
xiaojunnuo
fdcfcc77a0 perf: 注册时支持填写用户名 2025-08-07 10:36:34 +08:00
xiaojunnuo
06d166d0d7 chore: 用户名注册不能为保留字 2025-08-07 10:28:21 +08:00
xiaojunnuo
b1b3e39fcd Merge branch 'v2' into v2-dev 2025-08-07 10:23:44 +08:00
greper
5ec025a3b9 Potential fix for code scanning alert no. 31: Incomplete string escaping or encoding (#479)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-08-07 09:57:17 +08:00
greper
58b7fbcf75 Potential fix for code scanning alert no. 26: Clear-text logging of sensitive information (#480)
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2025-08-07 08:59:47 +08:00
ayakasuki
be053d47e4 perf: 添加免费通知,OneBot V11协议通知支持 (#491) @ayakasuki 2025-08-07 08:59:01 +08:00
只捱宅
fae1981161 perf: add start:server npm script for quick server launch from root directory (#484) @orzyyyy 2025-08-07 08:57:13 +08:00
xiaojunnuo
fd95549de9 perf: 清理数据库备份的临时目录 2025-08-04 18:31:06 +08:00
xiaojunnuo
ff10bc05ec chore: 2025-07-31 11:05:22 +08:00
xiaojunnuo
eb8cd53de2 fix: 修复站点监控使用自定义dns解析域名报错的bug 2025-07-31 10:44:50 +08:00
xiaojunnuo
3fc863561a build: publish 2025-07-28 23:44:43 +08:00
xiaojunnuo
131cd94495 build: trigger build image 2025-07-28 23:44:27 +08:00
xiaojunnuo
f3a90a63b6 v1.36.14 2025-07-28 23:42:30 +08:00
xiaojunnuo
2494173aec build: prepare to build 2025-07-28 23:38:49 +08:00
xiaojunnuo
866eb6241b perf: 授权管理支持模糊查询 2025-07-28 23:36:10 +08:00
xiaojunnuo
86b3df1941 perf: 运行主机脚本插件支持选择运行策略 2025-07-28 23:22:38 +08:00
xiaojunnuo
e87f6d56f5 perf: cdnfly 支持 账号密码登陆授权 2025-07-28 23:20:44 +08:00
xiaojunnuo
acc890730f perf: 1panel支持 currenNode 2025-07-28 22:41:45 +08:00
xiaojunnuo
b0707739fd fix: 修复复制流水线为空的bug 2025-07-28 18:29:28 +08:00
xiaojunnuo
251dd1fe45 fix: 修复商用证书上传第二次运行无法使用pfx格式证书的bug 2025-07-28 16:18:49 +08:00
xiaojunnuo
b9f3dc65e0 chore: 雨云ref 2025-07-25 17:29:37 +08:00
xiaojunnuo
238ad7ce51 perf: 优化start脚本 2025-07-25 16:57:21 +08:00
xiaojunnuo
99fd5fca4d chore: 2025-07-25 12:05:42 +08:00
xiaojunnuo
8eda77b76d Merge branch 'v2' into v2-dev 2025-07-25 10:18:35 +08:00
ahe
81ac240ac8 perf: 新增找回密码功能 @nicheng-he
* feat 找回密码

* 1.发送邮件时修改模版
2.重置成功时清除登陆错误次数

* 增加自助找回密码控制

* 补充接口自助找回判断
2025-07-24 16:56:22 +08:00
xiaojunnuo
6109798fab chore: 2025-07-24 16:23:13 +08:00
xiaojunnuo
95715a007d perf: k8s ack、tke 支持重启ingress 2025-07-24 16:22:07 +08:00
xiaojunnuo
b33ec201ac build: publish 2025-07-23 23:41:46 +08:00
xiaojunnuo
b53fbaf5b3 build: trigger build image 2025-07-23 23:41:31 +08:00
xiaojunnuo
1e03a2e553 v1.36.13 2025-07-23 23:40:09 +08:00
xiaojunnuo
fda7c6f67a build: prepare to build 2025-07-23 23:37:57 +08:00
xiaojunnuo
fabb7982ff chore: 2025-07-23 17:55:08 +08:00
xiaojunnuo
cbf206be60 chore: 2025-07-23 17:41:16 +08:00
xiaojunnuo
aa0c282205 Merge branch 'v2' into v2-dev 2025-07-23 15:59:14 +08:00
xiaojunnuo
9759365329 Merge remote-tracking branch 'origin/v2' into v2 2025-07-23 15:56:09 +08:00
ahe
e3738f6422 perf: 阿里云部分插件优化 @nicheng-he
1.新增RemoteAutoComplete插件
2.阿里云OSS部署插件支持自动获取BucketList
3.阿里云ESA支持选择上传到阿里云CAS产物
4.解决阿里云OSS默认接入点配置错误问题
2025-07-23 15:55:52 +08:00
ahe
9746d169f9 阿里云部分插件优化 @nicheng-he
1.新增RemoteAutoComplete插件
2.阿里云OSS部署插件支持自动获取BucketList
3.阿里云ESA支持选择上传到阿里云CAS产物
4.解决阿里云OSS默认接入点配置错误问题
2025-07-23 15:45:40 +08:00
xiaojunnuo
2e6d03ff00 fix: 修复阿里云发送短信验证码失败的bug 2025-07-23 11:33:02 +08:00
xiaojunnuo
f7b7d3d65e build: publish 2025-07-23 00:18:48 +08:00
xiaojunnuo
4037cf11aa build: trigger build image 2025-07-23 00:18:32 +08:00
xiaojunnuo
02aeb321ce v1.36.12 2025-07-23 00:17:02 +08:00
xiaojunnuo
0012619257 build: prepare to build 2025-07-23 00:14:43 +08:00
xiaojunnuo
6f3ade0d94 Merge branch 'v2' into v2-dev 2025-07-23 00:13:58 +08:00
xiaojunnuo
cf572f328a Merge branch 'v2' into v2-dev 2025-07-23 00:13:29 +08:00
xiaojunnuo
d1ce36038c perf: 增加版本过低提示 2025-07-23 00:10:15 +08:00
xiaojunnuo
b382351c7b fix: 上传到阿里云cas,证书前缀无效的bug 2025-07-22 23:53:33 +08:00
xiaojunnuo
4e5e862f58 fix: 修复自定义插件onlyAdmin报错的bug 2025-07-22 23:31:42 +08:00
xiaojunnuo
ab84835362 perf: 部署到k8s,tke,ack忽悠证书校验 2025-07-22 17:03:52 +08:00
xiaojunnuo
41ce8489dc perf: 首页增加更新日志按钮 2025-07-22 16:42:17 +08:00
xiaojunnuo
ef3faf5832 Merge branch 'v2-dev' into v2 2025-07-22 12:27:51 +08:00
xiaojunnuo
edf089ec9e build: publish 2025-07-22 12:27:21 +08:00
xiaojunnuo
0ae9a3605c build: trigger build image 2025-07-22 12:27:10 +08:00
xiaojunnuo
7f9c4e52ac v1.36.11 2025-07-22 12:25:40 +08:00
xiaojunnuo
35947f96a8 build: prepare to build 2025-07-22 12:23:42 +08:00
xiaojunnuo
b0f91f1eea chore: 2025-07-22 12:22:54 +08:00
xiaojunnuo
13dfca1749 fix: 安全更新,备份数据库插件仅限管理员运行 2025-07-22 11:51:27 +08:00
xiaojunnuo
9d9cd8a362 build: 2025-07-19 12:02:08 +08:00
xiaojunnuo
5e5c41fda5 build: 2025-07-19 12:01:47 +08:00
xiaojunnuo
3ebdc52b3e build: 2025-07-19 08:58:02 +08:00
xiaojunnuo
af54f48cec Merge branch 'v2-dev' into v2 2025-07-18 23:14:52 +08:00
xiaojunnuo
8656059151 build: publish 2025-07-18 23:09:44 +08:00
xiaojunnuo
a6d38f2458 build: trigger build image 2025-07-18 23:09:27 +08:00
xiaojunnuo
085bdf5cfa v1.36.10 2025-07-18 23:08:03 +08:00
xiaojunnuo
6883bcacee build: prepare to build 2025-07-18 23:02:57 +08:00
xiaojunnuo
2ecc6e0368 build: prepare to build 2025-07-18 23:00:39 +08:00
xiaojunnuo
8fb5ca2fe1 chore: ip检查新旧ip变化对比逻辑修复 2025-07-18 18:24:01 +08:00
xiaojunnuo
e40345095f perf: 账号即将过期通知 2025-07-18 18:18:01 +08:00
xiaojunnuo
ffc0c7bb7b perf: 子域名托管重复域名不允许添加 2025-07-18 16:36:56 +08:00
xiaojunnuo
58fadc8928 chore: 2025-07-18 16:32:19 +08:00
xiaojunnuo
d96a607c04 chore: 2025-07-18 16:00:34 +08:00
xiaojunnuo
2ea2c8c05f perf: 部署到阿里云oss插件支持选择上传到阿里云cas中的证书 2025-07-18 15:35:35 +08:00
xiaojunnuo
b15f514018 perf: 优化子域名托管的说明 2025-07-18 14:47:15 +08:00
xiaojunnuo
05a33a0ec9 fix: api接口获取不到证书的bug 2025-07-18 14:46:58 +08:00
xiaojunnuo
747d266742 fix: 企业微信通知改成text类型,因为markdown类型不支持@用户 2025-07-15 17:15:43 +08:00
xiaojunnuo
522d30545b Merge branch 'v2-dev' into v2 2025-07-15 16:56:31 +08:00
xiaojunnuo
6135a44a8d build: publish 2025-07-15 16:54:52 +08:00
xiaojunnuo
7c7d646792 build: trigger build image 2025-07-15 16:54:35 +08:00
xiaojunnuo
4a36fd2ec3 v1.36.9 2025-07-15 16:53:06 +08:00
xiaojunnuo
b1bcc287cb build: prepare to build 2025-07-15 16:46:42 +08:00
xiaojunnuo
6f5868a9d7 build: prepare to build 2025-07-15 16:43:58 +08:00
xiaojunnuo
75863441f4 build: prepare to build 2025-07-15 16:41:37 +08:00
xiaojunnuo
9763cb00e5 fix: 修复ssh无法执行命令的bug 2025-07-15 16:41:15 +08:00
xiaojunnuo
521599ef39 Merge branch 'v2-dev' into v2 2025-07-15 15:47:46 +08:00
xiaojunnuo
1921a64f4b build: publish 2025-07-15 15:36:31 +08:00
xiaojunnuo
6b73f5d555 build: trigger build image 2025-07-15 15:36:14 +08:00
xiaojunnuo
e0408f30ba v1.36.7 2025-07-15 15:33:36 +08:00
xiaojunnuo
dca44fa093 build: prepare to build 2025-07-15 15:21:52 +08:00
xiaojunnuo
bbacb76581 build: prepare to build 2025-07-15 15:19:18 +08:00
xiaojunnuo
1da8617a53 perf: 支持上传证书到各种对象存储,oss、cos、七牛、s3、minio等 2025-07-15 15:18:35 +08:00
xiaojunnuo
e5967f7e9d chore: 2025-07-15 15:17:11 +08:00
xiaojunnuo
65d84f9e9d chore: 2025-07-15 15:06:59 +08:00
xiaojunnuo
93e9498b41 fix: 修复流水线页面状态没有刷新的bug 2025-07-15 15:05:09 +08:00
xiaojunnuo
95332d5db9 perf: 支持邮箱发送证书 2025-07-15 13:58:01 +08:00
xiaojunnuo
9864792bbf fix: 修复流水线列表页报length错误的bug 2025-07-15 10:53:11 +08:00
xiaojunnuo
ca9d1eed7a Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-07-15 10:45:34 +08:00
xiaojunnuo
38e867c917 fix: 修复自定义证书检查时间重启之后不生效的bug 2025-07-15 10:42:56 +08:00
xiaojunnuo
1ff6daaa27 Merge branch 'v2-dev' into v2 2025-07-14 23:55:04 +08:00
xiaojunnuo
3ee1dbb8a5 build: publish 2025-07-14 23:54:12 +08:00
xiaojunnuo
b4571d5c98 build: trigger build image 2025-07-14 23:53:51 +08:00
xiaojunnuo
29d49d72f9 v1.36.6 2025-07-14 23:52:25 +08:00
xiaojunnuo
81de0fc7e4 build: prepare to build 2025-07-14 23:48:40 +08:00
xiaojunnuo
9d5d266d2a build: prepare to build 2025-07-14 23:46:40 +08:00
xiaojunnuo
b97935299f chore: auto功能 数据库升级脚本 2025-07-14 23:46:24 +08:00
xiaojunnuo
32a7ea1c16 chore: 2025-07-14 23:29:35 +08:00
xiaojunnuo
9fd95e6a1e chore: 2025-07-14 23:26:54 +08:00
xiaojunnuo
61ba83c775 perf: 通知和定时器的删除按钮显示为红色更显眼 2025-07-14 23:25:56 +08:00
xiaojunnuo
6369fed5fc chore: 2025-07-14 23:15:22 +08:00
xiaojunnuo
42f4d1477d perf: OpenAPI支持autoApply参数 2025-07-14 23:02:47 +08:00
xiaojunnuo
609ac9c9a2 perf: 优化流水线列表页面、详情页面性能,精简返回数据 2025-07-14 01:36:40 +08:00
xiaojunnuo
79f2367472 chore: 2025-07-14 00:34:47 +08:00
xiaojunnuo
dfc9362084 fix: 修复运行流水线后会闪烁一下的bug 2025-07-14 00:33:42 +08:00
xiaojunnuo
487b469603 chore: 增强cname安全性 2025-07-14 00:15:46 +08:00
xiaojunnuo
19e1df1e5d chore: 2025-07-13 23:58:07 +08:00
xiaojunnuo
fc55010888 Merge branch 'v2-dev-auto' into v2-dev 2025-07-13 23:23:47 +08:00
xiaojunnuo
56a36aa595 chore: 修复商业版翻译导致报错的bug 2025-07-13 23:20:04 +08:00
xiaojunnuo
0b3158fdd5 fix: 修复某些页面翻译不全显示错误的bug 2025-07-13 23:14:28 +08:00
xiaojunnuo
896cd950e9 chore: auto 2025-07-13 23:08:00 +08:00
xiaojunnuo
af5e1b805f chore: 2025-07-13 18:30:04 +08:00
xiaojunnuo
3f9943270c perf: 支持自动选择校验方式申请证书 2025-07-13 18:25:09 +08:00
xiaojunnuo
902d246d1a perf: 部署plesk证书,支持删除未使用的证书 2025-07-13 17:10:15 +08:00
xiaojunnuo
785bee2b39 chore: auto 2025-07-12 23:00:04 +08:00
xiaojunnuo
4b335db31c chore: 2025-07-11 18:17:11 +08:00
xiaojunnuo
4bef527ebb Merge branch 'v2-dev' into v2-dev-auto
# Conflicts:
#	packages/ui/certd-client/src/locales/langs/en-US/certd.ts
#	packages/ui/certd-client/src/locales/langs/zh-CN/certd.ts
2025-07-11 17:44:04 +08:00
xiaojunnuo
8273031d7e docs: 自动升级帮助文档 2025-07-11 17:37:33 +08:00
xiaojunnuo
dbf69bcd98 chore: 2025-07-11 11:11:22 +08:00
xiaojunnuo
24d3096752 build: publish 2025-07-11 10:51:21 +08:00
xiaojunnuo
9a3754fbf8 build: trigger build image 2025-07-11 10:51:05 +08:00
xiaojunnuo
c2a95a13fe v1.36.5 2025-07-11 10:49:26 +08:00
xiaojunnuo
b46466ac96 build: prepare to build 2025-07-11 10:46:08 +08:00
xiaojunnuo
06991ddb17 chore: 2025-07-11 10:44:49 +08:00
xiaojunnuo
4b3f4a868a fix: 某些插件找不到的bug 2025-07-11 09:45:33 +08:00
xiaojunnuo
014eff3534 build: publish 2025-07-10 23:42:44 +08:00
xiaojunnuo
c01b7ddb59 build: trigger build image 2025-07-10 23:42:27 +08:00
xiaojunnuo
0ff700849f v1.36.4 2025-07-10 23:41:05 +08:00
xiaojunnuo
5c695dea20 build: prepare to build 2025-07-10 23:36:24 +08:00
xiaojunnuo
c7ee4ca4db build: prepare to build 2025-07-10 23:32:50 +08:00
xiaojunnuo
c3da026b33 perf: 支持部署证书到网宿CDN 2025-07-10 23:30:33 +08:00
xiaojunnuo
98da4e1791 perf: 支持部署到阿里云vod 2025-07-10 21:40:35 +08:00
xiaojunnuo
8626b6d9f2 fix: 修复查看证书对话框翻译错误的bug 2025-07-10 18:27:56 +08:00
xiaojunnuo
80c5331a5d perf: 站点证书即将过期通知标题颜色优化为红色 2025-07-10 17:02:48 +08:00
xiaojunnuo
39dc5c8160 chore: domain manager 2025-07-10 17:00:47 +08:00
xiaojunnuo
f3002e4fb6 chore: domain manager 2025-07-10 16:32:12 +08:00
xiaojunnuo
c451823c2b chore: chore: auto domain entity 2025-07-09 16:00:55 +08:00
xiaojunnuo
b37cffd704 fix: 执行windows nginx命令时,改为return code判断是否执行成功 2025-07-09 15:43:25 +08:00
xiaojunnuo
2af91dbf2a perf: 优化证书进度条颜色 2025-07-09 15:24:23 +08:00
xiaojunnuo
f2551318fc chore: 增加多dns提供商选项支持 2025-07-09 15:10:21 +08:00
xiaojunnuo
22eb84f944 chore: 2025-07-09 15:03:04 +08:00
xiaojunnuo
1ece0915f1 perf: 重置管理员密码同时可以清除管理员的2FA设置 2025-07-09 14:49:11 +08:00
xiaojunnuo
87853a2015 perf: output-selector from参数支持更丰富的过滤规则
规则:  pluginName:valueType:keyName
2025-07-09 14:34:24 +08:00
xiaojunnuo
46a1b74799 fix: 修复translation后分组编辑打不开的bug 2025-07-09 11:14:09 +08:00
xiaojunnuo
0f6e7e5eab build: publish 2025-07-07 22:22:09 +08:00
xiaojunnuo
5dfa9615d2 build: trigger build image 2025-07-07 22:21:52 +08:00
xiaojunnuo
1bde777bee v1.36.3 2025-07-07 22:20:26 +08:00
xiaojunnuo
fa4f5df3e7 build: prepare to build 2025-07-07 22:18:24 +08:00
xiaojunnuo
8a3c3810e0 build: prepare to build 2025-07-07 22:14:35 +08:00
xiaojunnuo
144532530a perf: 优化部署到腾讯TKE插件,支持Opaque类型选择,优化填写说明 2025-07-07 21:30:45 +08:00
xiaojunnuo
0f1129e19b chore: 2025-07-07 18:20:25 +08:00
xiaojunnuo
1f74580f15 chore: cname的key转为小写 2025-07-07 16:27:25 +08:00
xiaojunnuo
f93ba9970c fix: 修复开放接口添加按钮文本显示问题 2025-07-07 14:21:00 +08:00
xiaojunnuo
f87a3d0892 build: publish 2025-07-07 00:47:44 +08:00
xiaojunnuo
c661ad67d0 build: trigger build image 2025-07-07 00:47:26 +08:00
xiaojunnuo
ce4dc9e3fa v1.36.2 2025-07-07 00:45:59 +08:00
xiaojunnuo
3d2c6e6032 build: prepare to build 2025-07-07 00:43:45 +08:00
xiaojunnuo
6000a0cfe3 chore: 2025-07-07 00:41:17 +08:00
xiaojunnuo
b80c60997a build: prepare to build 2025-07-07 00:41:03 +08:00
xiaojunnuo
35e45f0df1 build: prepare to build 2025-07-07 00:37:55 +08:00
xiaojunnuo
e65f5b9f78 chore: 优化 notification check plus 2025-07-07 00:37:44 +08:00
xiaojunnuo
5969f71e67 build: prepare to build 2025-07-07 00:22:54 +08:00
xiaojunnuo
b1307863eb build: prepare to build 2025-07-07 00:21:47 +08:00
xiaojunnuo
9d0abe993b chore: 2025-07-07 00:21:23 +08:00
xiaojunnuo
c53bb7cf67 perf: 证书检查支持自定义dns服务器 2025-07-07 00:10:51 +08:00
xiaojunnuo
0cea26c628 fix: 修复notification编辑按钮无法打开对话框的bug 2025-07-06 17:54:00 +08:00
xiaojunnuo
610c919c72 fix: 优化更新飞牛os证书有效期,修复某些情况下部署证书后飞牛无法访问https的bug 2025-07-04 23:05:04 +08:00
xiaojunnuo
2c35f94f7c docs: english readme 2025-07-03 15:54:24 +08:00
xiaojunnuo
cd9a3870b3 build: trigger build image 2025-07-02 23:01:08 +08:00
xiaojunnuo
e11373f23a 1 2025-07-02 23:00:47 +08:00
xiaojunnuo
f591635fc1 build: trigger build image 2025-07-02 23:00:24 +08:00
xiaojunnuo
474b57ca61 build: trigger build image 2025-07-02 22:57:56 +08:00
xiaojunnuo
8671887abc v1.36.1 2025-07-02 22:56:15 +08:00
xiaojunnuo
8274d1baa5 build: prepare to build 2025-07-02 22:53:59 +08:00
xiaojunnuo
bde601bfff perf: 支持部署到七牛云DCDN 2025-07-02 22:51:22 +08:00
xiaojunnuo
a2e0951042 fix: 修复通知和触发器无法编辑的bug 2025-07-02 16:47:50 +08:00
xiaojunnuo
3c9a8a38dd build: publish 2025-07-01 23:26:41 +08:00
xiaojunnuo
4c067fd39f build: trigger build image 2025-07-01 23:26:24 +08:00
xiaojunnuo
5c251ee774 v1.36.0 2025-07-01 23:24:39 +08:00
xiaojunnuo
ddda691552 build: prepare to build 2025-07-01 23:22:04 +08:00
xiaojunnuo
ba73090d53 Merge branch 'v2' into v2-dev
# Conflicts:
#	README.md
2025-07-01 23:00:15 +08:00
xiaojunnuo
a080b606ab perf: 站点IP监控前先同步一下IP 2025-07-01 22:33:27 +08:00
xiaojunnuo
7c0f43c8a3 perf: 添加用户资料编辑功能
- 新增用户资料编辑对话框组件
- 添加后端更新用户资料接口
- 在用户信息页面添加编辑按钮
- 新增中英文翻译字段
- 实现头像上传和昵称修改功能
2025-07-01 16:30:07 +08:00
greper
4fad1aee6b Update README.md 2025-07-01 15:59:38 +08:00
greper
19aec5bc8d Update README.md 2025-07-01 15:58:34 +08:00
greper
33ee60736c Update README.md 2025-07-01 15:55:26 +08:00
xiaojunnuo
c1bccb970f chore: doc 2025-07-01 15:54:26 +08:00
xiaojunnuo
481cc029fa fix: 支持自定义证书生成插件 2025-07-01 15:18:55 +08:00
xiaojunnuo
bdaf58a3c4 chore: 2025-07-01 09:30:54 +08:00
xiaojunnuo
0f64671dc0 chore: 2025-06-30 23:48:19 +08:00
xiaojunnuo
60f055f293 perf: 支持选择运行策略设置 2025-06-30 23:48:00 +08:00
xiaojunnuo
c67a9215e3 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-06-30 22:57:21 +08:00
xiaojunnuo
a0e9df6d6d chore: 2025-06-30 21:57:17 +08:00
xiaojunnuo
8341749c04 chore: 更多翻译 2025-06-30 16:34:09 +08:00
xiaojunnuo
66d1886663 chore: 优化插件的翻页查询 2025-06-29 19:59:13 +08:00
xiaojunnuo
710e1fc278 chore: 2025-06-29 19:38:44 +08:00
xiaojunnuo
4cf98584da perf: 阿里云waf cname站点选择支持翻页及域名查询 2025-06-29 19:36:46 +08:00
xiaojunnuo
3fb3cee423 chore: vip label translate 2025-06-29 17:41:54 +08:00
xiaojunnuo
2d1504a057 chore: 2025-06-29 16:57:28 +08:00
xiaojunnuo
4fcfd089d8 chore: code format 2025-06-29 14:09:09 +08:00
xiaojunnuo
04422a4637 chore: 模版导入式创建流水线 2025-06-29 01:33:43 +08:00
xiaojunnuo
37e6548246 Merge branch 'v2-translation' into v2-dev
# Conflicts:
#	packages/ui/certd-client/src/components/plugins/common/remote-select.vue
#	packages/ui/certd-client/src/router/source/modules/certd.ts
#	packages/ui/certd-client/src/views/certd/pipeline/certd-form/use.tsx
#	packages/ui/certd-client/src/views/certd/pipeline/crud.tsx
2025-06-29 00:26:34 +08:00
xiaojunnuo
a761989f3e chore: 小修改 2025-06-29 00:25:08 +08:00
xiaojunnuo
acaa8b1731 perf: 优化中英文翻译与切换 2025-06-28 23:57:01 +08:00
greper
082f47663d perf: 英文翻译 by @lorenzo93
Translation  @lorenzo93
2025-06-28 21:45:48 +08:00
xiaojunnuo
92f42154d5 chore: 2025-06-28 21:08:26 +08:00
Lorenzo
fc1084ce33 More translation 2025-06-27 01:31:31 +02:00
Lorenzo
adc3ab7e0a Add other translations 2025-06-27 00:39:00 +02:00
xiaojunnuo
dcc8c56969 perf: 模版导入流水线 2025-06-26 18:43:16 +08:00
Lorenzo
0b3472d227 Partially translate user settings 2025-06-26 00:56:43 +02:00
Lorenzo
b50121ad0b Translate user account info page 2025-06-26 00:36:22 +02:00
Lorenzo
dfddfc3e06 Translate user security page 2025-06-26 00:16:30 +02:00
Lorenzo
34ec6210c6 Translate VIP popup 2025-06-26 00:08:13 +02:00
Lorenzo
daaef316e9 Other translations 2025-06-25 23:52:44 +02:00
Lorenzo
cdac12bb2f Translate other parts 2025-06-25 21:01:34 +02:00
Lorenzo
3ab99647aa First translation step 2025-06-25 20:09:29 +02:00
xiaojunnuo
529482a83e chore: 模版创建流水线 2025-06-25 18:40:20 +08:00
xiaojunnuo
29906ec057 chore: 模版创建流水线 2025-06-25 18:18:57 +08:00
xiaojunnuo
9296ba7492 chore: 模版创建流水线 2025-06-25 14:41:27 +08:00
xiaojunnuo
821c6d807d perf: 优化阿里云waf的日志信息 2025-06-24 11:26:38 +08:00
xiaojunnuo
991b741cbe perf: 部署到ssh主机命令支持前置命令 2025-06-24 11:08:26 +08:00
xiaojunnuo
2559f0e822 feat: 支持模版创建流水线 2025-06-23 18:20:49 +08:00
xiaojunnuo
8bb1ed3e95 docs: 生态章节文档 2025-06-23 16:04:50 +08:00
xiaojunnuo
56ba3fcb92 Merge branch 'v2-dev' into v2-dev-template 2025-06-21 17:11:15 +08:00
xiaojunnuo
e99a20a120 chore: 腾讯云国际站类型无需加密 2025-06-20 23:18:59 +08:00
xiaojunnuo
f1a25b21a6 build: publish 2025-06-20 17:16:53 +08:00
xiaojunnuo
cf9595ce58 build: trigger build image 2025-06-20 17:16:36 +08:00
xiaojunnuo
7feece597a v1.35.5 2025-06-20 17:14:13 +08:00
xiaojunnuo
fa16c782ca build: prepare to build 2025-06-20 17:10:08 +08:00
xiaojunnuo
a03d0b6a4a chore: 2025-06-20 17:09:59 +08:00
xiaojunnuo
dff76b8912 build: prepare to build 2025-06-20 17:07:59 +08:00
xiaojunnuo
cffea9a9bc chore: 2025-06-20 17:07:26 +08:00
xiaojunnuo
43fee42198 perf: 首次打开任务日志查看页面,自动滚动到底部 2025-06-20 17:06:34 +08:00
xiaojunnuo
5cd3968929 fix: 腾讯云授权支持设置是否国际站,部署到EO插件支持国际站 2025-06-20 16:58:20 +08:00
xiaojunnuo
65dcae79f8 fix: 修复邮箱包含.号校验失败的bug 2025-06-20 16:45:29 +08:00
xiaojunnuo
2b3b75a4a5 chore: 2025-06-20 16:25:29 +08:00
xiaojunnuo
26b395110c chore: 流水线模版初步 2025-06-19 18:17:35 +08:00
xiaojunnuo
e11b3becfd perf: 支持批量修改通知和定时 2025-06-18 12:29:43 +08:00
xiaojunnuo
73fa937f5c chore: 2025-06-17 13:39:40 +08:00
xiaojunnuo
6ebe2e54ac chore: 2025-06-16 23:57:11 +08:00
xiaojunnuo
fb29a11cc9 build: publish 2025-06-13 12:24:08 +08:00
xiaojunnuo
a9e06cbf92 build: trigger build image 2025-06-13 12:23:51 +08:00
xiaojunnuo
93017c044d v1.35.4 2025-06-13 12:22:12 +08:00
xiaojunnuo
c223ddbb9a build: prepare to build 2025-06-13 12:19:21 +08:00
xiaojunnuo
f00aeacb8b perf: 支持s3 access做测试 2025-06-13 12:18:26 +08:00
xiaojunnuo
5b49071d6b Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-06-13 09:53:30 +08:00
xiaojunnuo
17053a882b chore: 2025-06-13 09:53:07 +08:00
xiaojunnuo
5e723d31a4 chore: 2025-06-13 00:40:54 +08:00
xiaojunnuo
3283bd8b75 build: publish 2025-06-13 00:40:05 +08:00
xiaojunnuo
770d3c0015 build: trigger build image 2025-06-13 00:39:33 +08:00
xiaojunnuo
d15dfafd5d v1.35.3 2025-06-13 00:29:59 +08:00
xiaojunnuo
545c13d55c build: prepare to build 2025-06-13 00:27:18 +08:00
xiaojunnuo
e2099ac9ca fix: 修复重试次数设置无效的bug 2025-06-13 00:25:08 +08:00
xiaojunnuo
c937583a50 fix: 修复消息内容存在()<>等括号情况下无法发送tg通知的bug 2025-06-13 00:24:55 +08:00
xiaojunnuo
43c7a19849 perf: 支持雨云dns解析以及雨云证书更新 2025-06-12 23:51:21 +08:00
xiaojunnuo
83543487e7 perf: 支持雨云dns解析 2025-06-12 22:41:08 +08:00
xiaojunnuo
434b259525 chore: 2025-06-11 22:40:21 +08:00
xiaojunnuo
add8efaba8 chore: 2025-06-10 18:44:32 +08:00
xiaojunnuo
12ed79ca60 chore: 雨云支持 2025-06-10 18:41:25 +08:00
xiaojunnuo
1e863382d3 perf: 授权列表类型颜色优化 2025-06-10 18:40:23 +08:00
xiaojunnuo
bad3504d4a perf: github 版本检查支持执行脚本 2025-06-10 12:13:04 +08:00
xiaojunnuo
d94f207162 chore: 首创流水线模式自动申请和部署证书,已被多个项目“借鉴”,被抄也是一种成功。 2025-06-10 10:59:40 +08:00
xiaojunnuo
2c4b7781a4 chore: 2025-06-10 10:52:58 +08:00
xiaojunnuo
4574c6ff07 chore: 2025-06-10 10:52:30 +08:00
xiaojunnuo
7b5043e87b chore: 增加专业版过期通知 2025-06-10 10:21:09 +08:00
xiaojunnuo
a06f3ac5da build: publish 2025-06-09 23:58:39 +08:00
xiaojunnuo
721346a40a build: trigger build image 2025-06-09 23:58:23 +08:00
xiaojunnuo
f252871fb8 v1.35.2 2025-06-09 23:57:04 +08:00
xiaojunnuo
107196122c build: prepare to build 2025-06-09 23:54:50 +08:00
xiaojunnuo
563c02d8da build: prepare to build 2025-06-09 23:50:44 +08:00
xiaojunnuo
765934970a chore: 数据库 2025-06-09 23:50:19 +08:00
xiaojunnuo
9cbdfda829 perf: 优化阿里云nlb支持部署扩展证书 2025-06-09 23:41:44 +08:00
xiaojunnuo
c1fbc8cd68 fix: 修复阿里云新加坡clb无法部署证书的bug 2025-06-09 23:41:21 +08:00
xiaojunnuo
a92107cc47 fix: 修复检查github release 插件无法保存最后版本的bug 2025-06-09 23:35:17 +08:00
xiaojunnuo
3e84e116e8 fix: 修复阿里云新加坡clb无法部署证书的bug 2025-06-09 22:46:59 +08:00
xiaojunnuo
7c0cdd169e perf: 子域名托管帮助链接优化为打开新窗口
Closes https://github.com/certd/certd/issues/419
2025-06-09 22:28:56 +08:00
xiaojunnuo
424fd96615 perf: 阿里云dns操作增加重试机制 2025-06-09 11:42:25 +08:00
xiaojunnuo
ebfcea88da chore: 2025-06-09 11:38:07 +08:00
xiaojunnuo
3c7eb2f5e2 chore: 小优化 2025-06-09 11:32:06 +08:00
xiaojunnuo
936167972f fix: 修复站点监控定时器多次添加的bug 2025-06-09 11:14:45 +08:00
xiaojunnuo
7f6070c960 perf: history增加触发类型显示 2025-06-09 11:13:51 +08:00
xiaojunnuo
0aea9c129c build: publish 2025-06-07 09:12:22 +08:00
xiaojunnuo
d20fb7daa8 build: trigger build image 2025-06-07 09:12:06 +08:00
xiaojunnuo
a619f8a2fe v1.35.1 2025-06-07 09:10:46 +08:00
xiaojunnuo
0acb858d7b build: prepare to build 2025-06-07 09:08:51 +08:00
xiaojunnuo
e459be76fe build: prepare to build 2025-06-07 09:05:35 +08:00
xiaojunnuo
c4c59ccc75 revert: 2025-06-07 01:19:47 +08:00
xiaojunnuo
c820315409 perf: 优化流水线页面,增加下次执行时间、查看证书显示 2025-06-07 01:19:37 +08:00
xiaojunnuo
2a19b61b7a perf: aliyun alb支持部署扩展证书 2025-06-07 00:15:16 +08:00
xiaojunnuo
e1cf64ae16 perf: 修改 HTTPS 服务器监听地址
- 将 HTTPS服务器的监听地址从 '0.0.0.0' 修改为 '::',以支持 IPv6

https://github.com/certd/certd/issues/416
2025-06-06 22:27:41 +08:00
xiaojunnuo
d3c2f8eb43 perf: 站点证书监控支持定时设置,重试次数设置 2025-06-06 18:20:30 +08:00
xiaojunnuo
a00453c83a fix: 修复站点监控通知渠道设置无效的bug 2025-06-06 16:12:30 +08:00
xiaojunnuo
2eb0e54909 perf: 证书申请支持letencrypt profile选项 2025-06-06 15:12:24 +08:00
xiaojunnuo
ac87bc57e9 fix: 某些证书提供商的证书确实commonName导致无法转换证书的问题 2025-06-06 13:53:05 +08:00
xiaojunnuo
2b8ea857f0 build: publish 2025-06-06 00:12:42 +08:00
xiaojunnuo
11c52114b2 build: trigger build image 2025-06-06 00:12:26 +08:00
xiaojunnuo
f55f9b4dd3 v1.35.0 2025-06-06 00:11:09 +08:00
xiaojunnuo
cdd369ea98 build: prepare to build 2025-06-06 00:09:15 +08:00
xiaojunnuo
f2aab9f476 build: prepare to build 2025-06-06 00:02:00 +08:00
xiaojunnuo
2619dc3556 chore: 2025-06-06 00:01:39 +08:00
xiaojunnuo
1bbed351ba Merge branch 'v2-dev' into v2 2025-06-05 23:56:47 +08:00
xiaojunnuo
4cfb2644c6 build: publish 2025-06-05 23:52:05 +08:00
xiaojunnuo
5b85c7ad39 build: trigger build image 2025-06-05 23:51:48 +08:00
xiaojunnuo
ab3a3156f2 v1.34.11 2025-06-05 23:50:29 +08:00
xiaojunnuo
28a582025e build: prepare to build 2025-06-05 23:48:30 +08:00
xiaojunnuo
8451a83a3a chore: 2025-06-05 23:48:14 +08:00
xiaojunnuo
92c8dcc666 build: prepare to build 2025-06-05 23:43:24 +08:00
xiaojunnuo
da68b02e1e chore: 2025-06-05 23:43:14 +08:00
xiaojunnuo
2d7729dbe9 perf: 站点监控支持批量导入域名和ip 2025-06-05 23:31:36 +08:00
xiaojunnuo
6467edb843 fix: 修复flexcdn部署证书的顶级CA名称显示 2025-06-05 20:31:18 +08:00
xiaojunnuo
1f01b3a9ff chore: 2025-06-05 16:57:49 +08:00
xiaojunnuo
8aa1f8926d chore: 2025-06-05 16:54:35 +08:00
xiaojunnuo
ace363fa35 fix: 修复flexcdn证书commonNames错误的问题 2025-06-05 16:53:39 +08:00
xiaojunnuo
919f70a5fd fix: 修复用户最大流水线数量校验的问题 2025-06-05 16:29:13 +08:00
greper
9d6ad771a3 perf: AWS 中国区 CloudFront 证书部署(IAM 证书)@wifi9984
feat: AWS 中国区 CloudFront 证书部署(IAM 证书) @wifi9984
2025-06-05 15:50:31 +08:00
greper
bafccb20c6 perf: 为proxmox登录添加领域字段(@yajiedesign)
为proxmox登录添加领域字段
2025-06-05 15:48:32 +08:00
xiaojunnuo
cef30c2af0 chore: 2025-06-05 14:59:29 +08:00
yajiedesign
ca58056a75 根据要求修改 2025-06-05 14:25:36 +08:00
xiaojunnuo
03e2e99498 perf: 分组选择支持清空选项 2025-06-05 13:49:27 +08:00
yajiedesign
fba7afc4e9 为proxmox登录添加领域字段 2025-06-05 13:39:10 +08:00
xiaojunnuo
d7dda336ec chore: 2025-06-05 13:25:17 +08:00
xiaojunnuo
55d4395160 chore: 2025-06-05 11:26:27 +08:00
xiaojunnuo
f7d5baa6d0 fix: 修复中文域名使用cname方式校验无法通过的问题 2025-06-05 11:25:16 +08:00
xiaojunnuo
6ff509d263 perf: 增加下载日志按钮 2025-06-04 23:18:40 +08:00
xiaojunnuo
57778981a7 chore: 2025-06-04 23:06:07 +08:00
xiaojunnuo
6ac3bc564f perf: 支持设置用户有效期 2025-06-04 23:00:37 +08:00
xiaojunnuo
82d08e2153 chore: 2025-06-04 18:43:35 +08:00
xiaojunnuo
6212cd77e8 chore: 2025-06-04 17:31:40 +08:00
xiaojunnuo
170034f943 chore: 2025-06-04 17:28:56 +08:00
xiaojunnuo
e639a8f9f1 perf: 优化cname检查,当有冲突的cname记录时,给出提示 2025-06-04 17:26:56 +08:00
greper
9d10c45dac Merge pull request #411 from 5aaee9/v2
支持为 Lego 添加额外的命令参数
2025-06-04 16:41:17 +08:00
Indexyz
b84159f2f1 feat(lego): support for command options 2025-06-04 16:31:25 +08:00
xiaojunnuo
49f26b4049 fix: 修复cv4pve sdk (proxmox插件连接失败时无法正常结束任务的bug) 2025-06-04 13:36:31 +08:00
xiaojunnuo
0e7e44cee2 build: publish 2025-06-03 23:57:43 +08:00
xiaojunnuo
36e769502c build: trigger build image 2025-06-03 23:57:27 +08:00
xiaojunnuo
a4b6580247 v1.34.10 2025-06-03 23:56:13 +08:00
xiaojunnuo
84fb1c5127 build: prepare to build 2025-06-03 23:54:07 +08:00
xiaojunnuo
ddfd0fb81d perf: 支持部署到飞牛OS 2025-06-03 23:52:43 +08:00
xiaojunnuo
37edbf5824 perf: 支持日志写入文件 2025-06-03 18:16:35 +08:00
xiaojunnuo
e15212bf49 Merge branch 'v2' into v2-dev 2025-06-03 17:45:50 +08:00
xiaojunnuo
6a0cc1b1f3 perf: 优化流水线名称过长时的显示 2025-06-03 17:40:26 +08:00
xiaojunnuo
0e8339c701 perf: 阿里云CLB支持部署到扩展域名 2025-06-03 17:39:52 +08:00
greper
5d71a4dbde Merge pull request #409 from 5aaee9/v2
修复 FlexCDN 的问题
2025-06-03 11:09:24 +08:00
xiaojunnuo
0b78030c59 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-06-03 10:24:21 +08:00
xiaojunnuo
24237c16bf chore: 隐藏导出按钮 2025-06-03 10:23:28 +08:00
5aaee9
c48da5dea7 fix(flexcdn): fix cert upload and skipSslVerify required 2025-06-01 01:23:44 +08:00
wifi9984
6702ca10a1 feat: 完善注释 2025-05-31 22:19:34 +08:00
wifi9984
4b44bd5e61 reset pnpm-lock 2025-05-31 22:00:32 +08:00
wifi9984
8a55beda92 feat: AWS 中国区 CloudFront 证书部署(IAM 证书) 2025-05-31 21:46:21 +08:00
xiaojunnuo
a12b824339 build: publish 2025-05-31 00:57:52 +08:00
xiaojunnuo
c4a743189e build: trigger build image 2025-05-31 00:57:34 +08:00
xiaojunnuo
85f9ef35f6 v1.34.9 2025-05-31 00:56:14 +08:00
xiaojunnuo
6de220e38a build: prepare to build 2025-05-31 00:54:04 +08:00
xiaojunnuo
0d455d8c2f chore: email-selector 优化 2025-05-31 00:53:05 +08:00
xiaojunnuo
f7b0b44ef6 perf: 邮箱支持保存和选择 2025-05-31 00:45:54 +08:00
xiaojunnuo
81282a9c88 chore: 通知优化 2025-05-29 23:31:39 +08:00
xiaojunnuo
a9b302e38d perf: 不止证书自动化,插件解锁无限可能 2025-05-29 20:41:55 +08:00
xiaojunnuo
1fe4c367f7 fix: 修复Farcdn证书有效期错误的问题 2025-05-29 20:37:17 +08:00
xiaojunnuo
2de7583900 chore: 2025-05-29 09:41:21 +08:00
xiaojunnuo
356703c83e perf: 支持github 新版本检查并发布通知 2025-05-29 00:08:10 +08:00
xiaojunnuo
1cae709b2b build: publish 2025-05-28 23:14:49 +08:00
xiaojunnuo
46a492248f build: trigger build image 2025-05-28 23:14:34 +08:00
xiaojunnuo
d876ea6711 v1.34.8 2025-05-28 23:13:12 +08:00
xiaojunnuo
b40b4c3cfd build: prepare to build 2025-05-28 23:11:23 +08:00
xiaojunnuo
44980d6c46 build: prepare to build 2025-05-28 23:02:13 +08:00
xiaojunnuo
442f9647a2 chore: 2025-05-28 23:01:55 +08:00
xiaojunnuo
a06ef07178 perf: farcdn优化 2025-05-28 16:11:18 +08:00
xiaojunnuo
0c2ea5da4c fix: 修复阿里云 esa 证书获取站点列表错误的问题 2025-05-28 16:06:38 +08:00
xiaojunnuo
45814ceb49 chore: 优化站点ip检查 2025-05-28 15:49:48 +08:00
xiaojunnuo
41f4617e66 chore: 优化站点ip检查 2025-05-28 15:12:54 +08:00
xiaojunnuo
a463711b03 perf: 优化站点ip检查 2025-05-28 13:57:31 +08:00
xiaojunnuo
3a147141b1 perf: 优化站点选择组件,切换选择时不刷新列表 2025-05-28 11:22:39 +08:00
xiaojunnuo
aea1c13bd3 chore: 2025-05-28 01:22:23 +08:00
xiaojunnuo
9cc4c017ae perf: 站点监控支持监控IP 2025-05-28 00:57:52 +08:00
xiaojunnuo
88022747be fix: 修复证书申请任务无法修改dns提供商类型的bug 2025-05-27 15:32:31 +08:00
xiaojunnuo
ebb292a2f7 fix: 修复部署到华为cdn,子账号ak查询不到域名的bug 2025-05-27 12:02:54 +08:00
xiaojunnuo
818998259d perf: 支持批量重新运行 2025-05-27 11:08:08 +08:00
xiaojunnuo
36b02c2cec fix: 同步更新namesilo接口,修复无法创建和删除dns记录的问题 2025-05-27 10:31:48 +08:00
xiaojunnuo
e6195ade3e fix: 更新 1panel API 版本支持v1/v2设置 2025-05-27 00:22:39 +08:00
xiaojunnuo
231a875bb4 perf: 关闭腾讯云证书通知提醒 2025-05-27 00:10:50 +08:00
xiaojunnuo
378c777a38 chore: 2025-05-27 00:03:15 +08:00
xiaojunnuo
8ef63916ef chore: 2025-05-26 23:36:19 +08:00
xiaojunnuo
f32ecdf5f1 build: trigger build image 2025-05-26 23:34:59 +08:00
xiaojunnuo
94739b9b8e chore: 2025-05-26 23:25:43 +08:00
xiaojunnuo
023db4e04e v1.34.7 2025-05-26 23:24:35 +08:00
xiaojunnuo
5a4b95f5fe build: prepare to build 2025-05-26 23:20:59 +08:00
xiaojunnuo
b091657b5c perf: 优化阿里云DCDN插件,支持多选 2025-05-26 23:10:31 +08:00
xiaojunnuo
f7bf5c9328 chore: 2025-05-26 22:50:58 +08:00
xiaojunnuo
86e521b9aa chore: 2025-05-26 22:44:56 +08:00
xiaojunnuo
e08cf57b72 perf: 支持部署到farcdn 2025-05-26 22:22:39 +08:00
xiaojunnuo
9e06cb9a83 docs: 2025-05-26 00:03:22 +08:00
xiaojunnuo
c65e8622b8 Merge branch 'v2-dev' into v2 2025-05-26 00:00:32 +08:00
xiaojunnuo
7795efeb7a build: publish 2025-05-25 23:46:02 +08:00
xiaojunnuo
e725e0020e build: trigger build image 2025-05-25 23:45:46 +08:00
xiaojunnuo
8478ce25f1 v1.34.6 2025-05-25 23:44:23 +08:00
xiaojunnuo
22cdac6210 build: prepare to build 2025-05-25 23:42:01 +08:00
xiaojunnuo
3422a1a59f perf: 站点证书监控增加通知设置 2025-05-25 23:38:25 +08:00
xiaojunnuo
f807b8cb46 fix: 修复lego模式下每次都重新申请证书的bug 2025-05-25 22:58:30 +08:00
xiaojunnuo
e1e510ce1e fix: 修复公共插件配置修改不生效的bug,优化系统设置参数注入时机
- 将系统设置参数注入移至 outputContext读取输入参数之后
-修复了某些情况下系统设置参数可能被覆盖的问题
- 优化了代码结构,提高了可读性和维护性
2025-05-25 21:08:23 +08:00
xiaojunnuo
36bc3ff22d fix: 优化 RunnableError错误信息展示
- 确保在不同错误场景下都能正确显示错误详情
2025-05-25 20:50:15 +08:00
xiaojunnuo
1db1ffde99 perf: 添加阿里云 ESA证书部署插件
- 新增 AliyunDeployCertToESA 插件类,实现证书上传和部署到阿里云 ESA 功能
- 优化证书名称生成逻辑,支持通配符域名
- 重构部分代码,提高可复用性和可维护性
- 更新相关依赖版本,确保兼容性
2025-05-22 23:21:50 +08:00
xiaojunnuo
7984b625ba fix: 修复又拍云 CDN 设置证书参数和强制 HTTPS 配置报错的bug 2025-05-20 23:37:24 +08:00
xiaojunnuo
bb22f062ed perf: 二次认证页面中,添加动态验证码输入框的焦点控制,提升用户体验 2025-05-20 23:28:09 +08:00
xiaojunnuo
a3086e6a5b fix(cert): 修正证书过期时间计算逻辑 2025-05-20 23:19:50 +08:00
xiaojunnuo
1eb9bd34fd docs: 2025-05-20 09:36:13 +08:00
xiaojunnuo
cff7baaaad Merge branch 'v2-dev' into v2 2025-05-20 01:42:12 +08:00
xiaojunnuo
47af700375 build: publish 2025-05-20 01:40:26 +08:00
xiaojunnuo
eb7f53a1e3 build: trigger build image 2025-05-20 01:40:08 +08:00
xiaojunnuo
d23792fda2 v1.34.5 2025-05-20 01:38:18 +08:00
xiaojunnuo
b5cbb8e450 build: prepare to build 2025-05-20 01:35:39 +08:00
xiaojunnuo
fc037b4518 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-05-20 01:13:50 +08:00
xiaojunnuo
c04921f42b docs: 2025-05-20 01:13:01 +08:00
xiaojunnuo
8af3463668 perf: aaWaf、cdnfly站点选择支持查询 2025-05-20 01:11:26 +08:00
xiaojunnuo
094565ccd6 perf: 支持部署到宝塔aaWAF 2025-05-20 00:27:18 +08:00
xiaojunnuo
07b9769504 docs: 2025-05-19 11:34:59 +08:00
xiaojunnuo
566b12f5d1 perf: 1panel增加授权测试按钮 2025-05-19 10:58:28 +08:00
xiaojunnuo
a560999d13 perf: 优化钉钉通知标题颜色 2025-05-17 01:13:36 +08:00
xiaojunnuo
a818a3d293 perf: 优化飞书通知为卡片模式 2025-05-17 00:47:28 +08:00
xiaojunnuo
4d68a174cb Merge branch 'v2-dev' into v2 2025-05-17 00:14:16 +08:00
xiaojunnuo
905219e523 build: publish 2025-05-17 00:05:31 +08:00
xiaojunnuo
c675b87040 build: trigger build image 2025-05-17 00:05:13 +08:00
xiaojunnuo
e2dadfdc40 v1.34.4 2025-05-17 00:03:13 +08:00
xiaojunnuo
a66f9aa04d build: prepare to build 2025-05-16 23:58:51 +08:00
xiaojunnuo
863e74dd2e fix: 修复自建插件保存丢失部署策略的bug 2025-05-16 23:50:18 +08:00
xiaojunnuo
aebb07c5cc perf: 调整小助手,仅在登录之后显示 2025-05-16 23:14:43 +08:00
xiaojunnuo
677fec0a0b fix: 修复插件导入的bug 2025-05-16 08:55:54 +08:00
xiaojunnuo
61f06faaf5 chore: 2025-05-16 08:42:31 +08:00
xiaojunnuo
fcf8309c23 fix: 修复导入在线插件不生效的bug 2025-05-16 08:38:38 +08:00
xiaojunnuo
76b19a4980 fix: 修复部署flexcdn问题 2025-05-16 08:38:16 +08:00
xiaojunnuo
ed1a9fc7aa Merge branch 'v2-dev' into v2 2025-05-16 00:21:55 +08:00
xiaojunnuo
b71e30755d build: publish 2025-05-16 00:14:32 +08:00
xiaojunnuo
fe196d1b20 build: trigger build image 2025-05-16 00:14:14 +08:00
xiaojunnuo
0b152a3cb8 v1.34.3 2025-05-16 00:12:33 +08:00
xiaojunnuo
1a0e096ddb build: prepare to build 2025-05-16 00:08:05 +08:00
xiaojunnuo
bf040d4c42 perf: 添加 FlexCDN 更新证书插件
- 新增 FlexCDNRefreshCert 插件类,实现更新证书功能
- 添加 FlexCDNAccess 授权类和 FlexCDNClient 客户端类
- 实现获取证书列表和更新证书的 API 调用
- 提供插件配置界面和执行逻辑
2025-05-16 00:04:52 +08:00
xiaojunnuo
3e2101aa5b perf: 小助手可以关闭 2025-05-15 23:06:22 +08:00
xiaojunnuo
44f11b38e7 docs: 2025-05-15 22:54:13 +08:00
xiaojunnuo
06f8514bc1 docs(guide): 更新常见问题解答
- 新增 ping 域名的故障排查步骤
- 添加查看容器日志的方法
- 补充 IPv6网络配置的说明
2025-05-15 21:54:20 +08:00
xiaojunnuo
d9a9f1c25c docs: 2025-05-15 21:10:23 +08:00
xiaojunnuo
e77f7244ba chore: 2025-05-15 18:08:50 +08:00
xiaojunnuo
09779cd1e1 chore: 2025-05-15 14:35:45 +08:00
xiaojunnuo
11024168db chore: 2025-05-15 14:08:30 +08:00
xiaojunnuo
304914513e chore: 2025-05-15 14:08:14 +08:00
xiaojunnuo
03d0efcfc6 chore: 2025-05-15 13:16:29 +08:00
xiaojunnuo
0c2bdc9146 chore: 2025-05-15 13:05:07 +08:00
xiaojunnuo
188450b0c0 chore: 2025-05-15 13:03:37 +08:00
xiaojunnuo
ddf6bbfa46 docs: 2025-05-15 12:24:14 +08:00
xiaojunnuo
2c7c98a152 docs: 2025-05-15 12:20:20 +08:00
xiaojunnuo
d31ac75718 docs: 2025-05-15 11:18:31 +08:00
xiaojunnuo
4b28c659de docs: 2025-05-15 09:38:35 +08:00
xiaojunnuo
00b937e52a Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-05-15 09:22:00 +08:00
xiaojunnuo
68f333fb87 perf: 支持部署到maoyun cdn 2025-05-15 01:03:21 +08:00
xiaojunnuo
085b4d9319 docs: 2025-05-14 16:02:49 +08:00
xiaojunnuo
b8edd14f39 refactor(ui): 优化 AI聊天功能
- 在打开聊天时增加对空消息的检查,避免发送无效请求
- 在发送消息时添加来源标识,以便服务端区分消息来源
- 在任务视图中增加对空日志的检查,避免触发空指针异常
2025-05-14 15:46:41 +08:00
xiaojunnuo
61a19d694b docs: ip证书说明 2025-05-14 15:06:58 +08:00
xiaojunnuo
aa96859798 perf: 支持AI分析报错 2025-05-14 15:03:47 +08:00
xiaojunnuo
abf015f485 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-05-14 08:57:15 +08:00
xiaojunnuo
0b9a02afde docs: docs 2025-05-14 08:56:48 +08:00
xiaojunnuo
e332ce28f8 chore: baotawaf access 2025-05-14 01:06:30 +08:00
xiaojunnuo
08e779f9f1 docs: ipv6 2025-05-13 23:06:54 +08:00
xiaojunnuo
a53b6cd28f perf: 宝塔插件、1panel 改成完全免费版 2025-05-13 21:15:59 +08:00
xiaojunnuo
47ebab237b Merge branch 'v2-dev' into v2 2025-05-11 20:29:59 +08:00
xiaojunnuo
5a5af60f97 build: publish 2025-05-11 20:29:09 +08:00
xiaojunnuo
50cc17c7cb build: trigger build image 2025-05-11 20:28:45 +08:00
xiaojunnuo
a1e504c138 v1.34.2 2025-05-11 20:27:04 +08:00
xiaojunnuo
4cc413047c build: prepare to build 2025-05-11 20:23:52 +08:00
xiaojunnuo
2397097e4d fix: 修复部署到又拍云强制https无效的bug 2025-05-11 12:29:04 +08:00
xiaojunnuo
c88f959ec9 chore: 2025-05-11 10:55:45 +08:00
xiaojunnuo
0b2e28b62d fix: 修复刷新流水线页面后,日志不自动更新的bug 2025-05-11 10:55:01 +08:00
xiaojunnuo
c7f2ead696 chore: doc 2025-05-11 10:22:10 +08:00
xiaojunnuo
b454e02d01 chore: doc 2025-05-11 10:04:54 +08:00
xiaojunnuo
47df2ffc3e chore: doc 2025-05-10 22:05:21 +08:00
xiaojunnuo
d18e431e2f perf: 支持设置网安备案号 2025-05-10 21:31:32 +08:00
xiaojunnuo
0a147d2db7 chore: 2025-05-10 20:52:23 +08:00
xiaojunnuo
ccdc933064 chore: 2025-05-10 17:29:10 +08:00
xiaojunnuo
023f2d4569 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-05-10 15:05:28 +08:00
xiaojunnuo
06a7371d2b chore: 2025-05-10 15:04:57 +08:00
xiaojunnuo
626f5d3487 chore: 2025-05-10 13:58:08 +08:00
xiaojunnuo
8cd3b9fe2e Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-05-09 18:51:39 +08:00
xiaojunnuo
716c35d52a chore: doc 2025-05-09 18:51:08 +08:00
xiaojunnuo
8cc0f3918b chore: 文档增加插件列表 2025-05-08 23:47:50 +08:00
xiaojunnuo
98b51f0799 chore: 文档增加插件列表 2025-05-08 23:27:46 +08:00
xiaojunnuo
81d6dad548 chore: 2025-05-08 10:29:42 +08:00
xiaojunnuo
41bc11cf96 chore: 2025-05-08 10:29:25 +08:00
xiaojunnuo
721dbe415a chore: 2025-05-08 10:28:44 +08:00
xiaojunnuo
f5c0b51428 chore: 2025-05-08 10:27:49 +08:00
xiaojunnuo
892c6ad80c chore: 2025-05-08 10:23:47 +08:00
xiaojunnuo
a47805e494 chore: 2025-05-08 10:22:31 +08:00
xiaojunnuo
9dd49054d1 perf: 集成智能问答机器人 2025-05-07 14:15:32 +08:00
xiaojunnuo
f5d1d1a0b7 chore: 1 2025-05-06 17:52:39 +08:00
xiaojunnuo
d75fcb7fec perf: http方式支持校验443端口 2025-05-06 17:01:20 +08:00
xiaojunnuo
826be45b6a chore: 等待解析生效时长可自定义 2025-05-06 11:04:02 +08:00
xiaojunnuo
d35d9c17c5 chore: doc 2025-05-06 10:57:07 +08:00
xiaojunnuo
f9553e7d44 Merge branch 'v2-dev' into v2 2025-05-06 00:33:19 +08:00
xiaojunnuo
638c9720cf chore: 1.34.1 2025-05-06 00:32:38 +08:00
xiaojunnuo
08a190882f build: trigger build image 2025-05-06 00:32:25 +08:00
xiaojunnuo
bfa7530a39 chore: 1.34.1 2025-05-06 00:32:11 +08:00
xiaojunnuo
6c74148c27 v1.34.1 2025-05-06 00:21:50 +08:00
xiaojunnuo
480cad0fed build: prepare to build 2025-05-06 00:16:10 +08:00
xiaojunnuo
32be489136 chore: parseDomain优化 2025-05-06 00:14:17 +08:00
xiaojunnuo
11801d8e2e chore: 2025-05-05 22:20:42 +08:00
xiaojunnuo
1b280a2940 fix: 根据SOA记录判断子域名托管有缺陷,改回手动配置子域名托管记录的方式 2025-05-05 21:43:39 +08:00
xiaojunnuo
424890a1e1 chore: safePromise 优化 2025-04-30 09:38:44 +08:00
xiaojunnuo
5f85219495 perf: 支持部署证书到火山dcdn 2025-04-29 18:40:13 +08:00
xiaojunnuo
a63d687f1c perf: 支持部署证书到unicloud 2025-04-29 13:36:24 +08:00
xiaojunnuo
f2d6c3ad83 chore: 移除 autowire 2025-04-28 23:34:08 +08:00
xiaojunnuo
0b6941d5ce chore: 移除autowire特性 2025-04-28 21:55:23 +08:00
xiaojunnuo
048696ee93 fix: 修复宝塔授权测试按钮显示错误的bug 2025-04-28 21:33:07 +08:00
xiaojunnuo
ae51676471 Merge branch 'v2-dev' into v2 2025-04-28 17:31:04 +08:00
xiaojunnuo
27a405fb1d build: publish 2025-04-28 17:29:04 +08:00
xiaojunnuo
e2cf65b591 build: trigger build image 2025-04-28 17:28:45 +08:00
xiaojunnuo
9749fc817d v1.34.0 2025-04-28 17:27:05 +08:00
xiaojunnuo
e6600f2c43 build: prepare to build 2025-04-28 17:24:37 +08:00
xiaojunnuo
a664931e7a build: prepare to build 2025-04-28 17:14:39 +08:00
xiaojunnuo
a2ba965600 chore: 2025-04-28 17:12:25 +08:00
xiaojunnuo
65255dbb50 chore: 恢复加载插件方式为注解方式 2025-04-28 17:05:14 +08:00
xiaojunnuo
a5cb8761a5 build: prepare to build 2025-04-28 16:58:59 +08:00
xiaojunnuo
e3930e0717 fix: 修复二次认证登录进入错误账号的bug 2025-04-28 16:57:30 +08:00
xiaojunnuo
afd59e9933 perf: 优化cdnfly插件,支持自动匹配域名部署 2025-04-28 00:55:39 +08:00
xiaojunnuo
8087524bef chore: product info 2025-04-27 22:51:47 +08:00
xiaojunnuo
605440812f Merge remote-tracking branch 'refs/remotes/origin/v2-dev-plugin-yaml' into v2-dev
# Conflicts:
#	packages/ui/certd-server/export-plugin-yaml.js
2025-04-27 22:50:19 +08:00
xiaojunnuo
b10c6eb615 Merge branch 'v2-dev-yaml' into v2-dev 2025-04-27 21:35:36 +08:00
xiaojunnuo
a96264ff6a chore: 2025-04-27 15:50:38 +08:00
xiaojunnuo
deb3893820 feat: 从yaml文件注册插件 2025-04-27 15:11:50 +08:00
xiaojunnuo
9b1d822b5b chore: 2025-04-27 11:05:01 +08:00
xiaojunnuo
f933fb705c Merge branch 'v2-dev' into v2 2025-04-27 02:01:28 +08:00
xiaojunnuo
5cd61c4c02 build: publish 2025-04-27 01:58:54 +08:00
xiaojunnuo
586fa70eac build: trigger build image 2025-04-27 01:58:37 +08:00
xiaojunnuo
9b420ad33f v1.33.8 2025-04-27 01:56:54 +08:00
xiaojunnuo
5891290672 build: prepare to build 2025-04-27 01:54:19 +08:00
xiaojunnuo
72a7b51d47 fix: 修复http上传方式无法清除记录文件的bug 2025-04-27 01:52:42 +08:00
xiaojunnuo
2943e0e58d chore: oss 库 完善 2025-04-27 01:31:46 +08:00
xiaojunnuo
5abce916a8 chore: 2025-04-25 18:45:42 +08:00
xiaojunnuo
89d4be8a0a chore: 2025-04-25 18:37:29 +08:00
xiaojunnuo
b7113bda23 perf: 七牛oss支持删除过期备份 2025-04-25 18:36:49 +08:00
xiaojunnuo
0088929622 perf: 支持反向代理增加contextPath路径 2025-04-25 18:04:59 +08:00
xiaojunnuo
b3468cf7f2 perf: 支持阿里云中文域名申请 2025-04-25 18:04:24 +08:00
xiaojunnuo
f88c5c8528 chore: 2025-04-25 02:11:23 +08:00
xiaojunnuo
687fdda7f7 chore: 2025-04-25 02:11:08 +08:00
xiaojunnuo
aec51e514c chore: 2025-04-25 01:44:15 +08:00
xiaojunnuo
308d4600ef perf: 数据库备份支持oss 2025-04-25 01:26:04 +08:00
xiaojunnuo
50a5fa15bb fix: 修复token过期后,疯狂打印token过期信息的bug 2025-04-24 23:54:09 +08:00
xiaojunnuo
7d96a57d73 chore: 2025-04-24 17:27:13 +08:00
xiaojunnuo
162ebfd4e0 perf: 支持中文域名 2025-04-24 11:55:14 +08:00
xiaojunnuo
a586a92d5e perf: 从域名的soa获取主域名,子域名托管无需额外配置 2025-04-24 11:54:54 +08:00
xiaojunnuo
3df20a924f fix: 修复复制流水线无效的bug 2025-04-24 09:09:38 +08:00
xiaojunnuo
ddcf466e4e docs: 升级前切记备份数据 2025-04-23 17:59:48 +08:00
xiaojunnuo
5d10cbf18d fix: 服务器时间获取不准确的bug 2025-04-23 14:55:51 +08:00
xiaojunnuo
918ea59b9a Merge branch 'v2-dev' into v2 2025-04-22 22:49:53 +08:00
xiaojunnuo
8d9afa7592 build: publish 2025-04-22 22:32:56 +08:00
xiaojunnuo
95e05336c2 build: trigger build image 2025-04-22 22:32:18 +08:00
xiaojunnuo
a188385817 v1.33.7 2025-04-22 22:27:50 +08:00
xiaojunnuo
0a6baf331b build: prepare to build 2025-04-22 22:12:51 +08:00
xiaojunnuo
0e29e052d5 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-04-22 22:11:32 +08:00
xiaojunnuo
d8d255980e chore: 2025-04-22 15:53:19 +08:00
xiaojunnuo
dc5a5fa543 chore: 2025-04-22 11:41:45 +08:00
xiaojunnuo
8638fc91ff perf: 证书申请支持51dns 2025-04-22 11:39:09 +08:00
xiaojunnuo
96a0900edc perf: 支持51dns 2025-04-22 11:39:07 +08:00
xiaojunnuo
abea80e3ab perf: 添加部署证书至火山 Live
- 新增 VolcengineDeployToLive 插件,用于将证书部署到火山引擎视频直播
- 新增 VolcengineDeployToVOD 插件,用于将证书部署到火山引擎视频点播
- 更新 ve-client.ts,增加对 Live 和 VOD 服务的支持
2025-04-21 23:39:33 +08:00
xiaojunnuo
42dfe936b7 perf: ssh伪终端模式优化,windows下不开启 2025-04-21 17:34:26 +08:00
xiaojunnuo
8385bcc2d7 perf: ssh PTY模式登录设置 2025-04-21 17:26:42 +08:00
xiaojunnuo
9b8f60b64b perf: 优化首页插件列表展示 2025-04-21 12:13:01 +08:00
xiaojunnuo
b9dab77c8b Merge branch 'v2-dev' into v2 2025-04-21 00:18:53 +08:00
xiaojunnuo
474114236e build: publish 2025-04-21 00:08:56 +08:00
xiaojunnuo
238b0b421a build: trigger build image 2025-04-21 00:08:38 +08:00
xiaojunnuo
8abe62886a v1.33.6 2025-04-21 00:06:48 +08:00
xiaojunnuo
78cc9cffe4 build: prepare to build 2025-04-21 00:04:13 +08:00
xiaojunnuo
59a5dd713f chore: 2025-04-20 23:58:02 +08:00
xiaojunnuo
a39024ff03 build: prepare to build 2025-04-20 23:55:30 +08:00
xiaojunnuo
72bfbd93a8 chore: 2025-04-20 23:55:05 +08:00
xiaojunnuo
c9a3e3d9d2 perf: 新增部署到火山引擎ALB/CLB、上传到证书中心 2025-04-20 23:53:27 +08:00
xiaojunnuo
8387708901 docs: 2025-04-20 21:23:59 +08:00
xiaojunnuo
b565b4b3b9 perf: 优化华为cdn插件引用ccm证书 2025-04-20 20:16:36 +08:00
xiaojunnuo
893dcd4f24 perf: 切换到不同的分组后再打开创建对话框,会自动选择分组 2025-04-19 17:08:44 +08:00
xiaojunnuo
d613aa8f3e perf: 优化证书流水线创建,支持选择分组 2025-04-19 16:05:24 +08:00
xiaojunnuo
5750bb7067 fix: 上传商用证书,直接粘贴文本报错的问题;修复无法上传ec加密证书的bug 2025-04-19 15:00:34 +08:00
xiaojunnuo
0e07ae6ce8 fix: 修复下载证书时提示token已过期的问题 2025-04-19 14:25:56 +08:00
xiaojunnuo
02b6351e13 docs: 宝塔network 2025-04-19 12:14:19 +08:00
xiaojunnuo
78367af830 perf: 更新license时同时绑定url 2025-04-19 11:48:40 +08:00
xiaojunnuo
dc05cd481f perf: 优化/api缓存为0 2025-04-18 15:23:51 +08:00
xiaojunnuo
7daad5477a Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-04-18 10:17:48 +08:00
xiaojunnuo
45cdfbfae8 chore: 2025-04-18 10:17:24 +08:00
xiaojunnuo
4159534a64 Merge branch 'v2-dev' into v2 2025-04-17 23:38:29 +08:00
xiaojunnuo
3fb5c38571 build: publish 2025-04-17 23:37:26 +08:00
xiaojunnuo
59f80ebc47 build: trigger build image 2025-04-17 23:37:09 +08:00
xiaojunnuo
198a97b00c v1.33.5 2025-04-17 23:35:14 +08:00
xiaojunnuo
3ea4e917e8 build: prepare to build 2025-04-17 23:32:08 +08:00
xiaojunnuo
60ad077172 pref: 任务日志查看页面,增加强制重新运行按钮 2025-04-17 23:31:43 +08:00
xiaojunnuo
356ad28e41 chore: 2025-04-17 23:11:04 +08:00
xiaojunnuo
e241141220 build: prepare to build 2025-04-17 23:07:14 +08:00
xiaojunnuo
14bb1b467a chore: 2025-04-17 23:06:17 +08:00
xiaojunnuo
2bbea6fd3f chore: 2025-04-17 23:05:52 +08:00
xiaojunnuo
48aef25b3f perf: 登录支持双重认证 2025-04-17 22:34:21 +08:00
xiaojunnuo
8e50e5dee3 chore: plus 2025-04-17 13:41:08 +08:00
xiaojunnuo
d5d54d4d3b chore: 2FA 2025-04-17 01:15:55 +08:00
xiaojunnuo
412e8a32dd Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-04-17 00:06:58 +08:00
xiaojunnuo
0f82cf409b perf: 多重认证登录 2025-04-17 00:06:49 +08:00
xiaojunnuo
79df39acab perf: 优化部署到华为云CDN,支持先上传到ccm,再使用证书id部署,修复offline状态下导致部署报错的bug 2025-04-16 09:34:04 +08:00
xiaojunnuo
d00177a9b6 chore: 2025-04-16 00:04:40 +08:00
xiaojunnuo
8786bae7dc chore: 2025-04-16 00:03:13 +08:00
xiaojunnuo
4b3f8ca361 chore: 2025-04-16 00:02:58 +08:00
xiaojunnuo
03183218f7 chore: 2025-04-16 00:01:52 +08:00
xiaojunnuo
95b6db57e1 chore: 2025-04-15 23:57:50 +08:00
xiaojunnuo
bbe0c2457b build: publish 2025-04-15 23:50:06 +08:00
xiaojunnuo
c894c53e69 build: trigger build image 2025-04-15 23:49:48 +08:00
xiaojunnuo
5b3fb7387d v1.33.4 2025-04-15 23:48:00 +08:00
xiaojunnuo
feac310caf build: prepare to build 2025-04-15 23:45:18 +08:00
xiaojunnuo
d67ec3feb3 chore: 2025-04-15 23:45:11 +08:00
xiaojunnuo
cf8abb4528 perf: 插件支持导入导出 2025-04-15 23:43:01 +08:00
xiaojunnuo
d66de26de4 Merge branch 'v2' into v2-dev 2025-04-15 21:34:13 +08:00
xiaojunnuo
e5a7ada3cf Merge branch 'v2' into v2-dev-yaml 2025-04-15 21:19:39 +08:00
xiaojunnuo
b76fdd7fe4 Merge branch 'v2-dev' into v2-dev-yaml 2025-04-15 21:19:36 +08:00
greper
7edf3f6147 fix: 修复腾讯云部署到任意资源插件,无法使用之前已上传的腾讯云证书问题 from xinghejd/dev @xinghejd
fix: 修复腾讯云部署到任意资源插件,无法使用之前已上传的腾讯云证书问题
2025-04-15 21:16:49 +08:00
xinghejd
2143dff2ae fix: 补充类型断言 2025-04-15 08:54:28 +00:00
xinghejd
32c714d1b6 fix: 修复腾讯云部署到任意资源插件,无法使用之前已上传的腾讯云证书问题 2025-04-15 08:47:57 +00:00
xiaojunnuo
84e699ee24 chore: 思维导图 2025-04-15 11:22:42 +08:00
xiaojunnuo
7fdb572b8b chore: 思维导图 2025-04-15 11:07:27 +08:00
xiaojunnuo
91ffb0820a chore: plugin元数据换成yaml格式 2025-04-15 00:16:57 +08:00
xiaojunnuo
cfd3b66be9 perf: 支持上传证书到华为云CCM 2025-04-14 23:31:59 +08:00
xiaojunnuo
75c4f9dea8 build: publish 2025-04-14 22:27:24 +08:00
xiaojunnuo
a76a32230d build: trigger build image 2025-04-14 22:26:59 +08:00
xiaojunnuo
0730f5ff4f v1.33.3 2025-04-14 22:25:16 +08:00
xiaojunnuo
c43d0a684c build: prepare to build 2025-04-14 22:22:17 +08:00
xiaojunnuo
66f1eda6cf chore: 2025-04-14 22:22:01 +08:00
xiaojunnuo
bf4d191c8b fix: 修复登录错误次数过多阻止再次登录逻辑 2025-04-14 18:09:54 +08:00
xiaojunnuo
d76d56fcce pref: 安全特性支持,站点隐藏功能 2025-04-14 17:40:23 +08:00
xiaojunnuo
251b0c58de chore: 2025-04-14 10:06:58 +08:00
xiaojunnuo
073cca4e8e chore: 2025-04-14 09:54:24 +08:00
xiaojunnuo
a4ad99f189 build: publish 2025-04-13 01:33:57 +08:00
xiaojunnuo
d37b910889 build: trigger build image 2025-04-13 01:33:28 +08:00
xiaojunnuo
be69244e8d v1.33.2 2025-04-13 01:31:52 +08:00
xiaojunnuo
617f74a225 build: prepare to build 2025-04-13 01:29:05 +08:00
xiaojunnuo
a2710ddc25 perf: 修复内置插件分页查询逻辑
- 在前端添加 lastType 变量,用于判断类型变化并重置分页偏移量
- 在后端修改内置插件查询逻辑,支持分页请求
- 优化后端返回数据结构,使其与前端请求一致
2025-04-13 01:28:10 +08:00
xiaojunnuo
70101bfa7a fix: 修复某些情况下无法输出日志的bug 2025-04-13 01:17:52 +08:00
xiaojunnuo
203f2984d7 chore: 1.33.1 2025-04-13 01:05:51 +08:00
xiaojunnuo
1d510e76b8 build: trigger build image 2025-04-13 01:02:07 +08:00
xiaojunnuo
64244af2cc v1.33.1 2025-04-13 00:49:14 +08:00
xiaojunnuo
35e109882e build: prepare to build 2025-04-13 00:45:32 +08:00
xiaojunnuo
18a32ffb0b chore: 修复一些小问题 2025-04-13 00:45:01 +08:00
xiaojunnuo
a5af3ba0cb build: prepare to build 2025-04-13 00:19:38 +08:00
xiaojunnuo
83bd39a9a8 chore: 1 2025-04-13 00:10:23 +08:00
xiaojunnuo
cc0657aaa8 pref: 优化插件store 2025-04-12 23:59:03 +08:00
xiaojunnuo
965dc2cb47 fix: 修复阿里云cdn证书部署失败问题,增加certname参数传入
- 添加证书所在地域选择功能,默认为 cn-hangzhou(杭州)
- 国际站用户可选择 ap-southeast-1(新加坡)地域
- 优化证书上传和设置流程,增加证书名称和地域参数
2025-04-12 23:58:38 +08:00
xiaojunnuo
9c4cbe17a2 fix: 修复ssh插件报length空指针的bug
- 在数据加密判断中增加非空检查,避免对未定义或空值进行加密判断- 提高了代码的健壮性和安全性
2025-04-12 22:04:14 +08:00
xiaojunnuo
835fcfa4ea pref: 优化mysql版的插件脚本字段为longtext 2025-04-12 22:02:54 +08:00
xiaojunnuo
932780c578 pref: 优化部署到腾讯云任意资源插件,支持region,和资源类型选择
- 添加资源类型选择输入,支持多种腾讯云产品
-增加证书上传功能,支持直接上传证书到腾讯云
- 优化证书 ID 输入,支持选择上传任务或申请任务的输出- 添加 Region 输入,用于指定云资源所在地域
- 更新文档链接,提供更详细的参考信息
2025-04-12 22:02:16 +08:00
xiaojunnuo
37f160a452 pref: 增加又拍云 CDN 部署时的 HTTPS 配置选项
- 在插件中添加了两个新的配置项:强制 HTTPS 和开启 HTTPS- 用户可以在部署证书时选择是否强制 HTTPS 或开启 HTTPS
-根据用户选择,插件会相应地设置 CDN 域名的 HTTPS 配置
2025-04-12 22:01:29 +08:00
xiaojunnuo
f80b706fc3 chore: 2025-04-12 03:29:02 +08:00
xiaojunnuo
f78cbed4d8 perf: 镜像支持armv7 2025-04-12 03:25:43 +08:00
xiaojunnuo
e0b12c78ff chore: build 1.33.0 2025-04-12 03:13:31 +08:00
xiaojunnuo
e7cf814a59 build: prepare to build 2025-04-12 03:13:06 +08:00
xiaojunnuo
865c45593b chore: build 1.33.0 2025-04-12 03:12:53 +08:00
xiaojunnuo
62e6f109c7 chore: build 1.33.0 2025-04-12 03:03:26 +08:00
xiaojunnuo
60be8ed022 chore: build 1.33.0 2025-04-12 02:58:19 +08:00
xiaojunnuo
c157882900 chore: build 1.33.0 2025-04-12 02:55:28 +08:00
xiaojunnuo
a23c211a65 build: publish 2025-04-12 02:40:33 +08:00
xiaojunnuo
293ed6bd7e build: trigger build image 2025-04-12 02:40:15 +08:00
xiaojunnuo
13ddd7c5f9 v1.33.0 2025-04-12 02:38:31 +08:00
xiaojunnuo
0de015fc8b build: prepare to build 2025-04-12 02:35:34 +08:00
xiaojunnuo
d34fedae01 build: prepare to build 2025-04-12 02:34:03 +08:00
xiaojunnuo
7c623fc467 chore: 新增插件编辑页面跳转
- 在插件创建成功后跳转到编辑页面
- 优化了插件管理功能,提高了用户操作的便捷性
2025-04-12 02:33:44 +08:00
xiaojunnuo
359079c3e6 chore: v21适配多数据库 2025-04-12 02:24:38 +08:00
xiaojunnuo
ba72fa3f05 chore: 2025-04-12 02:10:17 +08:00
xiaojunnuo
23caab5b06 chore: 添加子域名托管解析设置并更新相关提示
- 在证书申请页面添加子域名托管解析设置入口
- 更新域名输入提示,增加子域名托管解析相关说明
- 更改子域名托管解析页面图标
2025-04-12 02:00:40 +08:00
xiaojunnuo
b506bd15a5 chore: 2025-04-12 01:48:08 +08:00
xiaojunnuo
d0d9d68fe6 feat: 支持在线自定义插件,无需源码开发 2025-04-12 01:38:48 +08:00
xiaojunnuo
88134ac130 refactor(plugin): 优化插件配置界面和功能
-调整插件配置界面布局和样式
- 增加插件类型和图标字段
- 修改字段显示逻辑,根据不同插件类型显示相应字段
- 优化插件服务端处理逻辑,支持不同类型的插件配置
2025-04-12 01:34:48 +08:00
xiaojunnuo
3d8a5196a0 refactor(core): 重构访问控制和插件实例化逻辑
- 修改访问控制和插件注册方式,使用异步函数统一实例化逻辑
- 更新相关组件和控制器以适应新的异步实例化方式
- 优化 DNS 提供商选择器,增加访问类型支持
2025-04-12 01:21:50 +08:00
xiaojunnuo
c4fb138ae8 chore: 2025-04-12 00:21:19 +08:00
xiaojunnuo
759cfdaabd pref: 日志中加密授权信息输出替换成星号 2025-04-12 00:14:55 +08:00
xiaojunnuo
3d9620abb0 refactor(plugin): 重构插件定义和安装流程
- 更新插件配置格式,增加依赖库和插件类型字段
- 修改插件安装流程,支持安装依赖插件和第三方库
- 优化插件列表过滤逻辑,按类型筛选插件
- 调整 Dockerfile,使用 Node.js22 镜像并更新 pnpm 安装方式
2025-04-11 23:39:40 +08:00
xiaojunnuo
420b0394a7 Merge remote-tracking branch 'origin/v2-plugin' into v2-plugin 2025-04-11 22:38:16 +08:00
xiaojunnuo
84bb4c8b07 Merge branch 'v2-dev' into v2-plugin 2025-04-11 22:35:35 +08:00
greper
310dbb61ee 发布镜像到 GitHub Packages @5aaee9
发布镜像到 GitHub Packages
2025-04-11 16:53:00 +08:00
Indexyz
9b536af9e6 feat: release image to ghcr 2025-04-11 16:37:31 +08:00
xiaojunnuo
c2ca1ea1e5 chore: 新增插件额外配置功能
- 在插件管理中添加 extra 字段,用于存储额外配置信息
- 实现插件编辑页面的额外配置编辑功能
- 更新数据库结构,增加 extra 列
- 优化代码编辑器的导入方式
- 更新 fast-crud 相关包版本
2025-04-11 14:00:28 +08:00
greper
ada4b226de Lego 支持设定加密算法 @5aaee9
Lego 支持设定加密算法
2025-04-11 12:17:37 +08:00
xiaojunnuo
67f956d4a0 pref: 支持子域名托管的域名证书申请 2025-04-11 12:14:09 +08:00
xiaojunnuo
f68af7dcf2 chore: 2025-04-10 23:44:11 +08:00
xiaojunnuo
be1b6f8edc chore: 2025-04-10 13:30:56 +08:00
xiaojunnuo
1150f62927 Merge branch 'v2-dev' into v2-plugin 2025-04-10 11:48:45 +08:00
xiaojunnuo
b4c7a521b4 chore: 2025-04-10 11:38:51 +08:00
xiaojunnuo
5d083a1536 perf: 增加手动上传证书功能说明 2025-04-10 10:34:10 +08:00
xiaojunnuo
2f5ed3aead fix: 升级mysql驱动,支持mysql8最新版本的认证 2025-04-10 10:24:34 +08:00
xiaojunnuo
2951df0cd9 perf: 隐藏运行策略选项 2025-04-10 09:35:50 +08:00
xiaojunnuo
ec22070957 Merge branch 'v2-dev' into v2-plugin 2025-04-10 00:22:51 +08:00
xiaojunnuo
0e36f03954 chore: plugin default 2025-04-10 00:22:05 +08:00
xiaojunnuo
57309ae3d5 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-04-09 10:07:14 +08:00
xiaojunnuo
7545194f97 chore: 2025-04-09 00:00:53 +08:00
xiaojunnuo
4bb0918e27 chore: 2025-04-08 23:36:50 +08:00
xiaojunnuo
64e5449ab3 perf: 修复tab页缓存问题 2025-04-08 23:31:25 +08:00
xiaojunnuo
a0eeb17d73 chore: 插件编辑与运行测试beta 2025-04-08 22:56:38 +08:00
xiaojunnuo
c021dd03d3 Merge branch 'v2-dev' into v2-plugin 2025-04-08 21:14:54 +08:00
xiaojunnuo
2f1683b26a fix: 修复eab授权,没有email绑定的bug 2025-04-08 19:54:25 +08:00
xiaojunnuo
c99939f435 chore: 2025-04-08 18:06:12 +08:00
xiaojunnuo
efad8bac3c chore: 2025-04-08 13:53:54 +08:00
xiaojunnuo
eaf68fa463 chore: 2025-04-08 13:40:58 +08:00
xiaojunnuo
9475f2e56c chore: code-editor 2025-04-07 23:52:21 +08:00
xiaojunnuo
2e0c067cd2 chore: 2025-04-07 18:22:39 +08:00
xiaojunnuo
59a6043549 chore: 2025-04-06 23:16:54 +08:00
xiaojunnuo
840a7b7c73 chore: 插件编辑器 2025-04-06 18:06:21 +08:00
xiaojunnuo
61e322678b chore: 2025-04-06 00:20:05 +08:00
xiaojunnuo
04acd08ad2 Merge branch 'v2-dev' into v2-plugin 2025-04-05 19:01:23 +08:00
5aaee9
f3bf4faee0 feat(lego): support set key type 2025-04-05 17:01:41 +08:00
xiaojunnuo
c3603ba220 build: publish 2025-04-05 01:37:41 +08:00
xiaojunnuo
a3a52fd12c build: trigger build image 2025-04-05 01:37:22 +08:00
xiaojunnuo
7c4756da81 v1.32.0 2025-04-05 01:35:54 +08:00
xiaojunnuo
f4fe03c790 build: prepare to build 2025-04-05 01:33:15 +08:00
xiaojunnuo
a748bb9352 build: prepare to build 2025-04-05 01:14:24 +08:00
xiaojunnuo
d24fb6ed48 chore: 2025-04-05 01:13:46 +08:00
xiaojunnuo
021dc5b82c Merge branch 'v2-dev' into v2-plugin 2025-04-05 00:48:23 +08:00
xiaojunnuo
9339b78f80 perf: 又拍云支持云存储 2025-04-05 00:47:34 +08:00
xiaojunnuo
8449f8580d perf: 又拍云支持云存储 2025-04-05 00:46:56 +08:00
xiaojunnuo
0948c5bc69 perf: 优化华为dns解析记录创建和删除问题 2025-04-05 00:24:57 +08:00
xiaojunnuo
857589b365 feat: 优化证书申请速度,修复某些情况下letsencrypt 校验失败的问题 2025-04-04 23:17:05 +08:00
xiaojunnuo
c39b1bf823 fix: 修复从本地dns获取记录报错的bug 2025-04-04 20:46:48 +08:00
xiaojunnuo
545aa50898 Merge branch 'v2-dev' into v2-plugin 2025-04-04 20:14:24 +08:00
xiaojunnuo
298006a4b9 Merge remote-tracking branch 'origin/v2-dev' into v2-dev 2025-04-03 11:40:56 +08:00
xiaojunnuo
903a4131ab fix: 创建cname记录移除域名两端的空格 2025-04-03 11:39:36 +08:00
xiaojunnuo
a0ec0ddb14 build: publish 2025-04-03 00:33:32 +08:00
xiaojunnuo
46eb876f9b build: trigger build image 2025-04-03 00:33:07 +08:00
xiaojunnuo
8374c3941a v1.31.11 2025-04-03 00:31:04 +08:00
xiaojunnuo
8cec14c2ff build: prepare to build 2025-04-03 00:28:39 +08:00
xiaojunnuo
c716f105bd build: prepare to build 2025-04-03 00:26:38 +08:00
xiaojunnuo
737be1f571 chore: 2025-04-03 00:25:17 +08:00
xiaojunnuo
6f17c700b8 perf: 支持部署到京东云cdn 2025-04-03 00:19:54 +08:00
xiaojunnuo
04d79f9117 perf: 支持京东云dns申请证书 2025-04-02 23:13:55 +08:00
xiaojunnuo
8145808c43 fix: 修复ssh支持键盘事件登录 2025-04-02 00:20:09 +08:00
xiaojunnuo
86d5626d92 chore: 2025-04-01 23:03:44 +08:00
xiaojunnuo
071ef281c1 chore: 2025-04-01 22:34:15 +08:00
xiaojunnuo
70760e4ede build: publish 2025-03-30 01:50:01 +08:00
xiaojunnuo
8a32fd36ad build: trigger build image 2025-03-30 01:49:43 +08:00
xiaojunnuo
2e30fff221 v1.31.10 2025-03-30 01:47:57 +08:00
xiaojunnuo
667ffa5dff build: prepare to build 2025-03-30 01:43:56 +08:00
xiaojunnuo
d271120c24 chore: 2025-03-30 01:43:03 +08:00
xiaojunnuo
a03ae5a216 perf: tab增加图标显示 2025-03-30 01:41:27 +08:00
xiaojunnuo
0e73fa40bc chore: 2025-03-30 00:44:01 +08:00
xiaojunnuo
5d6f0d8546 pref(plugin-volcengine): 新增火山引擎 CDN部署功能 2025-03-30 00:30:42 +08:00
xiaojunnuo
41e23fb6a8 pref: 优化查找TXT记录逻辑,提升CNAME解析效率 2025-03-29 23:10:59 +08:00
xiaojunnuo
4e15556e5e perf: 升级lego版本到4.22.2 2025-03-29 10:47:12 +08:00
xiaojunnuo
bf30b7afae perf: 优化华为dns接口报错信息输出 2025-03-29 09:01:33 +08:00
xiaojunnuo
8801afa586 chore: 2025-03-28 23:51:32 +08:00
xiaojunnuo
47804353f9 build: trigger build image 2025-03-28 23:51:12 +08:00
xiaojunnuo
be58e3084b v1.31.9 2025-03-28 23:49:37 +08:00
xiaojunnuo
71d5ab21ed build: prepare to build 2025-03-28 23:47:13 +08:00
xiaojunnuo
993bc7432f perf: 站点监控保存时异步检查 2025-03-28 23:46:44 +08:00
xiaojunnuo
99ff879d93 perf: dns支持火山引擎 2025-03-28 23:27:24 +08:00
xiaojunnuo
caa15b4735 fix: 修复华为云dns接口请求出错的bug 2025-03-28 21:23:29 +08:00
xiaojunnuo
cc8da0cf13 fix: 修复网站证书监控https port设置无效的bug 2025-03-28 09:10:49 +08:00
xiaojunnuo
0b6618ff70 fix: 修复某些情况下站点证书监控报undefined.includes的错误 2025-03-27 17:10:46 +08:00
xiaojunnuo
6f180f534c build: publish 2025-03-26 22:03:01 +08:00
xiaojunnuo
4220ef2a5b build: trigger build image 2025-03-26 22:02:41 +08:00
xiaojunnuo
2acaa66635 v1.31.8 2025-03-26 22:01:03 +08:00
xiaojunnuo
ee5eecbec1 build: prepare to build 2025-03-26 21:57:43 +08:00
xiaojunnuo
687bb8a237 fix: 修复lego模式无法创建流水线的bug 2025-03-26 21:54:34 +08:00
xiaojunnuo
e51123a951 perf: 优化scp上传 2025-03-26 21:48:51 +08:00
xiaojunnuo
92bb12e2e3 chore: 2025-03-26 20:54:33 +08:00
xiaojunnuo
fd0536bd4b perf: 支持又拍云cdn 2025-03-26 20:48:26 +08:00
xiaojunnuo
57389a79a1 perf: 支持又拍云cdn 2025-03-26 20:47:50 +08:00
xiaojunnuo
6cd7bddc37 fix: 修复编辑通知勾选默认,导致出现多个默认通知的bug 2025-03-26 12:06:20 +08:00
xiaojunnuo
c3c5006daa perf: 优化通知格式 2025-03-26 12:05:28 +08:00
xiaojunnuo
27a8a57cf5 fix: 修复网站监控无法设置端口的bug 2025-03-26 09:21:13 +08:00
xiaojunnuo
3bded6fdcc chore: 2025-03-25 11:14:28 +08:00
xiaojunnuo
c7f31337ce chore: 2025-03-25 11:12:24 +08:00
xiaojunnuo
fd507f2692 perf: 优化txt本地校验效率 2025-03-25 11:08:25 +08:00
xiaojunnuo
96a39ef9c3 chore: 2025-03-25 09:19:32 +08:00
xiaojunnuo
81a8d6c3bf chore: 2025-03-25 00:18:52 +08:00
xiaojunnuo
d4719208f0 chore: 2025-03-25 00:18:36 +08:00
xiaojunnuo
c36dce6464 chore: 2025-03-25 00:17:38 +08:00
xiaojunnuo
2da4474bb1 chore: 2025-03-25 00:17:08 +08:00
xiaojunnuo
cab11202c7 build: publish 2025-03-25 00:05:26 +08:00
xiaojunnuo
21d7d35bb1 build: trigger build image 2025-03-25 00:05:04 +08:00
1843 changed files with 486155 additions and 19391 deletions

11
.editorconfig Normal file
View File

@@ -0,0 +1,11 @@
#
# http://editorconfig.org
#
root = true
[*]
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

5
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,5 @@
# These are supported funding model platforms
github: greper
buy_me_a_coffee: greper
custom: ['https://afdian.com/a/greper']

36
.github/ISSUE_TEMPLATE/1plugin.md vendored Normal file
View File

@@ -0,0 +1,36 @@
---
name: Plugin Apply
about: 部署插件申请支持
title: "[Plugin] "
labels: feature
---
> > 感谢您支持certd请按如下规范提交issue
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
# 新部署插件申请支持
## 1. 需求描述
`请在此处简要描述你的需求`
## 2. 要部署证书应用的信息
1. 应用名称:
2. 应用网址/项目地址/官方网站:
3. 管理证书界面截图(或者手动部署证书方式介绍及截图):
4. 是否有API接口接口地址
5. 如果没有API接口网页登录是否需要验证码
6. 是否可以提供测试账号?(如果可以请留下联系方式或者加作者好友)

36
.github/ISSUE_TEMPLATE/2dns.md vendored Normal file
View File

@@ -0,0 +1,36 @@
---
name: DNS Provider Apply
about: 域名提供商申请支持
title: "[DNS] "
labels: feature
---
> 感谢您支持certd请按如下规范提交issue
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
# 新域名提供商支持申请
## 1. 基本信息
请填写如下内容:
1. 域名提供商名称:
2. 管理页面地址:
3. 是否有API接口接口地址
4. 如果没有API接口网页登录是否有验证码
5. 是否可以提供测试账号?(如果可以请留下联系方式或者加作者好友)
## 2. 截图
`域名管理页面截图`

View File

@@ -1,21 +1,28 @@
> 感谢您支持certd请按如下规范提交issue
---
name: Bug Report
about: 错误或问题报告
title: "[BUG] "
labels: bug
---
> 感谢您支持certd请按如下规范提交issue
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
## 、问题描述
# bug提交
## 1、问题描述
`请在此处简要描述你所遇到的问题,必要时请贴出相关截图辅助理解和定位`
### 复现步骤
### 2、复现步骤
`请描述复现问题的详细步骤`
`如果非示例页面的问题,最好能提供最小复现示例的代码、或者仓库链接`
### 报错截图
### 3.报错截图
`请贴出报错日志截图`
### 效果截图
### 4、效果截图
`请贴出效果截图`
#### 1. 期望效果
#### 2. 实际效果
#### 4.1. 期望效果
#### 4.2. 实际效果

24
.github/ISSUE_TEMPLATE/4feature.md vendored Normal file
View File

@@ -0,0 +1,24 @@
---
name: Feature Request
about: 新需求、新特性申请支持
title: "[Feature] "
labels: feature
---
> > 感谢您支持certd请按如下规范提交issue
> 如果有条件,请尽量在[github上提交](https://github.com/certd/certd/issues)
# 新特性申请
>注意:这里仅供如果是要申请新的部署插件,请提交插件申请
## 1. 需求描述,需求背景
`请在此处简要描述你所遇到的问题,必要时请贴出相关截图辅助理解`
## 2. 期望效果
`必要时可以截图描述你的期望效果`
## 3. 你的解决方案
`如果你有解决方案,请描述你的方案`

View File

@@ -1,79 +0,0 @@
name: build-image-for-test
on:
push:
branches: ['v2-dev']
paths:
- "build-dev.trigger"
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
permissions:
contents: read
jobs:
build-certd-image:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: v2-dev
- name: get_certd_version
id: get_certd_version
uses: actions/github-script@v6
with:
result-encoding: string
script: |
const fs = require('fs');
const path = require('path');
const pnpmWorkspace = "./pnpm-workspace.yaml";
fs.unlinkSync(pnpmWorkspace)
const jsonFilePath = "./packages/ui/certd-server/package.json";
const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
const pkg = JSON.parse(jsonContent)
console.log("certd_version:",pkg.version);
return pkg.version
# - name: Use Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 18
# cache: 'npm'
# working-directory: ./packages/ui/certd-client
- run: |
npm install -g pnpm@8.15.7
pnpm install
npm run build
working-directory: ./packages/ui/certd-client
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to aliyun container Registry
uses: docker/login-action@v3
with:
registry: registry.cn-shenzhen.aliyuncs.com
username: ${{ secrets.aliyun_cs_username }}
password: ${{ secrets.aliyun_cs_password }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.dockerhub_username }}
password: ${{ secrets.dockerhub_password }}
- name: Build default platforms
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
context: ./packages/ui/
tags: |
registry.cn-shenzhen.aliyuncs.com/handsfree/certd-dev:latest
greper/certd-dev:latest

View File

@@ -3,13 +3,14 @@ on:
push:
branches: ['v2-dev']
paths:
- "build.trigger"
- "trigger/build.trigger"
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
permissions:
contents: read
packages: write
jobs:
build-certd-image:
@@ -43,7 +44,7 @@ jobs:
# cache: 'npm'
# working-directory: ./packages/ui/certd-client
- run: |
npm install -g pnpm@8.15.7
npm install -g pnpm
pnpm install
npm run build
working-directory: ./packages/ui/certd-client
@@ -61,6 +62,13 @@ jobs:
username: ${{ secrets.aliyun_cs_username }}
password: ${{ secrets.aliyun_cs_password }}
- name: Login to GitHub Packages
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
@@ -74,31 +82,4 @@ jobs:
push: true
context: ./packages/ui/
tags: |
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}
greper/certd:latest
greper/certd:${{steps.get_certd_version.outputs.result}}
# - name: Build armv7
# uses: docker/build-push-action@v6
# with:
# platforms: linux/arm/v7
# push: true
# context: ./packages/ui/
# tags: |
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}-armv7
# greper/certd:armv7
# greper/certd:${{steps.get_certd_version.outputs.result}}-armv7
# - name: Build agent
# uses: docker/build-push-action@v6
# with:
# platforms: linux/amd64,linux/arm64
# push: true
# context: ./packages/ui/agent/
# tags: |
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:latest
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:${{steps.get_certd_version.outputs.result}}
# greper/certd-agent:latest
# greper/certd-agent:${{steps.get_certd_version.outputs.result}}

View File

@@ -3,12 +3,13 @@ on:
push:
branches: ['v2-dev']
paths:
- "deploy.trigger"
- "trigger/deploy.trigger"
workflow_run:
workflows: [ "build-image" ]
types:
- completed
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
@@ -54,14 +55,3 @@ jobs:
retry-count: 3
retry-delay: 5000
- name: deploy-certd-doc
uses: tyrrrz/action-http-request@master
with:
url: http://flow-openapi.aliyun.com/pipeline/webhook/IiSxLDp9aOhgDUxJPytv
method: POST
body: |
{}
headers: |
Content-Type: application/json
retry-count: 3
retry-delay: 5000

131
.github/workflows/release-image.yml vendored Normal file
View File

@@ -0,0 +1,131 @@
name: build-image-for-release
on:
push:
branches: ['v2-dev']
paths:
- "trigger/release.trigger"
# workflow_run:
# workflows: [ "deploy-demo" ]
# types:
# - completed
# schedule:
# - # 国际时间 19:17 执行北京时间3:17 ↙↙↙ 改成你想要每天自动执行的时间
# - cron: '17 19 * * *'
permissions:
contents: read
packages: write
jobs:
build-certd-image:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
with:
fetch-depth: 0
lfs: true
- name: get_certd_version
id: get_certd_version
uses: actions/github-script@v6
with:
result-encoding: string
script: |
const fs = require('fs');
const path = require('path');
const pnpmWorkspace = "./pnpm-workspace.yaml";
fs.unlinkSync(pnpmWorkspace)
const jsonFilePath = "./packages/ui/certd-server/package.json";
const jsonContent = fs.readFileSync(jsonFilePath, 'utf-8');
const pkg = JSON.parse(jsonContent)
console.log("certd_version:",pkg.version);
return pkg.version
# - name: Use Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 18
# cache: 'npm'
# working-directory: ./packages/ui/certd-client
- run: |
npm install -g pnpm
pnpm install
npm run build
working-directory: ./packages/ui/certd-client
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to aliyun container Registry
uses: docker/login-action@v3
with:
registry: registry.cn-shenzhen.aliyuncs.com
username: ${{ secrets.aliyun_cs_username }}
password: ${{ secrets.aliyun_cs_password }}
- name: Login to GitHub Packages
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.dockerhub_username }}
password: ${{ secrets.dockerhub_password }}
- name: Build default platforms
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
context: ./packages/ui/
tags: |
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}
greper/certd:latest
greper/certd:${{steps.get_certd_version.outputs.result}}
ghcr.io/${{ github.repository }}:latest
ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}
- name: Build armv7
uses: docker/build-push-action@v6
with:
platforms: linux/arm/v7
push: true
context: ./packages/ui/
tags: |
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7
registry.cn-shenzhen.aliyuncs.com/handsfree/certd:${{steps.get_certd_version.outputs.result}}-armv7
greper/certd:armv7
greper/certd:${{steps.get_certd_version.outputs.result}}-armv7
ghcr.io/${{ github.repository }}:armv7
ghcr.io/${{ github.repository }}:${{steps.get_certd_version.outputs.result}}-armv7
# - name: Build agent
# uses: docker/build-push-action@v6
# with:
# platforms: linux/amd64,linux/arm64
# push: true
# context: ./packages/ui/agent/
# tags: |
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:latest
# registry.cn-shenzhen.aliyuncs.com/handsfree/certd-agent:${{steps.get_certd_version.outputs.result}}
# greper/certd-agent:latest
# greper/certd-agent:${{steps.get_certd_version.outputs.result}}
- name: deploy-certd-doc
uses: tyrrrz/action-http-request@master
with:
url: http://flow-openapi.aliyun.com/pipeline/webhook/IiSxLDp9aOhgDUxJPytv
method: POST
body: |
{}
headers: |
Content-Type: application/json
retry-count: 3
retry-delay: 5000

6
.gitignore vendored
View File

@@ -1,6 +1,5 @@
./packages/core/lego
# IntelliJ project files
.vscode/
node_modules/
npm-debug.log
yarn-error.log
@@ -17,6 +16,7 @@ gen
/test/*.private.*
/*.log
nohup.out
/packages/ui/*/.idea
/packages/ui/*/node_modules
@@ -29,5 +29,5 @@ test/**/*.js
/packages/ui/certd-server/data/db.sqlite
/packages/ui/certd-server/data/keys.yaml
/packages/pro/
test.js
test.js
.history

4
.npmrc
View File

@@ -1,2 +1,6 @@
link-workspace-packages=deep
prefer-workspace-packages=true
better_sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3
better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3
better-sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3
better-sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3

73
.vscode/launch.json vendored Normal file
View File

@@ -0,0 +1,73 @@
{
// 使用 IntelliSense 了解相关属性。
// 悬停以查看现有属性的描述。
// 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "client",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-client",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["dev"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "server",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-server",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["dev"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "server-mysql",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-server",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["dev-mysql"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "server-pg",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-server",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["dev-pg"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "server-common",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-server",
"runtimeExecutable": "pnpm",
"runtimeArgs": ["dev-commpro"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "server-local-plus",
"type": "node",
"request": "launch",
"cwd": "${workspaceFolder}/packages/ui/certd-server",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev-localplus"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"env": {
"plus_use_prod": "false",
"PLUS_SERVER_BASE_URL": "http://127.0.0.1:11007"
}
}
]
}

8
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,8 @@
{
"eslint.debug": false,
"eslint.format.enable": true,
"typescript.tsc.autoDetect": "watch",
"git.scanRepositories": [
"./packages/pro"
]
}

52
.vscode/tasks.json vendored Normal file
View File

@@ -0,0 +1,52 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "启动Client",
"type": "shell",
"command": "npm",
"args": ["run", "dev"],
"options": {
"cwd": "${workspaceFolder}/packages/ui/certd-client"
},
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
}
},
{
"label": "启动Server",
"type": "shell",
"command": "npm",
"args": ["run", "dev"],
"options": {
"cwd": "${workspaceFolder}/packages/ui/certd-server"
},
"group": {
"kind": "build",
"isDefault": true
},
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
}
},
{
"label": "同时启动Client和Server",
"dependsOn": ["启动Client", "启动Server"],
"group": {
"kind": "build",
"isDefault": true
},
"problemMatcher": []
}
]
}

View File

@@ -3,6 +3,816 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.37.4](https://github.com/certd/certd/compare/v1.37.3...v1.37.4) (2025-10-28)
### Bug Fixes
* 修复站点证书监控复制按钮无效的bug ([efa26a0](https://github.com/certd/certd/commit/efa26a067f06402f30befc016d9934cadcd5a563))
* 修复lego模式下 私钥加密类型错误的bug ([f7cf7c1](https://github.com/certd/certd/commit/f7cf7c198d7f77b222099770f81accc637bc6619))
### Performance Improvements
* 优化数据备份效率,流式写入文件 ([c38dbbb](https://github.com/certd/certd/commit/c38dbbb1d72bd00a92fe275b76aea82a791e7199))
## [1.37.3](https://github.com/certd/certd/compare/v1.37.2...v1.37.3) (2025-10-24)
### Bug Fixes
* 修复并发情况下证书申请日志混乱的bug ([bb2714f](https://github.com/certd/certd/commit/bb2714ff241f9db4a71d805b23a1b0f9f2f6413a))
* 修复网络测试telnet的bug ([c03a70f](https://github.com/certd/certd/commit/c03a70fde23c8e840bd0fdb4fcbca8990f6c65eb))
* 修复站点证书监控证书已经更新到最新日期了仍然发出警告通知的bug ([1f42f93](https://github.com/certd/certd/commit/1f42f933f07860b27aa3d016e40916ff2b063eac))
### Performance Improvements
* 注册页面增加手机注册tab页签 ([6b2f1fc](https://github.com/certd/certd/commit/6b2f1fcd3e058061b814c3331cda8ce1b2d80d73))
* 流水线创建时支持添加到证书监控 ([59ba408](https://github.com/certd/certd/commit/59ba4080706548828ef1c0a9cd893c1c9a7d591f))
* 流水线支持有效期设置 ([911e69e](https://github.com/certd/certd/commit/911e69e3bc0cdd48b62953b5d0981d640fc1f8ac))
* 群辉增加请求超时时长设置 ([b381492](https://github.com/certd/certd/commit/b3814920bdcabc911f860a8e19b5b9b3a04709ac))
* 通知支持meow ([c77645e](https://github.com/certd/certd/commit/c77645e1733670214aaca5544cf8759d7e4adda4))
* 站点证书监控增加导出和分组功能 ([2ed12c4](https://github.com/certd/certd/commit/2ed12c429eb58274a4f9dd0ed3b66e160d283ded))
* 证书监控增加批量删除 ([e578c52](https://github.com/certd/certd/commit/e578c52fdf2f838038062aa4209b655fbae461fb))
* esa 自动删除过期证书提示 ([8bf1f82](https://github.com/certd/certd/commit/8bf1f828b9eaa9208f32e8ee7460b86420fed0c7))
* ssh 增加禁止-i参数提示 ([3a8931f](https://github.com/certd/certd/commit/3a8931feeffd7157163ff7d46b693e5e1a434b9c))
## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14)
### Bug Fixes
* 修复飞牛证书部署后无法生效的bug ([bf156a1](https://github.com/certd/certd/commit/bf156a13bd443cdadb73c9dff79bbef7231b4401))
* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/certd/certd/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57))
### Performance Improvements
* 优化start.sh脚本去掉删除非ui目录的操作及提示 ([7993a7c](https://github.com/certd/certd/commit/7993a7cdb01885535950c63187e3f67d67ba2f75))
* 增加飞牛证书id选择的提示 ([5a4d812](https://github.com/certd/certd/commit/5a4d8121462b1afe921d028465687be8c9679814))
* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f))
* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22))
* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9))
* dns支持新网互联 ([f415190](https://github.com/certd/certd/commit/f41519048326d971acd9e0a30462231f77a299a6))
* start.sh脚本支持根据当前系统判断是否使用sudo ([567cb7d](https://github.com/certd/certd/commit/567cb7d737023e26ec58403c6f28f109e212d379))
## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29)
### Bug Fixes
* 修复版本比较bug ([109696e](https://github.com/certd/certd/commit/109696e965d68c50c8627ffd40203edd1d2daea5))
* 修复某些情况下cname申请证书报错主域名不一致的bug ([2671781](https://github.com/certd/certd/commit/2671781e1bb0838981728d85eacf0e1a25a0fa48))
### Performance Improvements
* cname主域名校验提示优化显示不一致的两方便于排查问题 ([6ebb365](https://github.com/certd/certd/commit/6ebb3659f42155e4e8da600c493fb5227cd08137))
* dns解析支持阿里esa ([9291fa6](https://github.com/certd/certd/commit/9291fa68aa7a88a05c2f888bf3048df36a8fbde3))
# [1.37.0](https://github.com/certd/certd/compare/v1.36.25...v1.37.0) (2025-09-28)
### Features
* @certd/ui-server module import报错的问题 ([0c61d4c](https://github.com/certd/certd/commit/0c61d4c9788677c83c567db5381b9e257ec90bba))
* dist打包前检查 ([8f6e5bd](https://github.com/certd/certd/commit/8f6e5bd24b3b65fbfcba36c08f532a3abad2d606))
## [1.36.25](https://github.com/certd/certd/compare/v1.36.24...v1.36.25) (2025-09-27)
### Bug Fixes
* 固定midwayjs版本修复ui-server import 错误的bug ([eb4d125](https://github.com/certd/certd/commit/eb4d125eaf4a41e88c752d0c68993829589f8f27))
## [1.36.24](https://github.com/certd/certd/compare/v1.36.23...v1.36.24) (2025-09-27)
### Bug Fixes
* 修复 ui-server 加载失败问题 ([c2ccdbe](https://github.com/certd/certd/commit/c2ccdbec9dd08bca4688eeb2f34d0105eec43ba1))
* 修复 ui-server 加载失败问题 ([063f5c3](https://github.com/certd/certd/commit/063f5c3b55e47df22543a64f02e039e84f92cd14))
### Performance Improvements
* 重置管理员密码同时会关闭验证码,防止验证码失效之后无法登录 ([03899d4](https://github.com/certd/certd/commit/03899d4d9c76fc2077dacc53ab88e2c9ca41af7c))
## [1.36.23](https://github.com/certd/certd/compare/v1.36.22...v1.36.23) (2025-09-26)
### Bug Fixes
* 授权页面id列位置不在第一列的bug ([3f1722d](https://github.com/certd/certd/commit/3f1722d54debcb4849dc14521a2da0d9b304b69f))
### Performance Improvements
* 动态加载验证码script ([dcc396a](https://github.com/certd/certd/commit/dcc396afb7a23aeb8af57c01014b09af5f033e61))
* 开启子域名托管之后cname记录支持重置 ([54c8d62](https://github.com/certd/certd/commit/54c8d622437761d350db0f17e07f7517f1911211))
* 手动上传证书优化,增加到期前报错提醒 ([3d42bfd](https://github.com/certd/certd/commit/3d42bfd479eaacc4a49c401224815a6e2a0204b0))
* 验证码支持测试,登录验证码需要测试通过后才能开启 ([83e6476](https://github.com/certd/certd/commit/83e6476408090b741fabb1b542fb458d9a8b4134))
* 支持腾讯云验证码 ([03f317f](https://github.com/certd/certd/commit/03f317ffdb6595ce70e8a2302b05f390c52110c8))
## [1.36.22](https://github.com/certd/certd/compare/v1.36.21...v1.36.22) (2025-09-23)
### Bug Fixes
* 修复旧版本升级上来报错eab授权的bug ([b76f2e2](https://github.com/certd/certd/commit/b76f2e2008a7fefac4c91179c45c56c7a7a84b71))
* 选择授权对话框编辑时名称字段排在最后的bug ([31cfb09](https://github.com/certd/certd/commit/31cfb09468bda3272f5f63af65ff3e9272220b39))
### Performance Improvements
* 7001绑定::地址 ([7188997](https://github.com/certd/certd/commit/7188997dd1979f1c10fa29b30221015e0bd5fe9e))
* 登录失败时清除验证码状态 ([1c15bea](https://github.com/certd/certd/commit/1c15beadc7fe8a7c6ec1903b7e722ca2f52e05b3))
* 公共cname支持权限校验 ([9cc5f0f](https://github.com/certd/certd/commit/9cc5f0f889d4362ff36e7a1f0e448e02d32ecee7))
* 优化连接失败的报错提示 ([71d8e7e](https://github.com/certd/certd/commit/71d8e7edd23ad63fdc01a92766b52ede5074fe7c))
* 增加自签名证书提示 ([877c9c4](https://github.com/certd/certd/commit/877c9c4ff99f81d289f67afd96f440c0796b03ea))
* add preferred chain for google trust service ([#539](https://github.com/certd/certd/issues/539)) @ZeroClover ([e31d26a](https://github.com/certd/certd/commit/e31d26a8871c6088d9f8c0f580746ff2a810ae0c))
* dns支持新网域名解析 ([cf3a78e](https://github.com/certd/certd/commit/cf3a78e1145ff0505c87fbc485d9e731b1aa88a8))
* gcore flush plugin ssl_id改为必填项 ([4b90972](https://github.com/certd/certd/commit/4b909723411c57505aa13b07d8699fb9ac77c937))
## [1.36.21](https://github.com/certd/certd/compare/v1.36.20...v1.36.21) (2025-09-15)
### Bug Fixes
* 修复导入插件对话框无法打开的bug修复插件编辑页面打开多个代码编辑器消失的bug ([e5a080a](https://github.com/certd/certd/commit/e5a080aebe0d2f3e3c0f86bf863f75069c1bf7ab))
* 修复ssl.com报EMAILADDRESS数量不对的bug ([c560cc5](https://github.com/certd/certd/commit/c560cc5adda6e15bf3a8865d874042550a6c2688))
## [1.36.20](https://github.com/certd/certd/compare/v1.36.19...v1.36.20) (2025-09-13)
### Bug Fixes
* 修复商业版退出登录后丢失站点个性化设置的bug ([d75dd05](https://github.com/certd/certd/commit/d75dd058d65c85f80c49e1fa7a910e6c6f08e824))
* 修复授权类型和名称字段排到最后的bug ([43b7977](https://github.com/certd/certd/commit/43b79778ea9034065f6a15af3296274315597c6b))
* 修复证书监控某些情况下报 options.lookup不能为null的bug ([d2ecfe5](https://github.com/certd/certd/commit/d2ecfe5491b2639eb30b5cae293af6062d58bb9f))
* 修复证书手动托管时新上传的证书无效的bug ([506385e](https://github.com/certd/certd/commit/506385e5a2600887fe30854e0713583caaa2e689))
* 修复secret patch 类型多了type的bug ([d04f383](https://github.com/certd/certd/commit/d04f3831611011a90ec0594724b9694490d5edd0))
### Performance Improvements
* 登录支持极验验证码 ([370db62](https://github.com/certd/certd/commit/370db62bf0aece241859244927beabba32d6a257))
* 登录注册、找回密码都支持极验验证码和图片验证码 ([7bdde68](https://github.com/certd/certd/commit/7bdde68ecea29fe2c570fd3cb082139db6c93d93))
* 优化加量包展示效果 ([3c65f37](https://github.com/certd/certd/commit/3c65f37d84177ba107d4a6462648af12d2fc4b7a))
* 证书到期剩余天数进度条根据实际证书有效期计算 ([#528](https://github.com/certd/certd/issues/528)) nicheng-he ([2d4586b](https://github.com/certd/certd/commit/2d4586b1c42c39f97d2a95b9453cca4bc8bfbe61))
* add preferred chain option ([#519](https://github.com/certd/certd/issues/519)) @ZeroClover ([902359f](https://github.com/certd/certd/commit/902359f24ed12eee4f9b65178f1d6a60378351d2))
* ssh配置增加脚本类型设置bash还是sh ([ae41c60](https://github.com/certd/certd/commit/ae41c6038b27c9476e64a2402a8daf247c38a5b6))
* start.sh增加sudo ([b7271d7](https://github.com/certd/certd/commit/b7271d7a464773a1bf87d7d1f24d933ba0f86915))
## [1.36.19](https://github.com/certd/certd/compare/v1.36.18...v1.36.19) (2025-09-05)
### Bug Fixes
* 前置任务输出不存在时输出警告提示 ([b59052c](https://github.com/certd/certd/commit/b59052cc43b7b070fabd8b8e914e4c2a5e0ad61c))
* 修复批量流水线执行时日志显示错乱的问题 ([4372adc](https://github.com/certd/certd/commit/4372adc703b9a4c785664054ab2a533626d815a8))
* 修复远程数据选择无法过滤的bug ([6cbb073](https://github.com/certd/certd/commit/6cbb0739f8428d51b0712f718fe4d236cc087cf9))
* 修复mysql下购买套餐加量包无效的bug ([c26ad4c](https://github.com/certd/certd/commit/c26ad4c8075f0606d45b8da13915737968d6191a))
### Performance Improvements
* 创建证书时支持选择通知时机 ([0e96bfd](https://github.com/certd/certd/commit/0e96bfdfa377824d204e72923d1176408ae6b300))
* 创建k8s secret 时设置type为tls ([79ebabf](https://github.com/certd/certd/commit/79ebabfcfb9e5a534049c84f5f1a642b357fc856))
* 去掉宝塔url后面的斜杠 ([8a0c2b9](https://github.com/certd/certd/commit/8a0c2b9b13628da750c25757e0cb8ed3038775ba))
* 商业版隐藏文档相关链接 ([4443a1c](https://github.com/certd/certd/commit/4443a1c0308fa6b95a05efd73d15d24b65d641c9))
* 商业版隐藏文档相关链接 ([db89561](https://github.com/certd/certd/commit/db8956148083bc4f988226ccf719940d08158a27))
* 增加健康检查探针 /health/liveliness 和 /health/readiness ([44019e1](https://github.com/certd/certd/commit/44019e104289fedd32a867db00e9c6cb71b389cc))
* 支持根据id更新证书证书Id不变接口不过该接口为白名单功能普通腾讯云账户无法使用 ([fe9c4f3](https://github.com/certd/certd/commit/fe9c4f3391ff07c01dd9a252225f69a129c39050))
* 支持godaddy ([b7980aa](https://github.com/certd/certd/commit/b7980aad5ab50f58662eaddf5d84aa82876a98eb))
* 支持ssl.com证书颁发机构 ([27b6dfa](https://github.com/certd/certd/commit/27b6dfa4d2ab3bddd284c3a34511a72e1a513a4c))
* 子域名托管说明 ([39a0223](https://github.com/certd/certd/commit/39a02235cf4416bb5bd1acd3831241efeaa2f602))
* ssh 增加超时断开连接默认10分钟超时 ([c24a040](https://github.com/certd/certd/commit/c24a040c19cacafc79228d7a7649af93837d94a1))
## [1.36.18](https://github.com/certd/certd/compare/v1.36.17...v1.36.18) (2025-08-28)
### Bug Fixes
* 更新我爱云CDN域名地址和部分目录结构 [@tyjsjxh](https://github.com/tyjsjxh) ([#514](https://github.com/certd/certd/issues/514)) ([78e7a81](https://github.com/certd/certd/commit/78e7a81638c2ee779f0ab6c3ba7e5c6f6e064151))
* 修复cron选择组件星期显示错误的bug ([eb75e52](https://github.com/certd/certd/commit/eb75e52278f94a72643f7317e6740fb42666c68a))
* 修复proxmox某些情况下执行卡住的bug ([ebd6917](https://github.com/certd/certd/commit/ebd6917a1d40ae4d94555c32b7e3c093d0599b94))
### Performance Improvements
* 部署到k8s支持自动创建secret ([c09c962](https://github.com/certd/certd/commit/c09c962cb676ca261610aa9f3e5105c9dae43f43))
* 短信验证码支持腾讯云 ([9108459](https://github.com/certd/certd/commit/9108459ae42bcd95a59acba164a64e82e5f2cfe6))
* 商业版支持自定义插件的参数配置 ([17f23f3](https://github.com/certd/certd/commit/17f23f37516af925d5049291d67d41e4271f81f8))
* 腾讯云插件支持国际版 ([58e82d5](https://github.com/certd/certd/commit/58e82d5dbd4ebf089ef239578ef9b68454d17b30))
* 腾讯云EO插件支持自动获取zoneid和域名列表 ([70fcdc9](https://github.com/certd/certd/commit/70fcdc9ebbfb7c883c0c8a2138f61a0776a9491b))
* 支持部署到阿里云云原生API网关、AI网关 ([2ca20be](https://github.com/certd/certd/commit/2ca20be197720201fceabcce9d927f4dbc1cc872))
* 支持部署到华为云obs ([9feb9d0](https://github.com/certd/certd/commit/9feb9d04b3c56ec95c06fcf4fd071eb0e88ffc6f))
* 支持部署到dokploy ([7dbdeae](https://github.com/certd/certd/commit/7dbdeaebe0bfee7521a863fe5e6b4a712aec5876))
* 支持删除宝塔证书夹中的过期证书 ([3575113](https://github.com/certd/certd/commit/3575113655be751d19f88c64491e98a89042d6a2))
* 支持p7b证书格式 ([d9f4a57](https://github.com/certd/certd/commit/d9f4a5793d68a017a5d80ad5385cbda603c4e165))
* lecdnv2支持api token ([e448934](https://github.com/certd/certd/commit/e4489343fee7754be07bcfc3323969dc3a30e90c))
* openapi返回证书时挑选匹配范围最小的那一个增加format参数增加返回值p7b格式增加detail返回 ([2085bcc](https://github.com/certd/certd/commit/2085bcceb61c3723c9bdfec4c4cc0917631ff5e5))
* ssh 配置sudo免密提示 ([e1e7011](https://github.com/certd/certd/commit/e1e7011853ad0c5bd7b09c3690861d5aa34b2db4))
## [1.36.17](https://github.com/certd/certd/compare/v1.36.16...v1.36.17) (2025-08-17)
### Bug Fixes
* 修复新部署的无法保存公共eab配置的bug ([d5dee75](https://github.com/certd/certd/commit/d5dee75df3bd635a597436e448b2de1407531f3a))
### Performance Improvements
* 阿里云 FC3.0 不在要求证书加密方式为旧版, 修复支持的协议类型可以正常选择 ([a34db74](https://github.com/certd/certd/commit/a34db7449eff6ad1dda01de673bf85579fa3865a))
* 部署到腾讯云cdn每个域名增加3每秒延迟 ([f7d43ad](https://github.com/certd/certd/commit/f7d43ad5af4663d4be369820a80d1fd9817ca4ab))
* 腾讯云关闭证书通知增加开关选项,在腾讯云授权里面 ([a77c777](https://github.com/certd/certd/commit/a77c777980dd38d97d983124eeed1596879bba95))
* 证书申请任务默认不发送申请成功通知 ([0283bd2](https://github.com/certd/certd/commit/0283bd2f978dbcd13d361129135e439dd9fbc180))
## [1.36.16](https://github.com/certd/certd/compare/v1.36.15...v1.36.16) (2025-08-16)
### Bug Fixes
* 修复授权配置复制功能,无法复制已加密字段的问题 ([221e068](https://github.com/certd/certd/commit/221e068bac3af6cd5d1794f8cd4c2ec5c0bc3f45))
### Performance Improvements
* 百度云支持上传到证书托管,支持部署到负载均衡 ([798a48a](https://github.com/certd/certd/commit/798a48aa9686fd5d11cfffb6cd93eadfc40aacb3))
* 部署到百度cdn支持自动获取域名列表选择 ([4e432ed](https://github.com/certd/certd/commit/4e432ed03f4fb564e85a2f284ee26b58400b82f5))
* 验证码可重试次数设置为3次 ([1bdceee](https://github.com/certd/certd/commit/1bdceeecf4b5daecdd621a05a2596b6eb45ce8ea))
* 增加找回密码的验证码可重试次数 [@nicheng-he](https://github.com/nicheng-he) ([#496](https://github.com/certd/certd/issues/496)) ([fe03f99](https://github.com/certd/certd/commit/fe03f9942b5662fb90cad86da10782f5dc3603f5))
* 支持阿里云API网关 ([9e1e4ee](https://github.com/certd/certd/commit/9e1e4eeec2859759ca5b07834c9d24cf88a6ad33))
* 支持部署到金山云CDN ([dfa74a6](https://github.com/certd/certd/commit/dfa74a69f7cbb9009d3e20c7eecfa1b905a00cf0))
* 支持更新金山云cdn证书 ([462e22a](https://github.com/certd/certd/commit/462e22a3b0a94887462fe6aa68e4671a365e0737))
* 支持apisix证书部署 ([9b63fb4](https://github.com/certd/certd/commit/9b63fb4ee2c6b56139160c5bf63482dab0869c2b))
## [1.36.15](https://github.com/certd/certd/compare/v1.36.14...v1.36.15) (2025-08-07)
### Bug Fixes
* 修复 https://cas.undefined.aliyuncs.com 的bug ([60e6aa9](https://github.com/certd/certd/commit/60e6aa9b54a761a47e39acee4a1ff947a745be27))
* 修复阿里云clb api接口没有使用region的问题 ([0770f17](https://github.com/certd/certd/commit/0770f174a14313e28d08113e69829ef6cc02d719))
* 修复站点监控使用自定义dns解析域名报错的bug ([eb8cd53](https://github.com/certd/certd/commit/eb8cd53de27991321e36dd14e5ce95f42b51351f))
### Performance Improvements
* 部署到阿里云支持选择bucket和域名 ([013b9c4](https://github.com/certd/certd/commit/013b9c4c7c2adf485d086123ccea448719577fd4))
* 清理数据库备份的临时目录 ([fd95549](https://github.com/certd/certd/commit/fd95549de9a5d8cec09772ee2630bb7521e15e1f))
* 添加免费通知,OneBot V11协议通知支持 ([#491](https://github.com/certd/certd/issues/491)) [@ayakasuki](https://github.com/ayakasuki) ([be053d4](https://github.com/certd/certd/commit/be053d47e41084f817882400882b64143d036d1a))
* 支持webhook部署证书 ([cbe0b1c](https://github.com/certd/certd/commit/cbe0b1c5a6538f232e9a63f1693d20d5acf0a306))
* 注册时支持填写用户名 ([fdcfcc7](https://github.com/certd/certd/commit/fdcfcc77a0db87954e0b026635d3ccdd9bc6cee8))
* add start:server npm script for quick server launch from root directory ([#484](https://github.com/certd/certd/issues/484)) [@orzyyyy](https://github.com/orzyyyy) ([fae1981](https://github.com/certd/certd/commit/fae1981161080f698c3f1263b712306d63baae64))
## [1.36.14](https://github.com/certd/certd/compare/v1.36.13...v1.36.14) (2025-07-28)
### Bug Fixes
* 修复复制流水线为空的bug ([b070773](https://github.com/certd/certd/commit/b0707739fdfbae3d78db4efd3f180db05c4e4164))
* 修复商用证书上传第二次运行无法使用pfx格式证书的bug ([251dd1f](https://github.com/certd/certd/commit/251dd1fe457a7b152f43eb6de18f7beb9f0b194e))
### Performance Improvements
* 1panel支持 currenNode ([acc8907](https://github.com/certd/certd/commit/acc890730f43d492c9b1bd3668814cf10efdf7b8))
* 授权管理支持模糊查询 ([866eb62](https://github.com/certd/certd/commit/866eb6241baa7b21f6eddc649966324c188236c6))
* 新增找回密码功能 [@nicheng-he](https://github.com/nicheng-he) ([81ac240](https://github.com/certd/certd/commit/81ac240ac84db0af2f56b6352e227ecb49f38377))
* 优化start脚本 ([238ad7c](https://github.com/certd/certd/commit/238ad7ce51f17e1098c624e7f61ee2d98de1e02d))
* 运行主机脚本插件支持选择运行策略 ([86b3df1](https://github.com/certd/certd/commit/86b3df194126476e1f58e0952a77e986f62eecce))
* cdnfly 支持 账号密码登陆授权 ([e87f6d5](https://github.com/certd/certd/commit/e87f6d56f524dbbb9e3243e382b348b6e49f0d2c))
* k8s ack、tke 支持重启ingress ([95715a0](https://github.com/certd/certd/commit/95715a007d931c64fa7dd953d94957398e00a443))
## [1.36.13](https://github.com/certd/certd/compare/v1.36.12...v1.36.13) (2025-07-23)
### Bug Fixes
* 修复阿里云发送短信验证码失败的bug ([2e6d03f](https://github.com/certd/certd/commit/2e6d03ff001f521f57368e7a62b97ed7b122e8d0))
### Performance Improvements
* 阿里云部分插件优化 [@nicheng-he](https://github.com/nicheng-he) ([e3738f6](https://github.com/certd/certd/commit/e3738f6422270d75ec414c15a343248cc4cad6e1))
## [1.36.12](https://github.com/certd/certd/compare/v1.36.11...v1.36.12) (2025-07-22)
### Bug Fixes
* 上传到阿里云cas证书前缀无效的bug ([b382351](https://github.com/certd/certd/commit/b382351c7b91ec10e1f61d94bec5aad075207ec8))
* 修复自定义插件onlyAdmin报错的bug ([4e5e862](https://github.com/certd/certd/commit/4e5e862f5834ad180e4428959c272d444a6f78ab))
### Performance Improvements
* 部署到k8stkeack忽悠证书校验 ([ab84835](https://github.com/certd/certd/commit/ab848353621869464a2c9a45fdb5e28d998b8a58))
* 首页增加更新日志按钮 ([41ce848](https://github.com/certd/certd/commit/41ce8489dc2f03a705dfa3fbb357769defb56c60))
* 增加版本过低提示 ([d1ce360](https://github.com/certd/certd/commit/d1ce36038cab72b5dc1b320d0a708c261ffbdacb))
## [1.36.11](https://github.com/certd/certd/compare/v1.36.10...v1.36.11) (2025-07-22)
### Bug Fixes
* 安全更新,备份数据库插件仅限管理员运行 ([13dfca1](https://github.com/certd/certd/commit/13dfca1749275526c82465a17c482b607c820fdd))
## [1.36.10](https://github.com/certd/certd/compare/v1.36.9...v1.36.10) (2025-07-18)
### Bug Fixes
* 企业微信通知改成text类型因为markdown类型不支持@用户 ([747d266](https://github.com/certd/certd/commit/747d26674248082e678a3fd5ecc94712641a2716))
* api接口获取不到证书的bug ([05a33a0](https://github.com/certd/certd/commit/05a33a0ec9999e2802f6c7b23cc1c61a2b9e963d))
### Performance Improvements
* 部署到阿里云oss插件支持选择上传到阿里云cas中的证书 ([2ea2c8c](https://github.com/certd/certd/commit/2ea2c8c05fc40f79595f1bbde67c1413558bf684))
* 优化子域名托管的说明 ([b15f514](https://github.com/certd/certd/commit/b15f514018b728acb0922ee3f93c1f302eb5d471))
* 账号即将过期通知 ([e403450](https://github.com/certd/certd/commit/e40345095f31e2fb8e2333a6647466659133fa0c))
* 子域名托管重复域名不允许添加 ([ffc0c7b](https://github.com/certd/certd/commit/ffc0c7bb7b16d9904fd2d905d1c4e1d4854e92a9))
## [1.36.9](https://github.com/certd/certd/compare/v1.36.7...v1.36.9) (2025-07-15)
### Bug Fixes
* 修复ssh无法执行命令的bug ([9763cb0](https://github.com/certd/certd/commit/9763cb00e5d95b2fa5d1c2d3d4a8eecac71600e6))
## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15)
### Bug Fixes
* 修复流水线列表页报length错误的bug ([9864792](https://github.com/certd/certd/commit/9864792bbfd149e770d6e1ffa809573694f99dd3))
* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290))
* 修复自定义证书检查时间重启之后不生效的bug ([38e867c](https://github.com/certd/certd/commit/38e867c917bbc68bd228bdd8064f3e7358d6413d))
### Performance Improvements
* 支持上传证书到各种对象存储oss、cos、七牛、s3、minio等 ([1da8617](https://github.com/certd/certd/commit/1da8617a53a675776635bbc3bcb3c6d7dff83e27))
* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39))
## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14)
### Bug Fixes
* 修复某些页面翻译不全显示错误的bug ([0b3158f](https://github.com/certd/certd/commit/0b3158fdd5fe5bb0a98c4e65715dbc3de2c38047))
* 修复运行流水线后会闪烁一下的bug ([dfc9362](https://github.com/certd/certd/commit/dfc9362084082ee535b898f23b2609c1d946a6fd))
### Performance Improvements
* 部署plesk证书支持删除未使用的证书 ([902d246](https://github.com/certd/certd/commit/902d246d1a7473ad90f604028c4eb09c8c67d99c))
* 通知和定时器的删除按钮显示为红色更显眼 ([61ba83c](https://github.com/certd/certd/commit/61ba83c77546c3d505d081e19a3d68c127662bf1))
* 优化流水线列表页面、详情页面性能,精简返回数据 ([609ac9c](https://github.com/certd/certd/commit/609ac9c9a2dde605eb09834ae59693c1cb238765))
* 支持自动选择校验方式申请证书 ([3f99432](https://github.com/certd/certd/commit/3f9943270cfb12946e38e6272bc5e8d95ad6ab9e))
* OpenAPI支持autoApply参数 ([42f4d14](https://github.com/certd/certd/commit/42f4d1477dc791520a874aed56035abcbc8c433b))
## [1.36.5](https://github.com/certd/certd/compare/v1.36.4...v1.36.5) (2025-07-11)
### Bug Fixes
* 某些插件找不到的bug ([4b3f4a8](https://github.com/certd/certd/commit/4b3f4a868a8b0800c5c59de9d0f47bddc079e7b3))
## [1.36.4](https://github.com/certd/certd/compare/v1.36.3...v1.36.4) (2025-07-10)
### Bug Fixes
* 修复查看证书对话框翻译错误的bug ([8626b6d](https://github.com/certd/certd/commit/8626b6d9f235c511766f2ae98e0a37f6cebb621c))
* 修复translation后分组编辑打不开的bug ([46a1b74](https://github.com/certd/certd/commit/46a1b7479923d2feb2dece202a5932b99981b2cd))
* 执行windows nginx命令时改为return code判断是否执行成功 ([b37cffd](https://github.com/certd/certd/commit/b37cffd704cd08b8bdd68a6e284706eabe59e78d))
### Performance Improvements
* 优化证书进度条颜色 ([2af91db](https://github.com/certd/certd/commit/2af91dbf2ae36a4ed17c6788bc2a2a79a3bb29f8))
* 站点证书即将过期通知标题颜色优化为红色 ([80c5331](https://github.com/certd/certd/commit/80c5331a5d4c320323d9b9b800e4ea3b72577b33))
* 支持部署到阿里云vod ([98da4e1](https://github.com/certd/certd/commit/98da4e1791ed8bb21daf2a9914fda875d14633c9))
* 支持部署证书到网宿CDN ([c3da026](https://github.com/certd/certd/commit/c3da026b33106f5195959825a68cadbe49efef00))
* 重置管理员密码同时可以清除管理员的2FA设置 ([1ece091](https://github.com/certd/certd/commit/1ece0915f172d5f8b8adb866434e7efcc5c8c46d))
* output-selector from参数支持更丰富的过滤规则 ([87853a2](https://github.com/certd/certd/commit/87853a201535f3bfe8505c40f8f5229d82ffcc73))
## [1.36.3](https://github.com/certd/certd/compare/v1.36.2...v1.36.3) (2025-07-07)
### Bug Fixes
* 修复开放接口添加按钮文本显示问题 ([f93ba99](https://github.com/certd/certd/commit/f93ba9970c12680f38eba2a7abd4b72cf3f5b6a6))
### Performance Improvements
* 优化部署到腾讯TKE插件支持Opaque类型选择优化填写说明 ([1445325](https://github.com/certd/certd/commit/144532530a865b634e68539e4888e26f52f73492))
## [1.36.2](https://github.com/certd/certd/compare/v1.36.1...v1.36.2) (2025-07-06)
### Bug Fixes
* 修复notification编辑按钮无法打开对话框的bug ([0cea26c](https://github.com/certd/certd/commit/0cea26c6287f52adf273b4a525c37bea8555c68c))
* 优化更新飞牛os证书有效期修复某些情况下部署证书后飞牛无法访问https的bug ([610c919](https://github.com/certd/certd/commit/610c919c72037becc0ed326f5d5b18c963dfcb3a))
### Performance Improvements
* 证书检查支持自定义dns服务器 ([c53bb7c](https://github.com/certd/certd/commit/c53bb7cf677faa32729709ae0c10359db5194d7a))
## [1.36.1](https://github.com/certd/certd/compare/v1.36.0...v1.36.1) (2025-07-02)
### Bug Fixes
* 修复通知和触发器无法编辑的bug ([a2e0951](https://github.com/certd/certd/commit/a2e09510426680eb425c0d7ad337f39d3f052054))
### Performance Improvements
* 支持部署到七牛云DCDN ([bde601b](https://github.com/certd/certd/commit/bde601bfffb4f7345d97e1e3b064520816d31555))
# [1.36.0](https://github.com/certd/certd/compare/v1.35.5...v1.36.0) (2025-07-01)
### Bug Fixes
* 支持自定义证书生成插件 ([481cc02](https://github.com/certd/certd/commit/481cc029fafaf280aa844cd3ca30f4653ec35d55))
### Features
* 支持模版创建流水线 ([2559f0e](https://github.com/certd/certd/commit/2559f0e822db095d1d26a7f1d517622dce22a5c2))
### Performance Improvements
* 阿里云waf cname站点选择支持翻页及域名查询 ([4cf9858](https://github.com/certd/certd/commit/4cf98584dacc5999752732f136246647a2f1f07d))
* 部署到ssh主机命令支持前置命令 ([991b741](https://github.com/certd/certd/commit/991b741cbe223b342f534157da63b71e81661f8e))
* 模版导入流水线 ([dcc8c56](https://github.com/certd/certd/commit/dcc8c569693432579709ce63656665a76bcf9a44))
* 添加用户资料编辑功能 ([7c0f43c](https://github.com/certd/certd/commit/7c0f43c8a3052f73afee3e93c9fcbc43c44ab690))
* 优化阿里云waf的日志信息 ([821c6d8](https://github.com/certd/certd/commit/821c6d807d4b3cc5092d09a6282b8cbafb9e7c9f))
* 优化中英文翻译与切换 ([acaa8b1](https://github.com/certd/certd/commit/acaa8b173183b4423584ee070e6e332e0ac0eb2d))
* 站点IP监控前先同步一下IP ([a080b60](https://github.com/certd/certd/commit/a080b606ab6e289d96b17ef7d2879b4603f889ba))
* 支持选择运行策略设置 ([60f055f](https://github.com/certd/certd/commit/60f055f293ce237c21cd9050333dad9609eceac1))
## [1.35.5](https://github.com/certd/certd/compare/v1.35.4...v1.35.5) (2025-06-20)
### Bug Fixes
* 腾讯云授权支持设置是否国际站部署到EO插件支持国际站 ([5cd3968](https://github.com/certd/certd/commit/5cd3968929acef333cf30d3b20cf21cea6c82c5f))
* 修复邮箱包含.号校验失败的bug ([65dcae7](https://github.com/certd/certd/commit/65dcae79f8faa7a6cb425e10a0fdb6758b0719f3))
### Performance Improvements
* 首次打开任务日志查看页面,自动滚动到底部 ([43fee42](https://github.com/certd/certd/commit/43fee42198e8697185b427b1fa3eb79409603393))
* 支持批量修改通知和定时 ([e11b3be](https://github.com/certd/certd/commit/e11b3becfd4abe6547e84d09adc38ebd6e1c4b87))
## [1.35.4](https://github.com/certd/certd/compare/v1.35.3...v1.35.4) (2025-06-13)
### Performance Improvements
* 支持s3 access做测试 ([f00aeac](https://github.com/certd/certd/commit/f00aeacb8b5c81f0bafa4c1b76723dec2b6b7784))
## [1.35.3](https://github.com/certd/certd/compare/v1.35.2...v1.35.3) (2025-06-12)
### Bug Fixes
* 修复消息内容存在()<>等括号情况下无法发送tg通知的bug ([c937583](https://github.com/certd/certd/commit/c937583a50d8513d76adead3648f83eee2fcc6f9))
* 修复重试次数设置无效的bug ([e2099ac](https://github.com/certd/certd/commit/e2099ac9ca344bc70bfa4219002e9138708973ae))
### Performance Improvements
* 授权列表类型颜色优化 ([1e86338](https://github.com/certd/certd/commit/1e863382d3d1a8cc95a1abf51e75bf6eaea3244f))
* 支持雨云dns解析 ([8354348](https://github.com/certd/certd/commit/83543487e7418683bd79cfe3b9e0d792bdb977f7))
* 支持雨云dns解析以及雨云证书更新 ([43c7a19](https://github.com/certd/certd/commit/43c7a1984926f5d4647760cc134bb0aede3a7b7a))
* github 版本检查支持执行脚本 ([bad3504](https://github.com/certd/certd/commit/bad3504d4a15e6989b967b66aa9da8c6981f25bf))
## [1.35.2](https://github.com/certd/certd/compare/v1.35.1...v1.35.2) (2025-06-09)
### Bug Fixes
* 修复阿里云新加坡clb无法部署证书的bug ([c1fbc8c](https://github.com/certd/certd/commit/c1fbc8cd68ae020ef342e4e92f4d9b4869ca1ead))
* 修复阿里云新加坡clb无法部署证书的bug ([3e84e11](https://github.com/certd/certd/commit/3e84e116e863b54c6b4d7db160af372dacc5857f))
* 修复检查github release 插件无法保存最后版本的bug ([a92107c](https://github.com/certd/certd/commit/a92107cc47133883b099d5228b06373e84c8bb50))
* 修复站点监控定时器多次添加的bug ([9361679](https://github.com/certd/certd/commit/936167972fe83e519bc01a0dd961d9c0635d24ab))
### Performance Improvements
* 阿里云dns操作增加重试机制 ([424fd96](https://github.com/certd/certd/commit/424fd96615c05e949af8c837c261c1400bdffba2))
* 优化阿里云nlb支持部署扩展证书 ([9cbdfda](https://github.com/certd/certd/commit/9cbdfda829b231733d54c66c5024d46e6fc11af3))
* 子域名托管帮助链接优化为打开新窗口 ([7c0cdd1](https://github.com/certd/certd/commit/7c0cdd169e2f943e703e433677f2f437d4aa02ee))
* history增加触发类型显示 ([7f6070c](https://github.com/certd/certd/commit/7f6070c960ed7bf02add5ab36436de6573f2f1fa))
## [1.35.1](https://github.com/certd/certd/compare/v1.35.0...v1.35.1) (2025-06-07)
### Bug Fixes
* 某些证书提供商的证书确实commonName导致无法转换证书的问题 ([ac87bc5](https://github.com/certd/certd/commit/ac87bc57e957ea4679707bfd38d6840e26319bed))
* 修复站点监控通知渠道设置无效的bug ([a00453c](https://github.com/certd/certd/commit/a00453c83a58114ce2873dd6e6aaf313f1ce0f87))
### Performance Improvements
* 修改 HTTPS 服务器监听地址 ([e1cf64a](https://github.com/certd/certd/commit/e1cf64ae16d4abfe4299ff16d5088c30cf3c6365))
* 优化流水线页面,增加下次执行时间、查看证书显示 ([c820315](https://github.com/certd/certd/commit/c8203154094fae3d17198747f49f5f41ddf29a4e))
* 站点证书监控支持定时设置,重试次数设置 ([d3c2f8e](https://github.com/certd/certd/commit/d3c2f8eb436e670772d14a54acd6b541c5aa3978))
* 证书申请支持letencrypt profile选项 ([2eb0e54](https://github.com/certd/certd/commit/2eb0e54909d8ad36708e07c12fd598998159bc43))
* aliyun alb支持部署扩展证书 ([2a19b61](https://github.com/certd/certd/commit/2a19b61b7a78620c06396c2cc37cc77d738b6d12))
# [1.35.0](https://github.com/certd/certd/compare/v1.34.11...v1.35.0) (2025-06-05)
### Features
* 完善注释 ([6702ca1](https://github.com/certd/certd/commit/6702ca10a17f5d7dbff789b039f7269496f66b97))
* AWS 中国区 CloudFront 证书部署IAM 证书) ([8a55bed](https://github.com/certd/certd/commit/8a55beda924b3be2a53b9ba80d9487cefa8bf887))
* **lego:** support for command options ([b84159f](https://github.com/certd/certd/commit/b84159f2f11531f058837c2e82d66499f3740f20))
## [1.34.11](https://github.com/certd/certd/compare/v1.34.10...v1.34.11) (2025-06-05)
### Bug Fixes
* 修复用户最大流水线数量校验的问题 ([919f70a](https://github.com/certd/certd/commit/919f70a5fd2842ca69f96f1659bb5a7ba3f73776))
* 修复中文域名使用cname方式校验无法通过的问题 ([f7d5baa](https://github.com/certd/certd/commit/f7d5baa6d04cb83c572b06e62f885890cfa0143a))
* 修复cv4pve sdk (proxmox插件连接失败时无法正常结束任务的bug) ([49f26b4](https://github.com/certd/certd/commit/49f26b4049a0549b0270395157e96e8f04a68bc4))
* 修复flexcdn部署证书的顶级CA名称显示 ([6467edb](https://github.com/certd/certd/commit/6467edb84324d7c80a85212675dbacedc459df83))
* 修复flexcdn证书commonNames错误的问题 ([ace363f](https://github.com/certd/certd/commit/ace363fa355436e769b27f71cc487d30d6441780))
### Performance Improvements
* 分组选择支持清空选项 ([03e2e99](https://github.com/certd/certd/commit/03e2e9949837b34eb3ea56d14a9e8a5dabc96063))
* 优化cname检查当有冲突的cname记录时给出提示 ([e639a8f](https://github.com/certd/certd/commit/e639a8f9f12640ffcca69f1a6a0324459924afbd))
* 增加下载日志按钮 ([6ff509d](https://github.com/certd/certd/commit/6ff509d263c0182645b4692c10b5fedb192db964))
* 站点监控支持批量导入域名和ip ([2d7729d](https://github.com/certd/certd/commit/2d7729dbe98f29088f5f317db2b52cc1ede223a6))
* 支持设置用户有效期 ([6ac3bc5](https://github.com/certd/certd/commit/6ac3bc564f407dad2cd0b0b0744e887387aa5da3))
## [1.34.10](https://github.com/certd/certd/compare/v1.34.9...v1.34.10) (2025-06-03)
### Bug Fixes
* **flexcdn:** fix cert upload and skipSslVerify required ([c48da5d](https://github.com/certd/certd/commit/c48da5dea7f0f0cdeae643b106b4a678acc3b14b))
### Performance Improvements
* 阿里云CLB支持部署到扩展域名 ([0e8339c](https://github.com/certd/certd/commit/0e8339c70190890d449099e1d26e5ed06ff135fb))
* 优化流水线名称过长时的显示 ([6a0cc1b](https://github.com/certd/certd/commit/6a0cc1b1f3ad508f9e4093b3b682b163f12389eb))
* 支持部署到飞牛OS ([ddfd0fb](https://github.com/certd/certd/commit/ddfd0fb81d6638352920261065f1ab8e27bdd564))
* 支持日志写入文件 ([37edbf5](https://github.com/certd/certd/commit/37edbf5824d6aaae68ea1ef7259c6f739d418d2c))
## [1.34.9](https://github.com/certd/certd/compare/v1.34.8...v1.34.9) (2025-05-30)
### Bug Fixes
* 修复Farcdn证书有效期错误的问题 ([1fe4c36](https://github.com/certd/certd/commit/1fe4c367f7128de9ba5e3395ae06bc81e63a7d5a))
### Performance Improvements
* 不止证书自动化,插件解锁无限可能 ([a9b302e](https://github.com/certd/certd/commit/a9b302e38d3328d75df8b2da3d8b914851e55e9c))
* 邮箱支持保存和选择 ([f7b0b44](https://github.com/certd/certd/commit/f7b0b44ef6044bec36510a6f0b06d8dca5bfce49))
* 支持github 新版本检查并发布通知 ([356703c](https://github.com/certd/certd/commit/356703c83ea18c6efb8931402e181280d7b7e696))
## [1.34.8](https://github.com/certd/certd/compare/v1.34.7...v1.34.8) (2025-05-28)
### Bug Fixes
* 更新 1panel API 版本支持v1/v2设置 ([e6195ad](https://github.com/certd/certd/commit/e6195ade3ec54b138825b8d6738f86eb8afdd720))
* 同步更新namesilo接口修复无法创建和删除dns记录的问题 ([36b02c2](https://github.com/certd/certd/commit/36b02c2cec145c13d4ef29d49aba5b6b4f697df2))
* 修复阿里云 esa 证书获取站点列表错误的问题 ([0c2ea5d](https://github.com/certd/certd/commit/0c2ea5da4c836f8a0df132a3f22d399bd9ee1de9))
* 修复部署到华为cdn子账号ak查询不到域名的bug ([ebb292a](https://github.com/certd/certd/commit/ebb292a2f7a425c1bc810f59468beb3f1d5bc3f0))
* 修复证书申请任务无法修改dns提供商类型的bug ([8802274](https://github.com/certd/certd/commit/88022747bebe2054223e0241d68d410771405e68))
### Performance Improvements
* 关闭腾讯云证书通知提醒 ([231a875](https://github.com/certd/certd/commit/231a875bb481420c39bf76ec9ff4e50954ab9fe4))
* 优化站点选择组件,切换选择时不刷新列表 ([3a14714](https://github.com/certd/certd/commit/3a147141b1a5d67c92a5ce88a5313eaa62859e03))
* 优化站点ip检查 ([a463711](https://github.com/certd/certd/commit/a463711b03a20120f2a298be15d71ca152d27f21))
* 站点监控支持监控IP ([9cc4c01](https://github.com/certd/certd/commit/9cc4c017ae646a18284e732769b82636feda01d3))
* 支持批量重新运行 ([8189982](https://github.com/certd/certd/commit/818998259ddc75e722196ac5c365038818539b9b))
* farcdn优化 ([a06ef07](https://github.com/certd/certd/commit/a06ef07178ed73c537e21c7d57e5e5144d2c056d))
## [1.34.7](https://github.com/certd/certd/compare/v1.34.6...v1.34.7) (2025-05-26)
### Performance Improvements
* 优化阿里云DCDN插件支持多选 ([b091657](https://github.com/certd/certd/commit/b091657b5c537acf2442a2bfc345d0a77f5e2c50))
* 支持部署到farcdn ([e08cf57](https://github.com/certd/certd/commit/e08cf57b72128998f487ab6469868052fbce0dba))
## [1.34.6](https://github.com/certd/certd/compare/v1.34.5...v1.34.6) (2025-05-25)
### Bug Fixes
* 修复公共插件配置修改不生效的bug优化系统设置参数注入时机 ([e1e510c](https://github.com/certd/certd/commit/e1e510ce1e37a5ae82478226b6987a83f22d1ecb))
* 修复又拍云 CDN 设置证书参数和强制 HTTPS 配置报错的bug ([7984b62](https://github.com/certd/certd/commit/7984b625ba6727132f205db8e25f790bce27b2f7))
* 修复lego模式下每次都重新申请证书的bug ([f807b8c](https://github.com/certd/certd/commit/f807b8cb465cc329fa034ecbef94e18ef394f870))
* 优化 RunnableError错误信息展示 ([36bc3ff](https://github.com/certd/certd/commit/36bc3ff22da93ba342c3c1103d7ee2bbcecf44f2))
* **cert:** 修正证书过期时间计算逻辑 ([a3086e6](https://github.com/certd/certd/commit/a3086e6a5bec8b07f5e1d21a2ca8bd969c75bd5c))
### Performance Improvements
* 二次认证页面中,添加动态验证码输入框的焦点控制,提升用户体验 ([bb22f06](https://github.com/certd/certd/commit/bb22f062ed4ab4b5b71938270fe4cc666af6b8e7))
* 添加阿里云 ESA证书部署插件 ([1db1ffd](https://github.com/certd/certd/commit/1db1ffde99ac7e4684fa606ebc4c327f829b3a26))
* 站点证书监控增加通知设置 ([3422a1a](https://github.com/certd/certd/commit/3422a1a59fd0d2c0f17fa9c7e8988ac527ecfdd9))
## [1.34.5](https://github.com/certd/certd/compare/v1.34.4...v1.34.5) (2025-05-19)
### Performance Improvements
* 1panel增加授权测试按钮 ([566b12f](https://github.com/certd/certd/commit/566b12f5d14ce10e8f5cf1807c58f7bf27f0d199))
* 优化钉钉通知标题颜色 ([a560999](https://github.com/certd/certd/commit/a560999d13eed18d08dd32ee530166569e3f8746))
* 优化飞书通知为卡片模式 ([a818a3d](https://github.com/certd/certd/commit/a818a3d293e22fb46979bc77055c05621a6fed81))
* 支持部署到宝塔aaWAF ([094565c](https://github.com/certd/certd/commit/094565ccd619ef671c6c11ce5fb7fd54a7a21d1c))
* aaWaf、cdnfly站点选择支持查询 ([8af3463](https://github.com/certd/certd/commit/8af3463668a40b9b99febb02e3b4e0d9d8d719b4))
## [1.34.4](https://github.com/certd/certd/compare/v1.34.3...v1.34.4) (2025-05-16)
### Bug Fixes
* 修复部署flexcdn问题 ([76b19a4](https://github.com/certd/certd/commit/76b19a4980f8edba5238543b82a7811e1003746c))
* 修复插件导入的bug ([677fec0](https://github.com/certd/certd/commit/677fec0a0b6fceb4966705e471bbfeeda91610c7))
* 修复导入在线插件不生效的bug ([fcf8309](https://github.com/certd/certd/commit/fcf8309c238208281ecb4575b2c3cfe50c11d783))
* 修复自建插件保存丢失部署策略的bug ([863e74d](https://github.com/certd/certd/commit/863e74dd2e3912f950ff5025b5ed0070aeb37035))
### Performance Improvements
* 调整小助手,仅在登录之后显示 ([aebb07c](https://github.com/certd/certd/commit/aebb07c5cc8b1f233b9d203ff017ac60e6971a85))
## [1.34.3](https://github.com/certd/certd/compare/v1.34.2...v1.34.3) (2025-05-15)
### Performance Improvements
* 宝塔插件、1panel 改成完全免费版 ([a53b6cd](https://github.com/certd/certd/commit/a53b6cd28ff2ce5662ada82379ea44a06b179b81))
* 添加 FlexCDN 更新证书插件 ([bf040d4](https://github.com/certd/certd/commit/bf040d4c428d29c06fbaca5e29100e0c583b2b0b))
* 小助手可以关闭 ([3e2101a](https://github.com/certd/certd/commit/3e2101aa5b56548614102e900d59819ce8c7e97c))
* 支持部署到maoyun cdn ([68f333f](https://github.com/certd/certd/commit/68f333fb87ce85eed27436ecb0f76351c0ccb0d1))
* 支持AI分析报错 ([aa96859](https://github.com/certd/certd/commit/aa96859798166426e485947a6590464de189de05))
## [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
* 根据SOA记录判断子域名托管有缺陷改回手动配置子域名托管记录的方式 ([1b280a2](https://github.com/certd/certd/commit/1b280a2940f9e2d919b0bf23b89cc185be1fa498))
* 修复宝塔授权测试按钮显示错误的bug ([048696e](https://github.com/certd/certd/commit/048696ee9386491bb68592fb3a47d1c900bb68bf))
### Performance Improvements
* 支持部署证书到火山dcdn ([5f85219](https://github.com/certd/certd/commit/5f852194953dc1b4e6336770f417507b8f5a33ad))
* 支持部署证书到unicloud ([a63d687](https://github.com/certd/certd/commit/a63d687f1c573159f0857693f37602b0e1e44072))
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
### Features
* 从yaml文件注册插件 ([deb3893](https://github.com/certd/certd/commit/deb38938204b29543f36d3266249958faaaa6b66))
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes
* 服务器时间获取不准确的bug ([5d10cbf](https://github.com/certd/certd/commit/5d10cbf18daf94a90a7551641a3b13e3c5fec611))
* 修复复制流水线无效的bug ([3df20a9](https://github.com/certd/certd/commit/3df20a924f32970b052e2588ea20de095f0ea693))
* 修复http上传方式无法清除记录文件的bug ([72a7b51](https://github.com/certd/certd/commit/72a7b51d479602b2c54c6c3ac8d8a0dcb9664e73))
* 修复token过期后疯狂打印token过期信息的bug ([50a5fa1](https://github.com/certd/certd/commit/50a5fa15bb240a125bbc91d2ce1ff3c835888a77))
### Performance Improvements
* 从域名的soa获取主域名子域名托管无需额外配置 ([a586a92](https://github.com/certd/certd/commit/a586a92d5e32ea846ac37be52a7ad8c328d89966))
* 七牛oss支持删除过期备份 ([b7113bd](https://github.com/certd/certd/commit/b7113bda2378116d6c116dc583f563cce7cf9f00))
* 数据库备份支持oss ([308d460](https://github.com/certd/certd/commit/308d4600efe2002f199c33b4594d3071784e58ea))
* 支持阿里云中文域名申请 ([b3468cf](https://github.com/certd/certd/commit/b3468cf7f28228d7c9cf68de6b5a9bbeb67f2c6d))
* 支持反向代理增加contextPath路径 ([0088929](https://github.com/certd/certd/commit/0088929622160cc922995de9a563e8061686ff34))
* 支持中文域名 ([162ebfd](https://github.com/certd/certd/commit/162ebfd4e0c25727efb33952d3bbf7420a02e2c3))
## [1.33.7](https://github.com/certd/certd/compare/v1.33.6...v1.33.7) (2025-04-22)
### Performance Improvements
* 添加部署证书至火山 Live ([abea80e](https://github.com/certd/certd/commit/abea80e3ab9b1672aebe1c5d5e856693b29931a8))
* 优化首页插件列表展示 ([9b8f60b](https://github.com/certd/certd/commit/9b8f60b64b5f9a3db7dfa9b3dcbd9201984358d0))
* 证书申请支持51dns ([8638fc9](https://github.com/certd/certd/commit/8638fc91ff34fccaf12ff9874fd3fa9d2a8c18b7))
* 支持51dns ([96a0900](https://github.com/certd/certd/commit/96a0900edc95dcfd9acccf9d13592f12f5a09b3d))
* ssh PTY模式登录设置 ([8385bcc](https://github.com/certd/certd/commit/8385bcc2d7f2411a07748bb5c53f9eaf4d38d7cc))
* ssh伪终端模式优化windows下不开启 ([42dfe93](https://github.com/certd/certd/commit/42dfe936b773b7bdd82ca3378363252ffffd7b71))
## [1.33.6](https://github.com/certd/certd/compare/v1.33.5...v1.33.6) (2025-04-20)
### Bug Fixes
* 上传商用证书直接粘贴文本报错的问题修复无法上传ec加密证书的bug ([5750bb7](https://github.com/certd/certd/commit/5750bb706779da274d8e7a87e71416cb64d2df79))
* 修复下载证书时提示token已过期的问题 ([0e07ae6](https://github.com/certd/certd/commit/0e07ae6ce84dcb9279d3c44060d621566afa593c))
### Performance Improvements
* 更新license时同时绑定url ([78367af](https://github.com/certd/certd/commit/78367af8307f801e778c76d49f0918c21ffe032f))
* 切换到不同的分组后再打开创建对话框,会自动选择分组 ([893dcd4](https://github.com/certd/certd/commit/893dcd4f2487891199ed3e5a3d47a79a75efc942))
* 新增部署到火山引擎ALB/CLB、上传到证书中心 ([c9a3e3d](https://github.com/certd/certd/commit/c9a3e3d9d26f964c7af7b56667936f1414fbf42a))
* 优化/api缓存为0 ([dc05cd4](https://github.com/certd/certd/commit/dc05cd481f186b13375192be965000e6b4b429a5))
* 优化华为cdn插件引用ccm证书 ([b565b4b](https://github.com/certd/certd/commit/b565b4b3b919b71b98ea2517670bc1ef00e00dc9))
* 优化证书流水线创建,支持选择分组 ([d613aa8](https://github.com/certd/certd/commit/d613aa8f3e85d8dc475ef1b62d49394ce7fd7d24))
## [1.33.5](https://github.com/certd/certd/compare/v1.33.4...v1.33.5) (2025-04-17)
### Performance Improvements
* 登录支持双重认证 ([48aef25](https://github.com/certd/certd/commit/48aef25b3f6499d674ca4e4ef16f4c62399fb735))
* 多重认证登录 ([0f82cf4](https://github.com/certd/certd/commit/0f82cf409bc60706ab07e4ca4f272b9a1ca7eecb))
* 优化部署到华为云CDN支持先上传到ccm再使用证书id部署修复offline状态下导致部署报错的bug ([79df39a](https://github.com/certd/certd/commit/79df39acabab10ae7e1864dadcdc186bb007a3c5))
## [1.33.4](https://github.com/certd/certd/compare/v1.33.3...v1.33.4) (2025-04-15)
### Bug Fixes
* 补充类型断言 ([2143dff](https://github.com/certd/certd/commit/2143dff2ae96e6a78bef9f0498e36f8cd9e6941f))
* 修复腾讯云部署到任意资源插件,无法使用之前已上传的腾讯云证书问题 ([32c714d](https://github.com/certd/certd/commit/32c714d1b6e68c71a74a7452115040c87ac4bfdc))
### Performance Improvements
* 插件支持导入导出 ([cf8abb4](https://github.com/certd/certd/commit/cf8abb45282070c8ba91469f93fd379fabf1f74a))
* 支持上传证书到华为云CCM ([cfd3b66](https://github.com/certd/certd/commit/cfd3b66be9ebf53a26693057e70ed60c3f116be9))
## [1.33.3](https://github.com/certd/certd/compare/v1.33.2...v1.33.3) (2025-04-14)
### Bug Fixes
* 修复登录错误次数过多阻止再次登录逻辑 ([bf4d191](https://github.com/certd/certd/commit/bf4d191c8bd2f9209eb6768f662b9c77de99e998))
## [1.33.2](https://github.com/certd/certd/compare/v1.33.1...v1.33.2) (2025-04-12)
### Bug Fixes
* 修复某些情况下无法输出日志的bug ([70101bf](https://github.com/certd/certd/commit/70101bfa7ade65678d9202c804bbae2cb808b594))
### Performance Improvements
* 修复内置插件分页查询逻辑 ([a2710dd](https://github.com/certd/certd/commit/a2710ddc2525e4e637fd157f0180e6d3b801c8be))
## [1.33.1](https://github.com/certd/certd/compare/v1.33.0...v1.33.1) (2025-04-12)
### Bug Fixes
* 修复阿里云cdn证书部署失败问题增加certname参数传入 ([965dc2c](https://github.com/certd/certd/commit/965dc2cb476f690af716f291c6b20ba98be0c8f0))
* 修复ssh插件报length空指针的bug ([9c4cbe1](https://github.com/certd/certd/commit/9c4cbe17a22b548611cf1fbefecc83a421788e42))
### Performance Improvements
* 镜像支持armv7 ([f78cbed](https://github.com/certd/certd/commit/f78cbed4d817859721fdafe7d348864848d0dfbf))
# [1.33.0](https://github.com/certd/certd/compare/v1.32.0...v1.33.0) (2025-04-11)
### Bug Fixes
* 升级mysql驱动支持mysql8最新版本的认证 ([2f5ed3a](https://github.com/certd/certd/commit/2f5ed3aead97641f2c80d692a50226839016df0b))
* 修复eab授权没有email绑定的bug ([2f1683b](https://github.com/certd/certd/commit/2f1683b26acebbfb7d6e2d751435be04a4e7cab4))
### Features
* 支持在线自定义插件,无需源码开发 ([d0d9d68](https://github.com/certd/certd/commit/d0d9d68fe6740f6ff49fe40b7c9917c5a2e4b442))
* **lego:** support set key type ([f3bf4fa](https://github.com/certd/certd/commit/f3bf4faee0be5bdbfdbcf70a502849ed4c8ed4c4))
* release image to ghcr ([9b536af](https://github.com/certd/certd/commit/9b536af9e656dc89e2a87078c129cad6f591e467))
### Performance Improvements
* 修复tab页缓存问题 ([64e5449](https://github.com/certd/certd/commit/64e5449ab3c6b219b0e89eddad14bfb6b71a0650))
* 隐藏运行策略选项 ([2951df0](https://github.com/certd/certd/commit/2951df0cd94c23e2efee84ff1b843055aac56cae))
* 增加手动上传证书功能说明 ([5d083a1](https://github.com/certd/certd/commit/5d083a153637caddbc6f44e915d9fb2d1ae87b33))
# [1.32.0](https://github.com/certd/certd/compare/v1.31.11...v1.32.0) (2025-04-04)
### Bug Fixes
* 创建cname记录移除域名两端的空格 ([903a413](https://github.com/certd/certd/commit/903a4131ab5f42c8286cd2150ed1032d486fda2f))
* 修复从本地dns获取记录报错的bug ([c39b1bf](https://github.com/certd/certd/commit/c39b1bf823ddc6216bed2049e4c87e6107def08a))
### Features
* 优化证书申请速度修复某些情况下letsencrypt 校验失败的问题 ([857589b](https://github.com/certd/certd/commit/857589b365c6f709e0ae67914d2f50ce182e6dd6))
### Performance Improvements
* 优化华为dns解析记录创建和删除问题 ([0948c5b](https://github.com/certd/certd/commit/0948c5bc691d2ee6eb47c72a85da1b7453361878))
* 又拍云支持云存储 ([9339b78](https://github.com/certd/certd/commit/9339b78f801d193472c0af25749e8e7a27ffb7af))
* 又拍云支持云存储 ([8449f85](https://github.com/certd/certd/commit/8449f8580da90c1f6b5d02d07c3236ebaf6cf161))
## [1.31.11](https://github.com/certd/certd/compare/v1.31.10...v1.31.11) (2025-04-02)
### Bug Fixes
* 修复ssh支持键盘事件登录 ([8145808](https://github.com/certd/certd/commit/8145808c4370364377b4ffe3ae88ff465b49f20b))
### Performance Improvements
* 支持部署到京东云cdn ([6f17c70](https://github.com/certd/certd/commit/6f17c700b84965baa01b40fe2abaa0a91bcbaffd))
* 支持京东云dns申请证书 ([04d79f9](https://github.com/certd/certd/commit/04d79f9117670be504960b018fd49ae3bf7c1c11))
## [1.31.10](https://github.com/certd/certd/compare/v1.31.9...v1.31.10) (2025-03-29)
### Performance Improvements
* tab增加图标显示 ([a03ae5a](https://github.com/certd/certd/commit/a03ae5a216a1df2c1d3da12ae18dcd0f089a92d3))
* 升级lego版本到4.22.2 ([4e15556](https://github.com/certd/certd/commit/4e15556e5e8100719497edb1729570d5a29668e1))
* 优化华为dns接口报错信息输出 ([bf30b7a](https://github.com/certd/certd/commit/bf30b7afaef623dd8126570344f1fcc2c06f1215))
## [1.31.9](https://github.com/certd/certd/compare/v1.31.8...v1.31.9) (2025-03-28)
### Bug Fixes
* 修复华为云dns接口请求出错的bug ([caa15b4](https://github.com/certd/certd/commit/caa15b47355363cbb8847f415ff12363cd53eeda))
* 修复某些情况下站点证书监控报undefined.includes的错误 ([0b6618f](https://github.com/certd/certd/commit/0b6618ff709322a0eeba78953c8c6e9d073d083a))
* 修复网站证书监控https port设置无效的bug ([cc8da0c](https://github.com/certd/certd/commit/cc8da0cf130f0c469371b59ac5bd04567f4a4414))
### Performance Improvements
* 站点监控保存时异步检查 ([993bc74](https://github.com/certd/certd/commit/993bc7432fce2d954e9897ed85b54f22150bfc7e))
* dns支持火山引擎 ([99ff879](https://github.com/certd/certd/commit/99ff879d93658c29ea493a4bde7e9e3f85996d64))
## [1.31.8](https://github.com/certd/certd/compare/v1.31.7...v1.31.8) (2025-03-26)
### Bug Fixes
* 修复编辑通知勾选默认导致出现多个默认通知的bug ([6cd7bdd](https://github.com/certd/certd/commit/6cd7bddc37da8b0d7b9860fd9a26ddfe84c869a7))
* 修复网站监控无法设置端口的bug ([27a8a57](https://github.com/certd/certd/commit/27a8a57cf52b4bf83d628aa3049be1efaa74f29c))
* 修复lego模式无法创建流水线的bug ([687bb8a](https://github.com/certd/certd/commit/687bb8a2376d0de7b72739a174e4a9560581f866))
### Performance Improvements
* 优化通知格式 ([c3c5006](https://github.com/certd/certd/commit/c3c5006daa39c20624cb58864f2b92b230a38a7a))
* 优化scp上传 ([e51123a](https://github.com/certd/certd/commit/e51123a95131cc76d655937488caf08956a67020))
* 优化txt本地校验效率 ([fd507f2](https://github.com/certd/certd/commit/fd507f269253607e68c5c099c99e0de11636f229))
* 支持又拍云cdn ([fd0536b](https://github.com/certd/certd/commit/fd0536bd4b41f15b6b5d42e0b447f0dcbf73b8a8))
* 支持又拍云cdn ([57389a7](https://github.com/certd/certd/commit/57389a79a1a61c45d081712562f8b33c9633158e))
## [1.31.7](https://github.com/certd/certd/compare/v1.31.6...v1.31.7) (2025-03-24)
### Performance Improvements

207
README.md
View File

@@ -1,30 +1,41 @@
# Certd
Certd 是一个免费全自动申请和自动部署更新SSL证书的管理系统。
后缀d取自linux守护进程的命名风格意为证书守护进程。
中文 | [English](./README_en.md)
关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具
Certd® 是一个免费的全自动证书管理系统,让你的网站证书永不过期。
后缀d取自linux守护进程的命名风格意为证书守护进程
>首创流水线申请部署证书模式,已被多个项目“借鉴”,被抄也是一种成功。
> 关于证书续期:
>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
>* 免费证书过期时间90天以后可能还会缩短所以自动化部署必不可少
> 流水线数量现已调整为无限制,欢迎大家使用
## 一、特性
本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
* 全自动申请证书(支持所有注册商注册的域名)
* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等目前已支持60+部署插件)
* 支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式
* 全自动申请证书(支持所有注册商注册的域名支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式
* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等70+部署插件)
* 支持通配符域名/泛域名支持多个域名打到一个证书上支持pem、pfx、der、jks等多种证书格式
* 邮件通知、webhook通知
* 私有化部署,数据保存本地,授权信息加密存储镜像由Github Actions构建过程公开透明
* 支持SQLitePostgreSQL、MySQL数据库
* 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式
* 私有化部署,数据保存本地,安装简单快捷镜像由Github Actions构建过程公开透明
* 授权加密站点隐藏2FA密码防爆破等多重安全保障
* 支持SQLitePostgreSQL、MySQL多种数据库
* 开放接口支持
* 站点证书监控
* 多用户管理
* 多语言支持(中英双语切换)
* 各版本向下兼容,一键无忧升级
>
> 流水线数量现已调整为无限制,欢迎大家使用
>
> 关于证书续期:
>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
![](./docs/images/intro/intro.svg)
## 二、在线体验
官方Demo地址自助注册后体验
@@ -62,7 +73,7 @@ https://certd.handfree.work/
-------> [点我查看详细使用步骤演示](./step.md) <--------
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
更多教程请访问文档网站 [certd.docmirror.cn](https://certd.docmirror.cn/)
更多教程请访问官方文档 [certd.docmirror.cn](https://certd.docmirror.cn/guide/)
@@ -72,10 +83,12 @@ https://certd.handfree.work/
您可以根据实际情况从如下方式中选择一种方式进行私有化部署:
1. [宝塔面板方式部署](https://certd.docmirror.cn/guide/install/docker/)
2. [1Panel面板方式部署](https://certd.docmirror.cn/guide/install/1panel/)
3. [Docker方式部署](https://certd.docmirror.cn/guide/install/docker/)
4. [源码方式部署](https://certd.docmirror.cn/guide/install/source/)
1. 【推荐】[Docker方式部署 ](https://certd.docmirror.cn/guide/install/docker/)
2. 【推荐】[宝塔面板方式部署 ](https://certd.docmirror.cn/guide/install/docker/)
3. 【推荐】[1Panel面板方式部署](https://certd.docmirror.cn/guide/install/1panel/)
4. 【推荐】[雨云一键部署](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2) 首充翻倍每月仅需2.2元
[<img src="https://rainyun-apps.cn-nb1.rains3.com/materials/deploy-on-rainyun-cn.svg">](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2)
5. 【不推荐】[源码方式部署 ](https://certd.docmirror.cn/guide/install/source/)
#### Docker镜像说明
* 国内镜像地址:
@@ -85,93 +98,45 @@ https://certd.handfree.work/
* `https://hub.docker.com/r/greper/certd`
* `greper/certd:latest`
* `greper/certd:armv7``greper/certd:[version]-armv7`
* GitHub Packages地址:
* `ghcr.io/certd/certd:latest`
* `ghcr.io/certd/certd:armv7``ghcr.io/certd/certd:[version]-armv7`
* 镜像构建通过`Actions`自动执行,过程公开透明,请放心使用
* [点我查看镜像构建日志](https://github.com/certd/certd/actions/workflows/build-image.yml)
![](./docs/images/action/action-build.jpg)
## 五、 升级
### docker-compose方式部署
#### 1. 如果使用固定版本号
1. 修改`docker-compose.yaml`中的镜像版本号
2. 运行`docker compose up -d` 即可
#### 2. 如果需要使用最新版本
```shell
#重新拉取镜像
docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
# 重新启动容器
docker compose down
docker compose up -d
```
> 数据默认存在`/data/certd`目录下,不用担心数据丢失
### 自动升级(仅限尝鲜建议非生产使用)
```yaml
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 分钟检查一次更新
```
### 其他部署方式升级方法
请参考 https://certd.docmirror.cn/guide/install/upgrade.html
> 注意:
> * 本应用存储的证书、授权信息等属于高度敏感数据,请做好安全防护
> * 请务必使用HTTPS协议访问本应用避免被中间人攻击
> * 请务必使用web应用防火墙防护本应用防止XSS、SQL注入等攻击
> * 请务必做好服务器本身的安全防护,防止数据库泄露
> * 请务必做好数据备份,避免数据丢失
> * [更多安全生产建议点我](https://certd.docmirror.cn/guide/feature/safe/)
## 五、生态
### 1. 客户端工具 SSL-Assistant
`SSL Assistant` 是一个运行于主机上的证书部署管理助手客户端。
支持自动扫描主机`Nginx`配置,然后从`Certd`拉取证书并部署。
在不想暴露ssh主机密码情况下该工具非常好用。
### 更新日志:
[CHANGELOG](./CHANGELOG.md)
开源地址: https://github.com/Youngxj/SSL-Assistant
## 六、一些说明
* 本项目ssl证书提供商为letencrypt/Google/ZeroSSL
* 申请过程遵循acme协议
* 证书续期:
* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
* 免费证书过期时间90天以后可能还会缩短所以自动化部署必不可少
* 设置每天自动运行当证书过期前35天会自动重新申请证书并部署
## 六、更多帮助
请访问官方文档:[https://certd.docmirror.cn/](https://certd.docmirror.cn/guide/)
* 升级方法:[升级方法](https://certd.docmirror.cn/guide/install/upgrade/)
* 常见问题:[忘记密码](https://certd.docmirror.cn/guide/use/forgotpasswd/)
* 多数据库:[多数据库配置](https://certd.docmirror.cn/guide/install/database/)
* 站点安全:[站点安全特性](https://certd.docmirror.cn/guide/feature/safe/)
* 更新日志:[CHANGELOG](./CHANGELOG.md)
## 七、不同平台的设置说明
* 已迁移到新的文档网站,请到常见问题章节查看
* [最新文档站链接 https://certd.docmirror.cn](https://certd.docmirror.cn/)
## 八、问题处理
### 7.1 忘记管理员密码
[重置管理员密码方法](https://certd.docmirror.cn/guide/use/forgotpasswd/)
## 九、联系作者
## 七、联系作者
如有疑问欢迎加入群聊请备注certd
| 加群 | 微信群 | QQ群 |
@@ -185,58 +150,54 @@ services:
| 二维码 | <img height="230" src="./docs/guide/contact/images/me.png"> |
## 、捐赠
## 、捐赠
************************
支持开源,为爱发电,我已入驻爱发电
支持开源,为爱发电,我已入驻爱发电
https://afdian.com/a/greper
发电权益:
1. 可加入发电专属群,可以获得作者一对一技术支持
2. 您的需求我们将优先实现,并且将作为专业版功能提供
3. 一年期专业版激活码
4. 赠送国外免费服务器部署方案0成本使用Certd可能需要翻墙不过现在性能越来越差了
专业版特权对比
| 功能 | 基础| 专业版 |
|------|-----------------|-------------------|
| 免费证书申请 | 免费无限制 | 无限制 |
| 域名数量 | 免费无限制 | 无限制 |
| 证书流水线条数 | 免费无限制 | 无限制 |
| 站点证书监控 | 1条 | 无限制 |
| 自动部署插件 | 阿里云、腾讯云、七牛云、SSH | 支持群晖、宝塔、1Panel等持续开发中 |
| 通知 | 邮件webhook | server酱、企微、anpush等 |
| 功能 | 免费 | 专业版 |
|---------|---------------------------------------|--------------------------------|
| 免费证书申请 | 免费无限制 | 免费无限制 |
| 域名数量 | 无限制 | 无限制 |
| 证书流水线条数 | 无限制 | 无限制 |
| 站点证书监控 | 限制1条 | 无限制 |
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署、宝塔、1Panel等大部分插件 | 群晖 |
| 通知 | 邮件通知、自定义webhook | 邮件免配置、企微、钉钉、飞书、anpush、server酱等 |
************************
## 十一、贡献代码
************************
1. 本地开发 [贡献插件](https://certd.docmirror.cn/guide/development/)
## 九、贡献代码
1. 本地开发请参考 [贡献插件向导](https://certd.docmirror.cn/guide/development/)
2. 作为贡献者,代表您同意您贡献的代码如下许可:
1. 可以调整开源协议以使其更严格或更宽松。
2. 可以用于商业用途。
感谢以下贡献者做出的贡献。
<a href="https://github.com/certd/certd/graphs/contributors">
<img src="https://contrib.rocks/image?repo=certd/certd" />
</a>
## 十、 开源许可
## 十、 开源许可
* 本项目遵循 GNU Affero General Public LicenseAGPL开源协议。
* 允许个人和公司内部自由使用、复制、修改和分发本项目,未获得商业授权情况下禁止任何形式的商业用途
* 未获得商业授权情况下禁止任何对logo、版权信息及授权许可相关代码的修改。
* 如需商业授权,请联系作者。
## 十三、我的其他项目求Star
| 项目名称 | stars | 项目描述 |
|---------------------------------------------------------|-------------------------------------------------------------------------------------------------------|-----------------------------------|
| [袖手AI](https://ai.handsfree.work/) | | 袖手GPT国内可用无需FQ每日免费额度 |
## 十一、我的其他项目求Star
| 项目名称 | stars | 项目描述 |
| --------- |--------- |----------- |
| [fast-crud](https://gitee.com/fast-crud/fast-crud/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/fast-crud/fast-crud?logo=github"/> | 基于vue3的crud快速开发框架 |
| [dev-sidecar](https://github.com/docmirror/dev-sidecar/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/docmirror/dev-sidecar?logo=github"/> | 直连访问github工具无需FQ解决github无法访问的问题 |
## 十四、更新日志
更新日志:[CHANGELOG](./CHANGELOG.md)
| [dev-sidecar](https://github.com/docmirror/dev-sidecar/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/docmirror/dev-sidecar?logo=github"/> | 直连访问github工具无需FQ解决github无法访问的问题 |

185
README_en.md Normal file
View File

@@ -0,0 +1,185 @@
# Certd
[中文](./README.md) | English
Certd® is a free, fully automated certificate management system that ensures your website certificates never expire. The suffix 'd' is inspired by the naming convention of Linux daemons, representing a certificate daemon.
> We pioneered the pipeline-based certificate application and deployment model, which has been "referenced" by multiple projects. Being copied is also a form of success.
> Regarding certificate renewal:
>* In fact, it's impossible to renew or reissue a certificate without modifying the certificate file itself.
>* What we refer to as renewal is essentially applying for a new certificate following the full process and redeploying it.
>* Free certificates expire in 90 days, which may be shortened in the future. Therefore, automated deployment is essential.
> The number of pipelines is now unlimited. Welcome to use it.
## 1. Features
This project not only supports automated certificate application but also automated certificate deployment and updates, ensuring your certificates never expire.
* Fully automated certificate application (supports domains registered with all registrars and multiple domain verification methods such as DNS-01, HTTP-01, and CNAME proxy).
* Fully automated certificate deployment and updates (currently supports deployment to over 70 plugins, including hosts, Alibaba Cloud, Tencent Cloud, etc.).
* Supports wildcard domains/pan-domains, allows multiple domains in a single certificate, and supports various certificate formats such as pem, pfx, der, and jks.
* Multiple notification methods, including email, webhook, WeChat Work, DingTalk, Lark, and anpush.
* On-premises deployment, local data storage, simple and quick installation. Images are built by Github Actions, with a transparent process.
* Multiple security measures, including authorization encryption, site hiding, 2FA, and password brute-force protection.
* Supports multiple databases such as SQLite, PostgreSQL, and MySQL.
* Open API support.
* Site certificate monitoring.
* Multi-user management.
* Multi-language support (Chinese and English switching).
* Downward compatibility across all versions, with one-click worry-free upgrades.
![](./docs/images/intro/intro.svg)
## 2. Online Experience
Visit the official demo site and register to experience it.
https://certd.handfree.work/
> Note: Data will be cleaned up irregularly, and scheduled tasks may be stopped. For production use, please deploy it yourself.
> The content contains sensitive information. Make sure to deploy it locally for production use.
![Home Page](./docs/images/start/home.png)
## 3. Usage Tutorial
Just 3 steps to ensure your certificates never expire.
### 1. Create a Certificate Pipeline
![Demonstration](packages/ui/certd-client/public/static/doc/images/1-add.png)
> After successful addition, you can directly run the pipeline to apply for a certificate.
### 2. Add a Deployment Task
Normally, we need to deploy certificates to applications. Certd supports a wide range of deployment plugins. You can choose based on your needs, such as deploying to Nginx, Alibaba Cloud, Tencent Cloud, K8S, CDN, Baota, 1Panel, etc.
Here's a demonstration of deploying certificates to a host's Nginx:
![Demonstration](packages/ui/certd-client/public/static/doc/images/5-1-add-host.png)
If the current deployment plugins don't meet your needs, you can also download them manually and deploy them yourself.
![Demonstration](packages/ui/certd-client/public/static/doc/images/13-3-download.png)
### 3. Run Scheduled Tasks
![Demonstration](packages/ui/certd-client/public/static/doc/images/12-1-log-success.png)
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
-------> [Click here to view detailed usage steps](./step.md) <--------
↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
For more tutorials, please visit the official documentation [certd.docmirror.cn](https://certd.docmirror.cn/guide/).
## 4. On-Premises Deployment
Since certificates, authorization information, and other data are highly sensitive, please make sure to deploy them on-premises to ensure data security.
You can choose one of the following deployment methods based on your needs:
1. 【Recommended】[Docker Deployment](https://certd.docmirror.cn/guide/install/docker/)
2. 【Recommended】[BT Panel Deployment](https://certd.docmirror.cn/guide/install/docker/)
3. 【Recommended】[1Panel Deployment](https://certd.docmirror.cn/guide/install/1panel/)
4. 【Recommended】[Rainyun One-Click Deployment](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2_): Double your first recharge, only $2.2 per month.
[<img src="https://rainyun-apps.cn-nb1.rains3.com/materials/deploy-on-rainyun-cn.svg">](https://app.rainyun.com/apps/rca/store/6646/?ref=NzExMDQ2_)
5. 【Not Recommended】[Source Code Deployment](https://certd.docmirror.cn/guide/install/source/)
#### Docker Image Information:
* Domestic Image Addresses:
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest`
* `registry.cn-shenzhen.aliyuncs.com/handsfree/certd:armv7`, `[version]-armv7`
* DockerHub Addresses:
* `https://hub.docker.com/r/greper/certd`
* `greper/certd:latest`
* `greper/certd:armv7`, `greper/certd:[version]-armv7`
* GitHub Packages Addresses:
* `ghcr.io/certd/certd:latest`
* `ghcr.io/certd/certd:armv7`, `ghcr.io/certd/certd:[version]-armv7`
* Images are built automatically by `Actions`, with a transparent process. Please use them with confidence.
* [Click here to view image build logs](https://github.com/certd/certd/actions/workflows/build-image.yml)
![](./docs/images/action/action-build.jpg)
> Note:
> * The certificates, authorization information, and other data stored in this application are highly sensitive. Please take appropriate security measures.
> * Make sure to use the HTTPS protocol to access this application to avoid man-in-the-middle attacks.
> * Make sure to use a web application firewall to protect this application from attacks such as XSS and SQL injection.
> * Make sure to secure the server itself to prevent database leakage.
> * Make sure to back up your data to avoid data loss.
> * [Click here for more production safety suggestions](https://certd.docmirror.cn/guide/feature/safe/)
## 5. Ecosystem
### 1. Client Tool: SSL-Assistant
`SSL Assistant` is a certificate deployment and management assistant client that runs on hosts. It supports automatic scanning of the host's `Nginx` configuration and pulling certificates from `Certd` for deployment. This tool is very useful when you don't want to expose your SSH host password.
Open-source Address: https://github.com/Youngxj/SSL-Assistant
## 6. More Help
Please visit the official documentation: [https://certd.docmirror.cn/](https://certd.docmirror.cn/guide/).
* Upgrade Method: [Upgrade Guide](https://certd.docmirror.cn/guide/install/upgrade/)
* Common Issues: [Forgot Password](https://certd.docmirror.cn/guide/use/forgotpasswd/)
* Multi-Database: [Multi-Database Configuration](https://certd.docmirror.cn/guide/install/database/)
* Site Security: [Site Security Features](https://certd.docmirror.cn/guide/feature/safe/)
* Changelog: [CHANGELOG](./CHANGELOG.md)
## 7. Contact the Author
If you have any questions, feel free to join the group chat (please mention 'certd' in your message).
| Join Group | WeChat Group | QQ Group |
|---------|-------|-------|
| QR Code | <img height="230" src="./docs/guide/contact/images/wx.png"> | <img height="230" src="./docs/guide/contact/images/qq.png"> |
You can also add the author as a friend.
| Add Author as Friend | WeChat QQ |
|---------|-------|-------|
| QR Code | <img height="230" src="./docs/guide/contact/images/me.png"> |
## 8. Donation
************************
[![Sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-red)](https://github.com/sponsors/greper)
************************
Support open-source projects and contribute with love. I've joined Afdian.
https://afdian.com/a/greper
Benefits of Contribution:
1. Join the exclusive contributor group and get one-on-one technical support from the author.
2. Your requests will be prioritized and implemented as professional edition features.
3. Receive a one-year professional edition activation code.
Comparison of Professional Edition Privileges:
| Feature | Free Edition | Professional Edition |
|---------|---------------------------------------|--------------------------------|
| Free Certificate Application | Unlimited for free | Unlimited for free |
| Number of Domains | Unlimited | Unlimited |
| Number of Certificate Pipelines | Unlimited | Unlimited |
| Site Certificate Monitoring | Limited to 1 | Unlimited |
| Automatic Deployment Plugins | Most plugins such as Alibaba Cloud CDN, Tencent Cloud, QiNiu CDN, Host Deployment, Baota, 1Panel | Synology |
| Notifications | Email, Custom Webhook | Email without configuration, WeChat Work, DingTalk, Lark, anpush, ServerChan, etc. |
************************
## 9. Contribute Code
1. For local development, please refer to the [Plugin Contribution Guide](https://certd.docmirror.cn/guide/development/).
2. As a contributor, you agree that your contributed code is subject to the following license:
1. The open-source license can be adjusted to be more or less restrictive.
2. It can be used for commercial purposes.
Thank you to the following contributors.
<a href="https://github.com/certd/certd/graphs/contributors">
<img src="https://contrib.rocks/image?repo=certd/certd" />
</a>
## 10. Open-Source License
* This project follows the GNU Affero General Public License (AGPL).
* Individuals and companies are allowed to use, copy, modify, and distribute this project freely for internal use. Any form of commercial use is prohibited without obtaining commercial authorization.
* Without commercial authorization, any modification of the logo, copyright information, and license-related code is prohibited.
* For commercial authorization, please contact the author.
## 11. My Other Projects (Please Star)
| Project Name | Stars | Project Description |
|----------------|---------------|--------------|
| [fast-crud](https://gitee.com/fast-crud/fast-crud/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/fast-crud/fast-crud?logo=github"/> | A fast CRUD development framework based on Vue3. |
| [dev-sidecar](https://github.com/docmirror/dev-sidecar/) | <img alt="GitHub stars" src="https://img.shields.io/github/stars/docmirror/dev-sidecar?logo=github"/> | A tool to access GitHub directly without a VPN, solving the problem of inaccessible GitHub. |

View File

@@ -1 +0,0 @@
1

View File

@@ -1 +0,0 @@
23:52

View File

@@ -1 +0,0 @@
5

View File

@@ -3,18 +3,24 @@ 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/目录下,【您需要定时备份此目录,以保障数据容灾】
# 只要修改冒号前面的,冒号后面的/app/data不要动
- /data/certd:/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 ENOTFOUND错误可以尝试设置dns
#↓↓↓↓ -------------------------------------------------------------- 如果出现getaddrinfo EAI_AGAIN 或 getaddrinfo ENOTFOUND 错误可以尝试设置dns
# dns:
# - 223.5.5.5 # 阿里云公共dns
# - 223.6.6.6
@@ -35,11 +41,15 @@ services:
# networks:
# - ip6net
environment:
# ↓↓↓↓ ----------------------------------------------------- 使用上海东八时区
- TZ=Asia/Shanghai
# 设置环境变量即可自定义certd配置
# 配置项见: packages/ui/certd-server/src/config/config.default.ts
# 配置规则: certd_ + 配置项, 点号用_代替
# #↓↓↓↓ ----------------------------- 如果忘记管理员密码可以设置为true重启之后管理员密码将改成123456然后请及时修改回false
# #↓↓↓↓ ----------------------------- 如果忘记管理员密码可以设置为truedocker compose up -d 重建容器之后管理员密码将改成123456然后请及时修改回false
- certd_system_resetAdminPasswd=false
# ↓↓↓ 要使用ipv6将此配置修改为::
- certd_koa_hostname=0.0.0.0
# 默认使用sqlite文件数据库如果需要使用其他数据库请设置以下环境变量
# 注意: 选定使用一种数据库之后,不支持更换数据库。

View File

@@ -1,147 +1,156 @@
import { defineConfig } from "vitepress";
import {defineConfig} from "vitepress";
// Import lightbox plugin
import lightbox from "vitepress-plugin-lightbox";
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "Certd",
description: "Certd帮助文档,Certd是一款开源免费的全自动SSL证书管理工具证书自动化申请部署流水线;自动证书申请、更新、续期;通配符证书,泛域名证书申请;证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔。",
markdown: {
config: (md) => {
// Use lightbox plugin
md.use(lightbox, {});
}
},
sitemap: {
hostname: 'https://certd.docmirror.cn'
},
head: [
// [
// 'meta',
// {
// name: 'viewport',
// content:
// 'width=device-width,initial-scale=1,minimfast-cum-scale=1.0,maximum-scale=1.0,user-scalable=no',
// },
// ],
["meta", {
name: "keywords",
content: "证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具、Certd、SSL证书自动部署、证书自动化https证书pfx证书der证书TLS证书nginx证书自动续签自动部署,SSL平台证书管理平台证书流水线"
}],
// ["meta", { name: "google-site-verification",content: "V5XLTSnXoT15uQotwpxJoQolUo2d5UbSL-TacsyOsC0"}],
//<meta name="baidu-site-verification" content="codeva-MiWN8Y07Ua" />
// ["meta", {name: "baidu-site-verification",content: "codeva-MiWN8Y07Ua"}],
["link", { rel: "icon", href: "/static/logo/logo.svg" }]
],
themeConfig: {
logo: "/static/logo/logo.svg",
search: {
provider: "local",
options: {
detailedView: true,
translations: {
button: {
buttonText: "搜索文档",
buttonAriaLabel: "搜索文档"
},
modal: {
noResultsText: "无法找到相关结果",
resetButtonTitle: "清除查询条件",
footer: {
selectText: "选择",
closeText: "关闭",
navigateText: "切换"
title: "Certd",
titleTemplate: "开源SSL证书管理工具证书自动化申请部署,让你的网站证书永不过期",
description: "Certd帮助文档,Certd是一款开源免费的全自动SSL证书管理工具证书自动化申请部署流水线自动证书申请、更新、续期通配符证书泛域名证书申请证书自动化部署到阿里云、腾讯云、主机、群晖、宝塔。",
markdown: {
config: (md) => {
// Use lightbox plugin
md.use(lightbox, {});
}
},
sitemap: {
hostname: 'https://certd.docmirror.cn'
},
head: [
// [
// 'meta',
// {
// name: 'viewport',
// content:
// 'width=device-width,initial-scale=1,minimfast-cum-scale=1.0,maximum-scale=1.0,user-scalable=no',
// },
// ],
["meta", {
name: "keywords",
content: "证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具、Certd、SSL证书自动部署、证书自动化https证书pfx证书der证书TLS证书nginx证书自动续签自动部署,SSL平台证书管理平台证书流水线"
}],
// ["meta", { name: "google-site-verification",content: "V5XLTSnXoT15uQotwpxJoQolUo2d5UbSL-TacsyOsC0"}],
//<meta name="baidu-site-verification" content="codeva-MiWN8Y07Ua" />
// ["meta", {name: "baidu-site-verification",content: "codeva-MiWN8Y07Ua"}],
["link", {rel: "icon", href: "/static/logo/logo.svg"}]
],
themeConfig: {
logo: "/static/logo/logo.svg",
search: {
provider: "local",
options: {
detailedView: true,
translations: {
button: {
buttonText: "搜索文档",
buttonAriaLabel: "搜索文档"
},
modal: {
noResultsText: "无法找到相关结果",
resetButtonTitle: "清除查询条件",
footer: {
selectText: "选择",
closeText: "关闭",
navigateText: "切换"
}
}
}
}
}
}
}
},
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: "首页", link: "/" },
{ text: "指南", link: "/guide/" },
{ text: "商业版", link: "/comm/" },
{ text: "Demo体验", link: "https://certd.handfree.work" }
],
sidebar: {
"/guide/": [
{
text: "入门",
items: [
{ text: "简介", link: "/guide/" },
{ text: "快速开始", link: "/guide/start.md" },
{
text: "私有化部署",
items: [
{ text: "docker部署", link: "/guide/install/docker/" },
{ text: "宝塔面板部署", link: "/guide/install/baota/" },
{ text: "1Panel部署", link: "/guide/install/1panel/" },
{ text: "群晖部署", link: "/guide/use/synology/" },
{ text: "源码部署", link: "/guide/install/source/" }
]
},
{ text: "演示教程", link: "/guide/tutorial.md" },
{ text: "版本升级", link: "/guide/install/upgrade.md" }
]
},
{
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" }
]
// https://vitepress.dev/reference/default-theme-config
nav: [
{text: "首页", link: "/"},
{text: "指南", link: "/guide/"},
{text: "Demo体验", link: "https://certd.handfree.work"}
],
sidebar: {
"/guide/": [
{
text: "入门",
items: [
{text: "简介", link: "/guide/"},
{text: "快速开始", link: "/guide/start.md"},
{
text: "私有化部署",
items: [
{text: "docker部署", link: "/guide/install/docker/"},
{text: "宝塔面板部署", link: "/guide/install/baota/"},
{text: "1Panel部署", link: "/guide/install/1panel/"},
{text: "群晖部署", link: "/guide/use/synology/"},
{text: "源码部署", link: "/guide/install/source/"}
]
},
{text: "演示教程", link: "/guide/tutorial.md"},
{text: "版本升级", link: "/guide/install/upgrade.md"}
]
},
{
text: "特性",
items: [
{text: "CNAME代理校验", link: "/guide/feature/cname/index.md"},
{text: "多数据库支持", link: "/guide/install/database.md"},
{text: "开放接口", link: "/guide/open/index.md"},
{
text: "站点安全", link: "/guide/feature/safe/"
},
{
text: "插件列表", items: [
{text: "DNS提供商", link: "/guide/plugins/dns-provider.md"},
{text: "任务插件", link: "/guide/plugins/deploy.md"},
{text: "通知插件", link: "/guide/plugins/notification.md"},
{text: "授权提供商", link: "/guide/plugins/access.md"},
]
},
]
},
{
text: "常见问题",
items: [
{text: "QA", link: "/guide/qa/use.md"},
{text: "群晖证书部署", link: "/guide/use/synology/"},
{text: "腾讯云密钥获取", link: "/guide/use/tencent/"},
{text: "连接windows主机", link: "/guide/use/host/windows.md"},
{text: "Google EAB获取", link: "/guide/use/google/"},
{text: "阿里云相关", link: "/guide/use/aliyun/"},
{text: "忘记密码", link: "/guide/use/forgotpasswd/"},
{text: "数据备份", link: "/guide/use/backup/"},
{text: "Certd本身的证书更新", link: "/guide/use/https/index.md"},
{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: "ESXi", link: "/guide/use/ESXi/index.md"},
{text: "宝塔动态IP白名单", link: "/guide/use/baota/white_list.md"},
{text: "子域名托管", link: "/guide/use/cert/subdomain.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"},
]
},
{
text: "其他",
items: [
{text: "贡献代码", link: "/guide/development/index.md"},
{text: "更新日志", link: "/guide/changelogs/CHANGELOG.md"},
{text: "镜像说明", link: "/guide/image.md"},
{text: "联系我们", link: "/guide/contact/"},
{text: "捐赠", link: "/guide/donate/"},
{text: "开源协议", link: "/guide/license/"},
{text: "我的其他开源项目", link: "/guide/link/"},
]
}
],
},
{
text: "常见问题",
items: [
{ text: "群晖证书部署", link: "/guide/use/synology/" },
{ text: "腾讯云密钥获取", link: "/guide/use/tencent/" },
{ text: "连接windows主机", link: "/guide/use/host/windows.md" },
{ text: "Google EAB获取", link: "/guide/use/google/" },
{ text: "阿里云相关", link: "/guide/use/aliyun/" },
{ text: "忘记密码", link: "/guide/use/forgotpasswd/" },
{ text: "数据备份", link: "/guide/use/backup/" },
{ text: "Certd本身的证书更新", link: "/guide/use/https/index.md" },
{ 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: "其他",
items: [
{ text: "贡献代码", link: "/guide/development/index.md" },
{ text: "更新日志", link: "/guide/changelogs/CHANGELOG.md" },
{ text: "镜像说明", link: "/guide/image.md" },
{ text: "联系我们", link: "/guide/contact/" },
{ text: "捐赠", link: "/guide/donate/" },
{ text: "开源协议", link: "/guide/license/" },
{ text: "我的其他开源项目", link: "/guide/link/" },
]
socialLinks: [
{icon: "github", link: "https://github.com/certd/certd"}
],
footer: {
message: "Certd帮助文档 | <a href='https://beian.miit.gov.cn/' target='_blank'>粤ICP备14088435号</a> ",
copyright: "Copyright © 2021-present <a href='https://handfree.work/' target='_blank'>handfree.work</a> "
}
],
"/comm/": [
{
text: "商业版",
items: [
{ text: "支付宝配置", link: "/comm/payments/alipay.md" },
{ text: "微信支付配置", link: "/comm/payments/wxpay.md" },
{ text: "彩虹易支付配置", link: "/comm/payments/yizhifu.md" },
]
}
]
,
},
socialLinks: [
{ icon: "github", link: "https://github.com/certd/certd" }
],
footer: {
message: "Certd帮助文档 | <a href='https://beian.miit.gov.cn/' target='_blank'>粤ICP备14088435号</a> ",
copyright: "Copyright © 2021-present <a href='https://handfree.work/' target='_blank'>handfree.work</a> "
}
}
});

View File

@@ -3,6 +3,823 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.37.4](https://github.com/certd/certd/compare/v1.37.3...v1.37.4) (2025-10-28)
### Bug Fixes
* 修复站点证书监控复制按钮无效的bug ([efa26a0](https://github.com/certd/certd/commit/efa26a067f06402f30befc016d9934cadcd5a563))
* 修复lego模式下 私钥加密类型错误的bug ([f7cf7c1](https://github.com/certd/certd/commit/f7cf7c198d7f77b222099770f81accc637bc6619))
### Performance Improvements
* 优化数据备份效率,流式写入文件 ([c38dbbb](https://github.com/certd/certd/commit/c38dbbb1d72bd00a92fe275b76aea82a791e7199))
## [1.37.3](https://github.com/certd/certd/compare/v1.37.2...v1.37.3) (2025-10-24)
### Bug Fixes
* 修复并发情况下证书申请日志混乱的bug ([bb2714f](https://github.com/certd/certd/commit/bb2714ff241f9db4a71d805b23a1b0f9f2f6413a))
* 修复网络测试telnet的bug ([c03a70f](https://github.com/certd/certd/commit/c03a70fde23c8e840bd0fdb4fcbca8990f6c65eb))
* 修复站点证书监控证书已经更新到最新日期了仍然发出警告通知的bug ([1f42f93](https://github.com/certd/certd/commit/1f42f933f07860b27aa3d016e40916ff2b063eac))
### Performance Improvements
* 注册页面增加手机注册tab页签 ([6b2f1fc](https://github.com/certd/certd/commit/6b2f1fcd3e058061b814c3331cda8ce1b2d80d73))
* 流水线创建时支持添加到证书监控 ([59ba408](https://github.com/certd/certd/commit/59ba4080706548828ef1c0a9cd893c1c9a7d591f))
* 流水线支持有效期设置 ([911e69e](https://github.com/certd/certd/commit/911e69e3bc0cdd48b62953b5d0981d640fc1f8ac))
* 群辉增加请求超时时长设置 ([b381492](https://github.com/certd/certd/commit/b3814920bdcabc911f860a8e19b5b9b3a04709ac))
* 通知支持meow ([c77645e](https://github.com/certd/certd/commit/c77645e1733670214aaca5544cf8759d7e4adda4))
* 站点证书监控增加导出和分组功能 ([2ed12c4](https://github.com/certd/certd/commit/2ed12c429eb58274a4f9dd0ed3b66e160d283ded))
* 证书监控增加批量删除 ([e578c52](https://github.com/certd/certd/commit/e578c52fdf2f838038062aa4209b655fbae461fb))
* esa 自动删除过期证书提示 ([8bf1f82](https://github.com/certd/certd/commit/8bf1f828b9eaa9208f32e8ee7460b86420fed0c7))
* ssh 增加禁止-i参数提示 ([3a8931f](https://github.com/certd/certd/commit/3a8931feeffd7157163ff7d46b693e5e1a434b9c))
## [1.37.2](https://github.com/certd/certd/compare/v1.37.1...v1.37.2) (2025-10-14)
### Bug Fixes
* 修复飞牛证书部署后无法生效的bug ([bf156a1](https://github.com/certd/certd/commit/bf156a13bd443cdadb73c9dff79bbef7231b4401))
* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/certd/certd/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57))
### Performance Improvements
* 优化start.sh脚本去掉删除非ui目录的操作及提示 ([7993a7c](https://github.com/certd/certd/commit/7993a7cdb01885535950c63187e3f67d67ba2f75))
* 增加飞牛证书id选择的提示 ([5a4d812](https://github.com/certd/certd/commit/5a4d8121462b1afe921d028465687be8c9679814))
* 证书监控支持设置证书即将过期天数 ([cd35568](https://github.com/certd/certd/commit/cd35568e042e6ab928685efad51cdbed823d2d4f))
* 支持网络测试 ([2bef608](https://github.com/certd/certd/commit/2bef608e07ceb56d52007f290667e0afef401b22))
* 支持新网代理方式 ([f612509](https://github.com/certd/certd/commit/f612509cac87b859e81a7a52fe94b2eaccad22f9))
* dns支持新网互联 ([f415190](https://github.com/certd/certd/commit/f41519048326d971acd9e0a30462231f77a299a6))
* start.sh脚本支持根据当前系统判断是否使用sudo ([567cb7d](https://github.com/certd/certd/commit/567cb7d737023e26ec58403c6f28f109e212d379))
## [1.37.1](https://github.com/certd/certd/compare/v1.37.0...v1.37.1) (2025-09-29)
### Bug Fixes
* 修复版本比较bug ([109696e](https://github.com/certd/certd/commit/109696e965d68c50c8627ffd40203edd1d2daea5))
* 修复某些情况下cname申请证书报错主域名不一致的bug ([2671781](https://github.com/certd/certd/commit/2671781e1bb0838981728d85eacf0e1a25a0fa48))
### Performance Improvements
* cname主域名校验提示优化显示不一致的两方便于排查问题 ([6ebb365](https://github.com/certd/certd/commit/6ebb3659f42155e4e8da600c493fb5227cd08137))
* dns解析支持阿里esa ([9291fa6](https://github.com/certd/certd/commit/9291fa68aa7a88a05c2f888bf3048df36a8fbde3))
# [1.37.0](https://github.com/certd/certd/compare/v1.36.25...v1.37.0) (2025-09-28)
### Features
* @certd/ui-server module import报错的问题 ([0c61d4c](https://github.com/certd/certd/commit/0c61d4c9788677c83c567db5381b9e257ec90bba))
* dist打包前检查 ([8f6e5bd](https://github.com/certd/certd/commit/8f6e5bd24b3b65fbfcba36c08f532a3abad2d606))
## [1.36.25](https://github.com/certd/certd/compare/v1.36.24...v1.36.25) (2025-09-27)
### Bug Fixes
* 固定midwayjs版本修复ui-server import 错误的bug ([eb4d125](https://github.com/certd/certd/commit/eb4d125eaf4a41e88c752d0c68993829589f8f27))
## [1.36.24](https://github.com/certd/certd/compare/v1.36.23...v1.36.24) (2025-09-27)
### Bug Fixes
* 修复 ui-server 加载失败问题 ([c2ccdbe](https://github.com/certd/certd/commit/c2ccdbec9dd08bca4688eeb2f34d0105eec43ba1))
* 修复 ui-server 加载失败问题 ([063f5c3](https://github.com/certd/certd/commit/063f5c3b55e47df22543a64f02e039e84f92cd14))
### Performance Improvements
* 重置管理员密码同时会关闭验证码,防止验证码失效之后无法登录 ([03899d4](https://github.com/certd/certd/commit/03899d4d9c76fc2077dacc53ab88e2c9ca41af7c))
## [1.36.23](https://github.com/certd/certd/compare/v1.36.22...v1.36.23) (2025-09-26)
### Bug Fixes
* 授权页面id列位置不在第一列的bug ([3f1722d](https://github.com/certd/certd/commit/3f1722d54debcb4849dc14521a2da0d9b304b69f))
### Performance Improvements
* 动态加载验证码script ([dcc396a](https://github.com/certd/certd/commit/dcc396afb7a23aeb8af57c01014b09af5f033e61))
* 开启子域名托管之后cname记录支持重置 ([54c8d62](https://github.com/certd/certd/commit/54c8d622437761d350db0f17e07f7517f1911211))
* 手动上传证书优化,增加到期前报错提醒 ([3d42bfd](https://github.com/certd/certd/commit/3d42bfd479eaacc4a49c401224815a6e2a0204b0))
* 验证码支持测试,登录验证码需要测试通过后才能开启 ([83e6476](https://github.com/certd/certd/commit/83e6476408090b741fabb1b542fb458d9a8b4134))
* 支持腾讯云验证码 ([03f317f](https://github.com/certd/certd/commit/03f317ffdb6595ce70e8a2302b05f390c52110c8))
## [1.36.22](https://github.com/certd/certd/compare/v1.36.21...v1.36.22) (2025-09-23)
### Bug Fixes
* 修复旧版本升级上来报错eab授权的bug ([b76f2e2](https://github.com/certd/certd/commit/b76f2e2008a7fefac4c91179c45c56c7a7a84b71))
* 选择授权对话框编辑时名称字段排在最后的bug ([31cfb09](https://github.com/certd/certd/commit/31cfb09468bda3272f5f63af65ff3e9272220b39))
### Performance Improvements
* 7001绑定::地址 ([7188997](https://github.com/certd/certd/commit/7188997dd1979f1c10fa29b30221015e0bd5fe9e))
* 登录失败时清除验证码状态 ([1c15bea](https://github.com/certd/certd/commit/1c15beadc7fe8a7c6ec1903b7e722ca2f52e05b3))
* 公共cname支持权限校验 ([9cc5f0f](https://github.com/certd/certd/commit/9cc5f0f889d4362ff36e7a1f0e448e02d32ecee7))
* 优化连接失败的报错提示 ([71d8e7e](https://github.com/certd/certd/commit/71d8e7edd23ad63fdc01a92766b52ede5074fe7c))
* 增加自签名证书提示 ([877c9c4](https://github.com/certd/certd/commit/877c9c4ff99f81d289f67afd96f440c0796b03ea))
* add preferred chain for google trust service ([#539](https://github.com/certd/certd/issues/539)) @ZeroClover ([e31d26a](https://github.com/certd/certd/commit/e31d26a8871c6088d9f8c0f580746ff2a810ae0c))
* dns支持新网域名解析 ([cf3a78e](https://github.com/certd/certd/commit/cf3a78e1145ff0505c87fbc485d9e731b1aa88a8))
* gcore flush plugin ssl_id改为必填项 ([4b90972](https://github.com/certd/certd/commit/4b909723411c57505aa13b07d8699fb9ac77c937))
## [1.36.21](https://github.com/certd/certd/compare/v1.36.20...v1.36.21) (2025-09-15)
### Bug Fixes
* 修复导入插件对话框无法打开的bug修复插件编辑页面打开多个代码编辑器消失的bug ([e5a080a](https://github.com/certd/certd/commit/e5a080aebe0d2f3e3c0f86bf863f75069c1bf7ab))
* 修复ssl.com报EMAILADDRESS数量不对的bug ([c560cc5](https://github.com/certd/certd/commit/c560cc5adda6e15bf3a8865d874042550a6c2688))
## [1.36.20](https://github.com/certd/certd/compare/v1.36.19...v1.36.20) (2025-09-13)
### Bug Fixes
* 修复商业版退出登录后丢失站点个性化设置的bug ([d75dd05](https://github.com/certd/certd/commit/d75dd058d65c85f80c49e1fa7a910e6c6f08e824))
* 修复授权类型和名称字段排到最后的bug ([43b7977](https://github.com/certd/certd/commit/43b79778ea9034065f6a15af3296274315597c6b))
* 修复证书监控某些情况下报 options.lookup不能为null的bug ([d2ecfe5](https://github.com/certd/certd/commit/d2ecfe5491b2639eb30b5cae293af6062d58bb9f))
* 修复证书手动托管时新上传的证书无效的bug ([506385e](https://github.com/certd/certd/commit/506385e5a2600887fe30854e0713583caaa2e689))
* 修复secret patch 类型多了type的bug ([d04f383](https://github.com/certd/certd/commit/d04f3831611011a90ec0594724b9694490d5edd0))
### Performance Improvements
* 登录支持极验验证码 ([370db62](https://github.com/certd/certd/commit/370db62bf0aece241859244927beabba32d6a257))
* 登录注册、找回密码都支持极验验证码和图片验证码 ([7bdde68](https://github.com/certd/certd/commit/7bdde68ecea29fe2c570fd3cb082139db6c93d93))
* 优化加量包展示效果 ([3c65f37](https://github.com/certd/certd/commit/3c65f37d84177ba107d4a6462648af12d2fc4b7a))
* 证书到期剩余天数进度条根据实际证书有效期计算 ([#528](https://github.com/certd/certd/issues/528)) nicheng-he ([2d4586b](https://github.com/certd/certd/commit/2d4586b1c42c39f97d2a95b9453cca4bc8bfbe61))
* add preferred chain option ([#519](https://github.com/certd/certd/issues/519)) @ZeroClover ([902359f](https://github.com/certd/certd/commit/902359f24ed12eee4f9b65178f1d6a60378351d2))
* ssh配置增加脚本类型设置bash还是sh ([ae41c60](https://github.com/certd/certd/commit/ae41c6038b27c9476e64a2402a8daf247c38a5b6))
* start.sh增加sudo ([b7271d7](https://github.com/certd/certd/commit/b7271d7a464773a1bf87d7d1f24d933ba0f86915))
## [1.36.19](https://github.com/certd/certd/compare/v1.36.18...v1.36.19) (2025-09-05)
### Bug Fixes
* 前置任务输出不存在时输出警告提示 ([b59052c](https://github.com/certd/certd/commit/b59052cc43b7b070fabd8b8e914e4c2a5e0ad61c))
* 修复批量流水线执行时日志显示错乱的问题 ([4372adc](https://github.com/certd/certd/commit/4372adc703b9a4c785664054ab2a533626d815a8))
* 修复远程数据选择无法过滤的bug ([6cbb073](https://github.com/certd/certd/commit/6cbb0739f8428d51b0712f718fe4d236cc087cf9))
* 修复mysql下购买套餐加量包无效的bug ([c26ad4c](https://github.com/certd/certd/commit/c26ad4c8075f0606d45b8da13915737968d6191a))
### Performance Improvements
* 创建证书时支持选择通知时机 ([0e96bfd](https://github.com/certd/certd/commit/0e96bfdfa377824d204e72923d1176408ae6b300))
* 创建k8s secret 时设置type为tls ([79ebabf](https://github.com/certd/certd/commit/79ebabfcfb9e5a534049c84f5f1a642b357fc856))
* 去掉宝塔url后面的斜杠 ([8a0c2b9](https://github.com/certd/certd/commit/8a0c2b9b13628da750c25757e0cb8ed3038775ba))
* 商业版隐藏文档相关链接 ([4443a1c](https://github.com/certd/certd/commit/4443a1c0308fa6b95a05efd73d15d24b65d641c9))
* 商业版隐藏文档相关链接 ([db89561](https://github.com/certd/certd/commit/db8956148083bc4f988226ccf719940d08158a27))
* 增加健康检查探针 /health/liveliness 和 /health/readiness ([44019e1](https://github.com/certd/certd/commit/44019e104289fedd32a867db00e9c6cb71b389cc))
* 支持根据id更新证书证书Id不变接口不过该接口为白名单功能普通腾讯云账户无法使用 ([fe9c4f3](https://github.com/certd/certd/commit/fe9c4f3391ff07c01dd9a252225f69a129c39050))
* 支持godaddy ([b7980aa](https://github.com/certd/certd/commit/b7980aad5ab50f58662eaddf5d84aa82876a98eb))
* 支持ssl.com证书颁发机构 ([27b6dfa](https://github.com/certd/certd/commit/27b6dfa4d2ab3bddd284c3a34511a72e1a513a4c))
* 子域名托管说明 ([39a0223](https://github.com/certd/certd/commit/39a02235cf4416bb5bd1acd3831241efeaa2f602))
* ssh 增加超时断开连接默认10分钟超时 ([c24a040](https://github.com/certd/certd/commit/c24a040c19cacafc79228d7a7649af93837d94a1))
## [1.36.18](https://github.com/certd/certd/compare/v1.36.17...v1.36.18) (2025-08-28)
### Bug Fixes
* 更新我爱云CDN域名地址和部分目录结构 [@tyjsjxh](https://github.com/tyjsjxh) ([#514](https://github.com/certd/certd/issues/514)) ([78e7a81](https://github.com/certd/certd/commit/78e7a81638c2ee779f0ab6c3ba7e5c6f6e064151))
* 修复cron选择组件星期显示错误的bug ([eb75e52](https://github.com/certd/certd/commit/eb75e52278f94a72643f7317e6740fb42666c68a))
* 修复proxmox某些情况下执行卡住的bug ([ebd6917](https://github.com/certd/certd/commit/ebd6917a1d40ae4d94555c32b7e3c093d0599b94))
### Performance Improvements
* 部署到k8s支持自动创建secret ([c09c962](https://github.com/certd/certd/commit/c09c962cb676ca261610aa9f3e5105c9dae43f43))
* 短信验证码支持腾讯云 ([9108459](https://github.com/certd/certd/commit/9108459ae42bcd95a59acba164a64e82e5f2cfe6))
* 商业版支持自定义插件的参数配置 ([17f23f3](https://github.com/certd/certd/commit/17f23f37516af925d5049291d67d41e4271f81f8))
* 腾讯云插件支持国际版 ([58e82d5](https://github.com/certd/certd/commit/58e82d5dbd4ebf089ef239578ef9b68454d17b30))
* 腾讯云EO插件支持自动获取zoneid和域名列表 ([70fcdc9](https://github.com/certd/certd/commit/70fcdc9ebbfb7c883c0c8a2138f61a0776a9491b))
* 支持部署到阿里云云原生API网关、AI网关 ([2ca20be](https://github.com/certd/certd/commit/2ca20be197720201fceabcce9d927f4dbc1cc872))
* 支持部署到华为云obs ([9feb9d0](https://github.com/certd/certd/commit/9feb9d04b3c56ec95c06fcf4fd071eb0e88ffc6f))
* 支持部署到dokploy ([7dbdeae](https://github.com/certd/certd/commit/7dbdeaebe0bfee7521a863fe5e6b4a712aec5876))
* 支持删除宝塔证书夹中的过期证书 ([3575113](https://github.com/certd/certd/commit/3575113655be751d19f88c64491e98a89042d6a2))
* 支持p7b证书格式 ([d9f4a57](https://github.com/certd/certd/commit/d9f4a5793d68a017a5d80ad5385cbda603c4e165))
* lecdnv2支持api token ([e448934](https://github.com/certd/certd/commit/e4489343fee7754be07bcfc3323969dc3a30e90c))
* openapi返回证书时挑选匹配范围最小的那一个增加format参数增加返回值p7b格式增加detail返回 ([2085bcc](https://github.com/certd/certd/commit/2085bcceb61c3723c9bdfec4c4cc0917631ff5e5))
* ssh 配置sudo免密提示 ([e1e7011](https://github.com/certd/certd/commit/e1e7011853ad0c5bd7b09c3690861d5aa34b2db4))
## [1.36.17](https://github.com/certd/certd/compare/v1.36.16...v1.36.17) (2025-08-17)
### Bug Fixes
* 修复新部署的无法保存公共eab配置的bug ([d5dee75](https://github.com/certd/certd/commit/d5dee75df3bd635a597436e448b2de1407531f3a))
### Performance Improvements
* 阿里云 FC3.0 不在要求证书加密方式为旧版, 修复支持的协议类型可以正常选择 ([a34db74](https://github.com/certd/certd/commit/a34db7449eff6ad1dda01de673bf85579fa3865a))
* 部署到腾讯云cdn每个域名增加3每秒延迟 ([f7d43ad](https://github.com/certd/certd/commit/f7d43ad5af4663d4be369820a80d1fd9817ca4ab))
* 腾讯云关闭证书通知增加开关选项,在腾讯云授权里面 ([a77c777](https://github.com/certd/certd/commit/a77c777980dd38d97d983124eeed1596879bba95))
* 证书申请任务默认不发送申请成功通知 ([0283bd2](https://github.com/certd/certd/commit/0283bd2f978dbcd13d361129135e439dd9fbc180))
## [1.36.16](https://github.com/certd/certd/compare/v1.36.15...v1.36.16) (2025-08-16)
### Bug Fixes
* 修复授权配置复制功能,无法复制已加密字段的问题 ([221e068](https://github.com/certd/certd/commit/221e068bac3af6cd5d1794f8cd4c2ec5c0bc3f45))
### Performance Improvements
* 百度云支持上传到证书托管,支持部署到负载均衡 ([798a48a](https://github.com/certd/certd/commit/798a48aa9686fd5d11cfffb6cd93eadfc40aacb3))
* 部署到百度cdn支持自动获取域名列表选择 ([4e432ed](https://github.com/certd/certd/commit/4e432ed03f4fb564e85a2f284ee26b58400b82f5))
* 验证码可重试次数设置为3次 ([1bdceee](https://github.com/certd/certd/commit/1bdceeecf4b5daecdd621a05a2596b6eb45ce8ea))
* 增加找回密码的验证码可重试次数 [@nicheng-he](https://github.com/nicheng-he) ([#496](https://github.com/certd/certd/issues/496)) ([fe03f99](https://github.com/certd/certd/commit/fe03f9942b5662fb90cad86da10782f5dc3603f5))
* 支持阿里云API网关 ([9e1e4ee](https://github.com/certd/certd/commit/9e1e4eeec2859759ca5b07834c9d24cf88a6ad33))
* 支持部署到金山云CDN ([dfa74a6](https://github.com/certd/certd/commit/dfa74a69f7cbb9009d3e20c7eecfa1b905a00cf0))
* 支持更新金山云cdn证书 ([462e22a](https://github.com/certd/certd/commit/462e22a3b0a94887462fe6aa68e4671a365e0737))
* 支持apisix证书部署 ([9b63fb4](https://github.com/certd/certd/commit/9b63fb4ee2c6b56139160c5bf63482dab0869c2b))
## [1.36.15](https://github.com/certd/certd/compare/v1.36.14...v1.36.15) (2025-08-07)
### Bug Fixes
* 修复 https://cas.undefined.aliyuncs.com 的bug ([60e6aa9](https://github.com/certd/certd/commit/60e6aa9b54a761a47e39acee4a1ff947a745be27))
* 修复阿里云clb api接口没有使用region的问题 ([0770f17](https://github.com/certd/certd/commit/0770f174a14313e28d08113e69829ef6cc02d719))
* 修复站点监控使用自定义dns解析域名报错的bug ([eb8cd53](https://github.com/certd/certd/commit/eb8cd53de27991321e36dd14e5ce95f42b51351f))
### Performance Improvements
* 部署到阿里云支持选择bucket和域名 ([013b9c4](https://github.com/certd/certd/commit/013b9c4c7c2adf485d086123ccea448719577fd4))
* 清理数据库备份的临时目录 ([fd95549](https://github.com/certd/certd/commit/fd95549de9a5d8cec09772ee2630bb7521e15e1f))
* 添加免费通知,OneBot V11协议通知支持 ([#491](https://github.com/certd/certd/issues/491)) [@ayakasuki](https://github.com/ayakasuki) ([be053d4](https://github.com/certd/certd/commit/be053d47e41084f817882400882b64143d036d1a))
* 支持webhook部署证书 ([cbe0b1c](https://github.com/certd/certd/commit/cbe0b1c5a6538f232e9a63f1693d20d5acf0a306))
* 注册时支持填写用户名 ([fdcfcc7](https://github.com/certd/certd/commit/fdcfcc77a0db87954e0b026635d3ccdd9bc6cee8))
* add start:server npm script for quick server launch from root directory ([#484](https://github.com/certd/certd/issues/484)) [@orzyyyy](https://github.com/orzyyyy) ([fae1981](https://github.com/certd/certd/commit/fae1981161080f698c3f1263b712306d63baae64))
## [1.36.14](https://github.com/certd/certd/compare/v1.36.13...v1.36.14) (2025-07-28)
### Bug Fixes
* 修复复制流水线为空的bug ([b070773](https://github.com/certd/certd/commit/b0707739fdfbae3d78db4efd3f180db05c4e4164))
* 修复商用证书上传第二次运行无法使用pfx格式证书的bug ([251dd1f](https://github.com/certd/certd/commit/251dd1fe457a7b152f43eb6de18f7beb9f0b194e))
### Performance Improvements
* 1panel支持 currenNode ([acc8907](https://github.com/certd/certd/commit/acc890730f43d492c9b1bd3668814cf10efdf7b8))
* 授权管理支持模糊查询 ([866eb62](https://github.com/certd/certd/commit/866eb6241baa7b21f6eddc649966324c188236c6))
* 新增找回密码功能 [@nicheng-he](https://github.com/nicheng-he) ([81ac240](https://github.com/certd/certd/commit/81ac240ac84db0af2f56b6352e227ecb49f38377))
* 优化start脚本 ([238ad7c](https://github.com/certd/certd/commit/238ad7ce51f17e1098c624e7f61ee2d98de1e02d))
* 运行主机脚本插件支持选择运行策略 ([86b3df1](https://github.com/certd/certd/commit/86b3df194126476e1f58e0952a77e986f62eecce))
* cdnfly 支持 账号密码登陆授权 ([e87f6d5](https://github.com/certd/certd/commit/e87f6d56f524dbbb9e3243e382b348b6e49f0d2c))
* k8s ack、tke 支持重启ingress ([95715a0](https://github.com/certd/certd/commit/95715a007d931c64fa7dd953d94957398e00a443))
## [1.36.13](https://github.com/certd/certd/compare/v1.36.12...v1.36.13) (2025-07-23)
### Bug Fixes
* 修复阿里云发送短信验证码失败的bug ([2e6d03f](https://github.com/certd/certd/commit/2e6d03ff001f521f57368e7a62b97ed7b122e8d0))
### Performance Improvements
* 阿里云部分插件优化 [@nicheng-he](https://github.com/nicheng-he) ([e3738f6](https://github.com/certd/certd/commit/e3738f6422270d75ec414c15a343248cc4cad6e1))
## [1.36.12](https://github.com/certd/certd/compare/v1.36.11...v1.36.12) (2025-07-22)
### Bug Fixes
* 上传到阿里云cas证书前缀无效的bug ([b382351](https://github.com/certd/certd/commit/b382351c7b91ec10e1f61d94bec5aad075207ec8))
* 修复自定义插件onlyAdmin报错的bug ([4e5e862](https://github.com/certd/certd/commit/4e5e862f5834ad180e4428959c272d444a6f78ab))
### Performance Improvements
* 部署到k8stkeack忽悠证书校验 ([ab84835](https://github.com/certd/certd/commit/ab848353621869464a2c9a45fdb5e28d998b8a58))
* 首页增加更新日志按钮 ([41ce848](https://github.com/certd/certd/commit/41ce8489dc2f03a705dfa3fbb357769defb56c60))
* 增加版本过低提示 ([d1ce360](https://github.com/certd/certd/commit/d1ce36038cab72b5dc1b320d0a708c261ffbdacb))
## [1.36.11](https://github.com/certd/certd/compare/v1.36.10...v1.36.11) (2025-07-22)
### Bug Fixes
* 安全更新,备份数据库插件仅限管理员运行 ([13dfca1](https://github.com/certd/certd/commit/13dfca1749275526c82465a17c482b607c820fdd))
## [1.36.10](https://github.com/certd/certd/compare/v1.36.9...v1.36.10) (2025-07-18)
### Bug Fixes
* 企业微信通知改成text类型因为markdown类型不支持@用户 ([747d266](https://github.com/certd/certd/commit/747d26674248082e678a3fd5ecc94712641a2716))
* api接口获取不到证书的bug ([05a33a0](https://github.com/certd/certd/commit/05a33a0ec9999e2802f6c7b23cc1c61a2b9e963d))
### Performance Improvements
* 部署到阿里云oss插件支持选择上传到阿里云cas中的证书 ([2ea2c8c](https://github.com/certd/certd/commit/2ea2c8c05fc40f79595f1bbde67c1413558bf684))
* 优化子域名托管的说明 ([b15f514](https://github.com/certd/certd/commit/b15f514018b728acb0922ee3f93c1f302eb5d471))
* 账号即将过期通知 ([e403450](https://github.com/certd/certd/commit/e40345095f31e2fb8e2333a6647466659133fa0c))
* 子域名托管重复域名不允许添加 ([ffc0c7b](https://github.com/certd/certd/commit/ffc0c7bb7b16d9904fd2d905d1c4e1d4854e92a9))
## [1.36.9](https://github.com/certd/certd/compare/v1.36.7...v1.36.9) (2025-07-15)
### Bug Fixes
* 修复ssh无法执行命令的bug ([9763cb0](https://github.com/certd/certd/commit/9763cb00e5d95b2fa5d1c2d3d4a8eecac71600e6))
## [1.36.7](https://github.com/certd/certd/compare/v1.36.6...v1.36.7) (2025-07-15)
### Bug Fixes
* 修复流水线列表页报length错误的bug ([9864792](https://github.com/certd/certd/commit/9864792bbfd149e770d6e1ffa809573694f99dd3))
* 修复流水线页面状态没有刷新的bug ([93e9498](https://github.com/certd/certd/commit/93e9498b410353f504e11e264db62468895d7290))
* 修复自定义证书检查时间重启之后不生效的bug ([38e867c](https://github.com/certd/certd/commit/38e867c917bbc68bd228bdd8064f3e7358d6413d))
### Performance Improvements
* 支持上传证书到各种对象存储oss、cos、七牛、s3、minio等 ([1da8617](https://github.com/certd/certd/commit/1da8617a53a675776635bbc3bcb3c6d7dff83e27))
* 支持邮箱发送证书 ([95332d5](https://github.com/certd/certd/commit/95332d5db96cd54ddab6ab737332417a09169b39))
## [1.36.6](https://github.com/certd/certd/compare/v1.36.5...v1.36.6) (2025-07-14)
### Bug Fixes
* 修复某些页面翻译不全显示错误的bug ([0b3158f](https://github.com/certd/certd/commit/0b3158fdd5fe5bb0a98c4e65715dbc3de2c38047))
* 修复运行流水线后会闪烁一下的bug ([dfc9362](https://github.com/certd/certd/commit/dfc9362084082ee535b898f23b2609c1d946a6fd))
### Performance Improvements
* 部署plesk证书支持删除未使用的证书 ([902d246](https://github.com/certd/certd/commit/902d246d1a7473ad90f604028c4eb09c8c67d99c))
* 通知和定时器的删除按钮显示为红色更显眼 ([61ba83c](https://github.com/certd/certd/commit/61ba83c77546c3d505d081e19a3d68c127662bf1))
* 优化流水线列表页面、详情页面性能,精简返回数据 ([609ac9c](https://github.com/certd/certd/commit/609ac9c9a2dde605eb09834ae59693c1cb238765))
* 支持自动选择校验方式申请证书 ([3f99432](https://github.com/certd/certd/commit/3f9943270cfb12946e38e6272bc5e8d95ad6ab9e))
* OpenAPI支持autoApply参数 ([42f4d14](https://github.com/certd/certd/commit/42f4d1477dc791520a874aed56035abcbc8c433b))
## [1.36.5](https://github.com/certd/certd/compare/v1.36.4...v1.36.5) (2025-07-11)
### Bug Fixes
* 某些插件找不到的bug ([4b3f4a8](https://github.com/certd/certd/commit/4b3f4a868a8b0800c5c59de9d0f47bddc079e7b3))
## [1.36.4](https://github.com/certd/certd/compare/v1.36.3...v1.36.4) (2025-07-10)
### Bug Fixes
* 修复查看证书对话框翻译错误的bug ([8626b6d](https://github.com/certd/certd/commit/8626b6d9f235c511766f2ae98e0a37f6cebb621c))
* 修复translation后分组编辑打不开的bug ([46a1b74](https://github.com/certd/certd/commit/46a1b7479923d2feb2dece202a5932b99981b2cd))
* 执行windows nginx命令时改为return code判断是否执行成功 ([b37cffd](https://github.com/certd/certd/commit/b37cffd704cd08b8bdd68a6e284706eabe59e78d))
### Performance Improvements
* 优化证书进度条颜色 ([2af91db](https://github.com/certd/certd/commit/2af91dbf2ae36a4ed17c6788bc2a2a79a3bb29f8))
* 站点证书即将过期通知标题颜色优化为红色 ([80c5331](https://github.com/certd/certd/commit/80c5331a5d4c320323d9b9b800e4ea3b72577b33))
* 支持部署到阿里云vod ([98da4e1](https://github.com/certd/certd/commit/98da4e1791ed8bb21daf2a9914fda875d14633c9))
* 支持部署证书到网宿CDN ([c3da026](https://github.com/certd/certd/commit/c3da026b33106f5195959825a68cadbe49efef00))
* 重置管理员密码同时可以清除管理员的2FA设置 ([1ece091](https://github.com/certd/certd/commit/1ece0915f172d5f8b8adb866434e7efcc5c8c46d))
* output-selector from参数支持更丰富的过滤规则 ([87853a2](https://github.com/certd/certd/commit/87853a201535f3bfe8505c40f8f5229d82ffcc73))
## [1.36.3](https://github.com/certd/certd/compare/v1.36.2...v1.36.3) (2025-07-07)
### Bug Fixes
* 修复开放接口添加按钮文本显示问题 ([f93ba99](https://github.com/certd/certd/commit/f93ba9970c12680f38eba2a7abd4b72cf3f5b6a6))
### Performance Improvements
* 优化部署到腾讯TKE插件支持Opaque类型选择优化填写说明 ([1445325](https://github.com/certd/certd/commit/144532530a865b634e68539e4888e26f52f73492))
## [1.36.2](https://github.com/certd/certd/compare/v1.36.1...v1.36.2) (2025-07-06)
### Bug Fixes
* 修复notification编辑按钮无法打开对话框的bug ([0cea26c](https://github.com/certd/certd/commit/0cea26c6287f52adf273b4a525c37bea8555c68c))
* 优化更新飞牛os证书有效期修复某些情况下部署证书后飞牛无法访问https的bug ([610c919](https://github.com/certd/certd/commit/610c919c72037becc0ed326f5d5b18c963dfcb3a))
### Performance Improvements
* 证书检查支持自定义dns服务器 ([c53bb7c](https://github.com/certd/certd/commit/c53bb7cf677faa32729709ae0c10359db5194d7a))
## [1.36.1](https://github.com/certd/certd/compare/v1.36.0...v1.36.1) (2025-07-02)
### Bug Fixes
* 修复通知和触发器无法编辑的bug ([a2e0951](https://github.com/certd/certd/commit/a2e09510426680eb425c0d7ad337f39d3f052054))
### Performance Improvements
* 支持部署到七牛云DCDN ([bde601b](https://github.com/certd/certd/commit/bde601bfffb4f7345d97e1e3b064520816d31555))
# [1.36.0](https://github.com/certd/certd/compare/v1.35.5...v1.36.0) (2025-07-01)
### Bug Fixes
* 支持自定义证书生成插件 ([481cc02](https://github.com/certd/certd/commit/481cc029fafaf280aa844cd3ca30f4653ec35d55))
### Features
* 支持模版创建流水线 ([2559f0e](https://github.com/certd/certd/commit/2559f0e822db095d1d26a7f1d517622dce22a5c2))
### Performance Improvements
* 阿里云waf cname站点选择支持翻页及域名查询 ([4cf9858](https://github.com/certd/certd/commit/4cf98584dacc5999752732f136246647a2f1f07d))
* 部署到ssh主机命令支持前置命令 ([991b741](https://github.com/certd/certd/commit/991b741cbe223b342f534157da63b71e81661f8e))
* 模版导入流水线 ([dcc8c56](https://github.com/certd/certd/commit/dcc8c569693432579709ce63656665a76bcf9a44))
* 添加用户资料编辑功能 ([7c0f43c](https://github.com/certd/certd/commit/7c0f43c8a3052f73afee3e93c9fcbc43c44ab690))
* 优化阿里云waf的日志信息 ([821c6d8](https://github.com/certd/certd/commit/821c6d807d4b3cc5092d09a6282b8cbafb9e7c9f))
* 优化中英文翻译与切换 ([acaa8b1](https://github.com/certd/certd/commit/acaa8b173183b4423584ee070e6e332e0ac0eb2d))
* 站点IP监控前先同步一下IP ([a080b60](https://github.com/certd/certd/commit/a080b606ab6e289d96b17ef7d2879b4603f889ba))
* 支持选择运行策略设置 ([60f055f](https://github.com/certd/certd/commit/60f055f293ce237c21cd9050333dad9609eceac1))
## [1.35.5](https://github.com/certd/certd/compare/v1.35.4...v1.35.5) (2025-06-20)
### Bug Fixes
* 腾讯云授权支持设置是否国际站部署到EO插件支持国际站 ([5cd3968](https://github.com/certd/certd/commit/5cd3968929acef333cf30d3b20cf21cea6c82c5f))
* 修复邮箱包含.号校验失败的bug ([65dcae7](https://github.com/certd/certd/commit/65dcae79f8faa7a6cb425e10a0fdb6758b0719f3))
### Performance Improvements
* 首次打开任务日志查看页面,自动滚动到底部 ([43fee42](https://github.com/certd/certd/commit/43fee42198e8697185b427b1fa3eb79409603393))
* 支持批量修改通知和定时 ([e11b3be](https://github.com/certd/certd/commit/e11b3becfd4abe6547e84d09adc38ebd6e1c4b87))
## [1.35.4](https://github.com/certd/certd/compare/v1.35.3...v1.35.4) (2025-06-13)
### Performance Improvements
* 支持s3 access做测试 ([f00aeac](https://github.com/certd/certd/commit/f00aeacb8b5c81f0bafa4c1b76723dec2b6b7784))
## [1.35.3](https://github.com/certd/certd/compare/v1.35.2...v1.35.3) (2025-06-12)
### Bug Fixes
* 修复消息内容存在()<>等括号情况下无法发送tg通知的bug ([c937583](https://github.com/certd/certd/commit/c937583a50d8513d76adead3648f83eee2fcc6f9))
* 修复重试次数设置无效的bug ([e2099ac](https://github.com/certd/certd/commit/e2099ac9ca344bc70bfa4219002e9138708973ae))
### Performance Improvements
* 授权列表类型颜色优化 ([1e86338](https://github.com/certd/certd/commit/1e863382d3d1a8cc95a1abf51e75bf6eaea3244f))
* 支持雨云dns解析 ([8354348](https://github.com/certd/certd/commit/83543487e7418683bd79cfe3b9e0d792bdb977f7))
* 支持雨云dns解析以及雨云证书更新 ([43c7a19](https://github.com/certd/certd/commit/43c7a1984926f5d4647760cc134bb0aede3a7b7a))
* github 版本检查支持执行脚本 ([bad3504](https://github.com/certd/certd/commit/bad3504d4a15e6989b967b66aa9da8c6981f25bf))
## [1.35.2](https://github.com/certd/certd/compare/v1.35.1...v1.35.2) (2025-06-09)
### Bug Fixes
* 修复阿里云新加坡clb无法部署证书的bug ([c1fbc8c](https://github.com/certd/certd/commit/c1fbc8cd68ae020ef342e4e92f4d9b4869ca1ead))
* 修复阿里云新加坡clb无法部署证书的bug ([3e84e11](https://github.com/certd/certd/commit/3e84e116e863b54c6b4d7db160af372dacc5857f))
* 修复检查github release 插件无法保存最后版本的bug ([a92107c](https://github.com/certd/certd/commit/a92107cc47133883b099d5228b06373e84c8bb50))
* 修复站点监控定时器多次添加的bug ([9361679](https://github.com/certd/certd/commit/936167972fe83e519bc01a0dd961d9c0635d24ab))
### Performance Improvements
* 阿里云dns操作增加重试机制 ([424fd96](https://github.com/certd/certd/commit/424fd96615c05e949af8c837c261c1400bdffba2))
* 优化阿里云nlb支持部署扩展证书 ([9cbdfda](https://github.com/certd/certd/commit/9cbdfda829b231733d54c66c5024d46e6fc11af3))
* 子域名托管帮助链接优化为打开新窗口 ([7c0cdd1](https://github.com/certd/certd/commit/7c0cdd169e2f943e703e433677f2f437d4aa02ee))
* history增加触发类型显示 ([7f6070c](https://github.com/certd/certd/commit/7f6070c960ed7bf02add5ab36436de6573f2f1fa))
## [1.35.1](https://github.com/certd/certd/compare/v1.35.0...v1.35.1) (2025-06-07)
### Bug Fixes
* 某些证书提供商的证书确实commonName导致无法转换证书的问题 ([ac87bc5](https://github.com/certd/certd/commit/ac87bc57e957ea4679707bfd38d6840e26319bed))
* 修复站点监控通知渠道设置无效的bug ([a00453c](https://github.com/certd/certd/commit/a00453c83a58114ce2873dd6e6aaf313f1ce0f87))
### Performance Improvements
* 修改 HTTPS 服务器监听地址 ([e1cf64a](https://github.com/certd/certd/commit/e1cf64ae16d4abfe4299ff16d5088c30cf3c6365))
* 优化流水线页面,增加下次执行时间、查看证书显示 ([c820315](https://github.com/certd/certd/commit/c8203154094fae3d17198747f49f5f41ddf29a4e))
* 站点证书监控支持定时设置,重试次数设置 ([d3c2f8e](https://github.com/certd/certd/commit/d3c2f8eb436e670772d14a54acd6b541c5aa3978))
* 证书申请支持letencrypt profile选项 ([2eb0e54](https://github.com/certd/certd/commit/2eb0e54909d8ad36708e07c12fd598998159bc43))
* aliyun alb支持部署扩展证书 ([2a19b61](https://github.com/certd/certd/commit/2a19b61b7a78620c06396c2cc37cc77d738b6d12))
# [1.35.0](https://github.com/certd/certd/compare/v1.34.11...v1.35.0) (2025-06-05)
### Features
* 完善注释 ([6702ca1](https://github.com/certd/certd/commit/6702ca10a17f5d7dbff789b039f7269496f66b97))
* AWS 中国区 CloudFront 证书部署IAM 证书) ([8a55bed](https://github.com/certd/certd/commit/8a55beda924b3be2a53b9ba80d9487cefa8bf887))
* **lego:** support for command options ([b84159f](https://github.com/certd/certd/commit/b84159f2f11531f058837c2e82d66499f3740f20))
## [1.34.11](https://github.com/certd/certd/compare/v1.34.10...v1.34.11) (2025-06-05)
### Bug Fixes
* 修复用户最大流水线数量校验的问题 ([919f70a](https://github.com/certd/certd/commit/919f70a5fd2842ca69f96f1659bb5a7ba3f73776))
* 修复中文域名使用cname方式校验无法通过的问题 ([f7d5baa](https://github.com/certd/certd/commit/f7d5baa6d04cb83c572b06e62f885890cfa0143a))
* 修复cv4pve sdk (proxmox插件连接失败时无法正常结束任务的bug) ([49f26b4](https://github.com/certd/certd/commit/49f26b4049a0549b0270395157e96e8f04a68bc4))
* 修复flexcdn部署证书的顶级CA名称显示 ([6467edb](https://github.com/certd/certd/commit/6467edb84324d7c80a85212675dbacedc459df83))
* 修复flexcdn证书commonNames错误的问题 ([ace363f](https://github.com/certd/certd/commit/ace363fa355436e769b27f71cc487d30d6441780))
### Performance Improvements
* 分组选择支持清空选项 ([03e2e99](https://github.com/certd/certd/commit/03e2e9949837b34eb3ea56d14a9e8a5dabc96063))
* 优化cname检查当有冲突的cname记录时给出提示 ([e639a8f](https://github.com/certd/certd/commit/e639a8f9f12640ffcca69f1a6a0324459924afbd))
* 增加下载日志按钮 ([6ff509d](https://github.com/certd/certd/commit/6ff509d263c0182645b4692c10b5fedb192db964))
* 站点监控支持批量导入域名和ip ([2d7729d](https://github.com/certd/certd/commit/2d7729dbe98f29088f5f317db2b52cc1ede223a6))
* 支持设置用户有效期 ([6ac3bc5](https://github.com/certd/certd/commit/6ac3bc564f407dad2cd0b0b0744e887387aa5da3))
## [1.34.10](https://github.com/certd/certd/compare/v1.34.9...v1.34.10) (2025-06-03)
### Bug Fixes
* **flexcdn:** fix cert upload and skipSslVerify required ([c48da5d](https://github.com/certd/certd/commit/c48da5dea7f0f0cdeae643b106b4a678acc3b14b))
### Performance Improvements
* 阿里云CLB支持部署到扩展域名 ([0e8339c](https://github.com/certd/certd/commit/0e8339c70190890d449099e1d26e5ed06ff135fb))
* 优化流水线名称过长时的显示 ([6a0cc1b](https://github.com/certd/certd/commit/6a0cc1b1f3ad508f9e4093b3b682b163f12389eb))
* 支持部署到飞牛OS ([ddfd0fb](https://github.com/certd/certd/commit/ddfd0fb81d6638352920261065f1ab8e27bdd564))
* 支持日志写入文件 ([37edbf5](https://github.com/certd/certd/commit/37edbf5824d6aaae68ea1ef7259c6f739d418d2c))
## [1.34.9](https://github.com/certd/certd/compare/v1.34.8...v1.34.9) (2025-05-30)
### Bug Fixes
* 修复Farcdn证书有效期错误的问题 ([1fe4c36](https://github.com/certd/certd/commit/1fe4c367f7128de9ba5e3395ae06bc81e63a7d5a))
### Performance Improvements
* 不止证书自动化,插件解锁无限可能 ([a9b302e](https://github.com/certd/certd/commit/a9b302e38d3328d75df8b2da3d8b914851e55e9c))
* 邮箱支持保存和选择 ([f7b0b44](https://github.com/certd/certd/commit/f7b0b44ef6044bec36510a6f0b06d8dca5bfce49))
* 支持github 新版本检查并发布通知 ([356703c](https://github.com/certd/certd/commit/356703c83ea18c6efb8931402e181280d7b7e696))
## [1.34.8](https://github.com/certd/certd/compare/v1.34.7...v1.34.8) (2025-05-28)
### Bug Fixes
* 更新 1panel API 版本支持v1/v2设置 ([e6195ad](https://github.com/certd/certd/commit/e6195ade3ec54b138825b8d6738f86eb8afdd720))
* 同步更新namesilo接口修复无法创建和删除dns记录的问题 ([36b02c2](https://github.com/certd/certd/commit/36b02c2cec145c13d4ef29d49aba5b6b4f697df2))
* 修复阿里云 esa 证书获取站点列表错误的问题 ([0c2ea5d](https://github.com/certd/certd/commit/0c2ea5da4c836f8a0df132a3f22d399bd9ee1de9))
* 修复部署到华为cdn子账号ak查询不到域名的bug ([ebb292a](https://github.com/certd/certd/commit/ebb292a2f7a425c1bc810f59468beb3f1d5bc3f0))
* 修复证书申请任务无法修改dns提供商类型的bug ([8802274](https://github.com/certd/certd/commit/88022747bebe2054223e0241d68d410771405e68))
### Performance Improvements
* 关闭腾讯云证书通知提醒 ([231a875](https://github.com/certd/certd/commit/231a875bb481420c39bf76ec9ff4e50954ab9fe4))
* 优化站点选择组件,切换选择时不刷新列表 ([3a14714](https://github.com/certd/certd/commit/3a147141b1a5d67c92a5ce88a5313eaa62859e03))
* 优化站点ip检查 ([a463711](https://github.com/certd/certd/commit/a463711b03a20120f2a298be15d71ca152d27f21))
* 站点监控支持监控IP ([9cc4c01](https://github.com/certd/certd/commit/9cc4c017ae646a18284e732769b82636feda01d3))
* 支持批量重新运行 ([8189982](https://github.com/certd/certd/commit/818998259ddc75e722196ac5c365038818539b9b))
* farcdn优化 ([a06ef07](https://github.com/certd/certd/commit/a06ef07178ed73c537e21c7d57e5e5144d2c056d))
## [1.34.7](https://github.com/certd/certd/compare/v1.34.6...v1.34.7) (2025-05-26)
### Performance Improvements
* 优化阿里云DCDN插件支持多选 ([b091657](https://github.com/certd/certd/commit/b091657b5c537acf2442a2bfc345d0a77f5e2c50))
* 支持部署到farcdn ([e08cf57](https://github.com/certd/certd/commit/e08cf57b72128998f487ab6469868052fbce0dba))
## [1.34.6](https://github.com/certd/certd/compare/v1.34.5...v1.34.6) (2025-05-25)
### Bug Fixes
* 修复公共插件配置修改不生效的bug优化系统设置参数注入时机 ([e1e510c](https://github.com/certd/certd/commit/e1e510ce1e37a5ae82478226b6987a83f22d1ecb))
* 修复又拍云 CDN 设置证书参数和强制 HTTPS 配置报错的bug ([7984b62](https://github.com/certd/certd/commit/7984b625ba6727132f205db8e25f790bce27b2f7))
* 修复lego模式下每次都重新申请证书的bug ([f807b8c](https://github.com/certd/certd/commit/f807b8cb465cc329fa034ecbef94e18ef394f870))
* 优化 RunnableError错误信息展示 ([36bc3ff](https://github.com/certd/certd/commit/36bc3ff22da93ba342c3c1103d7ee2bbcecf44f2))
* **cert:** 修正证书过期时间计算逻辑 ([a3086e6](https://github.com/certd/certd/commit/a3086e6a5bec8b07f5e1d21a2ca8bd969c75bd5c))
### Performance Improvements
* 二次认证页面中,添加动态验证码输入框的焦点控制,提升用户体验 ([bb22f06](https://github.com/certd/certd/commit/bb22f062ed4ab4b5b71938270fe4cc666af6b8e7))
* 添加阿里云 ESA证书部署插件 ([1db1ffd](https://github.com/certd/certd/commit/1db1ffde99ac7e4684fa606ebc4c327f829b3a26))
* 站点证书监控增加通知设置 ([3422a1a](https://github.com/certd/certd/commit/3422a1a59fd0d2c0f17fa9c7e8988ac527ecfdd9))
## [1.34.5](https://github.com/certd/certd/compare/v1.34.4...v1.34.5) (2025-05-19)
### Performance Improvements
* 1panel增加授权测试按钮 ([566b12f](https://github.com/certd/certd/commit/566b12f5d14ce10e8f5cf1807c58f7bf27f0d199))
* 优化钉钉通知标题颜色 ([a560999](https://github.com/certd/certd/commit/a560999d13eed18d08dd32ee530166569e3f8746))
* 优化飞书通知为卡片模式 ([a818a3d](https://github.com/certd/certd/commit/a818a3d293e22fb46979bc77055c05621a6fed81))
* 支持部署到宝塔aaWAF ([094565c](https://github.com/certd/certd/commit/094565ccd619ef671c6c11ce5fb7fd54a7a21d1c))
* aaWaf、cdnfly站点选择支持查询 ([8af3463](https://github.com/certd/certd/commit/8af3463668a40b9b99febb02e3b4e0d9d8d719b4))
## [1.34.4](https://github.com/certd/certd/compare/v1.34.3...v1.34.4) (2025-05-16)
### Bug Fixes
* 修复部署flexcdn问题 ([76b19a4](https://github.com/certd/certd/commit/76b19a4980f8edba5238543b82a7811e1003746c))
* 修复插件导入的bug ([677fec0](https://github.com/certd/certd/commit/677fec0a0b6fceb4966705e471bbfeeda91610c7))
* 修复导入在线插件不生效的bug ([fcf8309](https://github.com/certd/certd/commit/fcf8309c238208281ecb4575b2c3cfe50c11d783))
* 修复自建插件保存丢失部署策略的bug ([863e74d](https://github.com/certd/certd/commit/863e74dd2e3912f950ff5025b5ed0070aeb37035))
### Performance Improvements
* 调整小助手,仅在登录之后显示 ([aebb07c](https://github.com/certd/certd/commit/aebb07c5cc8b1f233b9d203ff017ac60e6971a85))
## [1.34.3](https://github.com/certd/certd/compare/v1.34.2...v1.34.3) (2025-05-15)
### Performance Improvements
* 宝塔插件、1panel 改成完全免费版 ([a53b6cd](https://github.com/certd/certd/commit/a53b6cd28ff2ce5662ada82379ea44a06b179b81))
* 添加 FlexCDN 更新证书插件 ([bf040d4](https://github.com/certd/certd/commit/bf040d4c428d29c06fbaca5e29100e0c583b2b0b))
* 小助手可以关闭 ([3e2101a](https://github.com/certd/certd/commit/3e2101aa5b56548614102e900d59819ce8c7e97c))
* 支持部署到maoyun cdn ([68f333f](https://github.com/certd/certd/commit/68f333fb87ce85eed27436ecb0f76351c0ccb0d1))
* 支持AI分析报错 ([aa96859](https://github.com/certd/certd/commit/aa96859798166426e485947a6590464de189de05))
## [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
* 根据SOA记录判断子域名托管有缺陷改回手动配置子域名托管记录的方式 ([1b280a2](https://github.com/certd/certd/commit/1b280a2940f9e2d919b0bf23b89cc185be1fa498))
* 修复宝塔授权测试按钮显示错误的bug ([048696e](https://github.com/certd/certd/commit/048696ee9386491bb68592fb3a47d1c900bb68bf))
### Performance Improvements
* 支持部署证书到火山dcdn ([5f85219](https://github.com/certd/certd/commit/5f852194953dc1b4e6336770f417507b8f5a33ad))
* 支持部署证书到unicloud ([a63d687](https://github.com/certd/certd/commit/a63d687f1c573159f0857693f37602b0e1e44072))
# [1.34.0](https://github.com/certd/certd/compare/v1.33.8...v1.34.0) (2025-04-28)
### Bug Fixes
* 修复二次认证登录进入错误账号的bug ([e3930e0](https://github.com/certd/certd/commit/e3930e07172dd7903cb0f6ff26e0e3e828ba3e77))
### Features
* 从yaml文件注册插件 ([deb3893](https://github.com/certd/certd/commit/deb38938204b29543f36d3266249958faaaa6b66))
### Performance Improvements
* 优化cdnfly插件支持自动匹配域名部署 ([afd59e9](https://github.com/certd/certd/commit/afd59e9933b2650f41c5d47684c171b93b962065))
## [1.33.8](https://github.com/certd/certd/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes
* 服务器时间获取不准确的bug ([5d10cbf](https://github.com/certd/certd/commit/5d10cbf18daf94a90a7551641a3b13e3c5fec611))
* 修复复制流水线无效的bug ([3df20a9](https://github.com/certd/certd/commit/3df20a924f32970b052e2588ea20de095f0ea693))
* 修复http上传方式无法清除记录文件的bug ([72a7b51](https://github.com/certd/certd/commit/72a7b51d479602b2c54c6c3ac8d8a0dcb9664e73))
* 修复token过期后疯狂打印token过期信息的bug ([50a5fa1](https://github.com/certd/certd/commit/50a5fa15bb240a125bbc91d2ce1ff3c835888a77))
### Performance Improvements
* 从域名的soa获取主域名子域名托管无需额外配置 ([a586a92](https://github.com/certd/certd/commit/a586a92d5e32ea846ac37be52a7ad8c328d89966))
* 七牛oss支持删除过期备份 ([b7113bd](https://github.com/certd/certd/commit/b7113bda2378116d6c116dc583f563cce7cf9f00))
* 数据库备份支持oss ([308d460](https://github.com/certd/certd/commit/308d4600efe2002f199c33b4594d3071784e58ea))
* 支持阿里云中文域名申请 ([b3468cf](https://github.com/certd/certd/commit/b3468cf7f28228d7c9cf68de6b5a9bbeb67f2c6d))
* 支持反向代理增加contextPath路径 ([0088929](https://github.com/certd/certd/commit/0088929622160cc922995de9a563e8061686ff34))
* 支持中文域名 ([162ebfd](https://github.com/certd/certd/commit/162ebfd4e0c25727efb33952d3bbf7420a02e2c3))
## [1.33.7](https://github.com/certd/certd/compare/v1.33.6...v1.33.7) (2025-04-22)
### Performance Improvements
* 添加部署证书至火山 Live ([abea80e](https://github.com/certd/certd/commit/abea80e3ab9b1672aebe1c5d5e856693b29931a8))
* 优化首页插件列表展示 ([9b8f60b](https://github.com/certd/certd/commit/9b8f60b64b5f9a3db7dfa9b3dcbd9201984358d0))
* 证书申请支持51dns ([8638fc9](https://github.com/certd/certd/commit/8638fc91ff34fccaf12ff9874fd3fa9d2a8c18b7))
* 支持51dns ([96a0900](https://github.com/certd/certd/commit/96a0900edc95dcfd9acccf9d13592f12f5a09b3d))
* ssh PTY模式登录设置 ([8385bcc](https://github.com/certd/certd/commit/8385bcc2d7f2411a07748bb5c53f9eaf4d38d7cc))
* ssh伪终端模式优化windows下不开启 ([42dfe93](https://github.com/certd/certd/commit/42dfe936b773b7bdd82ca3378363252ffffd7b71))
## [1.33.6](https://github.com/certd/certd/compare/v1.33.5...v1.33.6) (2025-04-20)
### Bug Fixes
* 上传商用证书直接粘贴文本报错的问题修复无法上传ec加密证书的bug ([5750bb7](https://github.com/certd/certd/commit/5750bb706779da274d8e7a87e71416cb64d2df79))
* 修复下载证书时提示token已过期的问题 ([0e07ae6](https://github.com/certd/certd/commit/0e07ae6ce84dcb9279d3c44060d621566afa593c))
### Performance Improvements
* 更新license时同时绑定url ([78367af](https://github.com/certd/certd/commit/78367af8307f801e778c76d49f0918c21ffe032f))
* 切换到不同的分组后再打开创建对话框,会自动选择分组 ([893dcd4](https://github.com/certd/certd/commit/893dcd4f2487891199ed3e5a3d47a79a75efc942))
* 新增部署到火山引擎ALB/CLB、上传到证书中心 ([c9a3e3d](https://github.com/certd/certd/commit/c9a3e3d9d26f964c7af7b56667936f1414fbf42a))
* 优化/api缓存为0 ([dc05cd4](https://github.com/certd/certd/commit/dc05cd481f186b13375192be965000e6b4b429a5))
* 优化华为cdn插件引用ccm证书 ([b565b4b](https://github.com/certd/certd/commit/b565b4b3b919b71b98ea2517670bc1ef00e00dc9))
* 优化证书流水线创建,支持选择分组 ([d613aa8](https://github.com/certd/certd/commit/d613aa8f3e85d8dc475ef1b62d49394ce7fd7d24))
## [1.33.5](https://github.com/certd/certd/compare/v1.33.4...v1.33.5) (2025-04-17)
### Performance Improvements
* 登录支持双重认证 ([48aef25](https://github.com/certd/certd/commit/48aef25b3f6499d674ca4e4ef16f4c62399fb735))
* 多重认证登录 ([0f82cf4](https://github.com/certd/certd/commit/0f82cf409bc60706ab07e4ca4f272b9a1ca7eecb))
* 优化部署到华为云CDN支持先上传到ccm再使用证书id部署修复offline状态下导致部署报错的bug ([79df39a](https://github.com/certd/certd/commit/79df39acabab10ae7e1864dadcdc186bb007a3c5))
## [1.33.4](https://github.com/certd/certd/compare/v1.33.3...v1.33.4) (2025-04-15)
### Bug Fixes
* 补充类型断言 ([2143dff](https://github.com/certd/certd/commit/2143dff2ae96e6a78bef9f0498e36f8cd9e6941f))
* 修复腾讯云部署到任意资源插件,无法使用之前已上传的腾讯云证书问题 ([32c714d](https://github.com/certd/certd/commit/32c714d1b6e68c71a74a7452115040c87ac4bfdc))
### Performance Improvements
* 插件支持导入导出 ([cf8abb4](https://github.com/certd/certd/commit/cf8abb45282070c8ba91469f93fd379fabf1f74a))
* 支持上传证书到华为云CCM ([cfd3b66](https://github.com/certd/certd/commit/cfd3b66be9ebf53a26693057e70ed60c3f116be9))
## [1.33.3](https://github.com/certd/certd/compare/v1.33.2...v1.33.3) (2025-04-14)
### Bug Fixes
* 修复登录错误次数过多阻止再次登录逻辑 ([bf4d191](https://github.com/certd/certd/commit/bf4d191c8bd2f9209eb6768f662b9c77de99e998))
## [1.33.2](https://github.com/certd/certd/compare/v1.33.1...v1.33.2) (2025-04-12)
### Bug Fixes
* 修复某些情况下无法输出日志的bug ([70101bf](https://github.com/certd/certd/commit/70101bfa7ade65678d9202c804bbae2cb808b594))
### Performance Improvements
* 修复内置插件分页查询逻辑 ([a2710dd](https://github.com/certd/certd/commit/a2710ddc2525e4e637fd157f0180e6d3b801c8be))
## [1.33.1](https://github.com/certd/certd/compare/v1.33.0...v1.33.1) (2025-04-12)
### Bug Fixes
* 修复阿里云cdn证书部署失败问题增加certname参数传入 ([965dc2c](https://github.com/certd/certd/commit/965dc2cb476f690af716f291c6b20ba98be0c8f0))
* 修复ssh插件报length空指针的bug ([9c4cbe1](https://github.com/certd/certd/commit/9c4cbe17a22b548611cf1fbefecc83a421788e42))
### Performance Improvements
* 镜像支持armv7 ([f78cbed](https://github.com/certd/certd/commit/f78cbed4d817859721fdafe7d348864848d0dfbf))
# [1.33.0](https://github.com/certd/certd/compare/v1.32.0...v1.33.0) (2025-04-11)
### Bug Fixes
* 升级mysql驱动支持mysql8最新版本的认证 ([2f5ed3a](https://github.com/certd/certd/commit/2f5ed3aead97641f2c80d692a50226839016df0b))
* 修复eab授权没有email绑定的bug ([2f1683b](https://github.com/certd/certd/commit/2f1683b26acebbfb7d6e2d751435be04a4e7cab4))
### Features
* 支持在线自定义插件,无需源码开发 ([d0d9d68](https://github.com/certd/certd/commit/d0d9d68fe6740f6ff49fe40b7c9917c5a2e4b442))
* **lego:** support set key type ([f3bf4fa](https://github.com/certd/certd/commit/f3bf4faee0be5bdbfdbcf70a502849ed4c8ed4c4))
* release image to ghcr ([9b536af](https://github.com/certd/certd/commit/9b536af9e656dc89e2a87078c129cad6f591e467))
### Performance Improvements
* 修复tab页缓存问题 ([64e5449](https://github.com/certd/certd/commit/64e5449ab3c6b219b0e89eddad14bfb6b71a0650))
* 隐藏运行策略选项 ([2951df0](https://github.com/certd/certd/commit/2951df0cd94c23e2efee84ff1b843055aac56cae))
* 增加手动上传证书功能说明 ([5d083a1](https://github.com/certd/certd/commit/5d083a153637caddbc6f44e915d9fb2d1ae87b33))
# [1.32.0](https://github.com/certd/certd/compare/v1.31.11...v1.32.0) (2025-04-04)
### Bug Fixes
* 创建cname记录移除域名两端的空格 ([903a413](https://github.com/certd/certd/commit/903a4131ab5f42c8286cd2150ed1032d486fda2f))
* 修复从本地dns获取记录报错的bug ([c39b1bf](https://github.com/certd/certd/commit/c39b1bf823ddc6216bed2049e4c87e6107def08a))
### Features
* 优化证书申请速度修复某些情况下letsencrypt 校验失败的问题 ([857589b](https://github.com/certd/certd/commit/857589b365c6f709e0ae67914d2f50ce182e6dd6))
### Performance Improvements
* 优化华为dns解析记录创建和删除问题 ([0948c5b](https://github.com/certd/certd/commit/0948c5bc691d2ee6eb47c72a85da1b7453361878))
* 又拍云支持云存储 ([9339b78](https://github.com/certd/certd/commit/9339b78f801d193472c0af25749e8e7a27ffb7af))
* 又拍云支持云存储 ([8449f85](https://github.com/certd/certd/commit/8449f8580da90c1f6b5d02d07c3236ebaf6cf161))
## [1.31.11](https://github.com/certd/certd/compare/v1.31.10...v1.31.11) (2025-04-02)
### Bug Fixes
* 修复ssh支持键盘事件登录 ([8145808](https://github.com/certd/certd/commit/8145808c4370364377b4ffe3ae88ff465b49f20b))
### Performance Improvements
* 支持部署到京东云cdn ([6f17c70](https://github.com/certd/certd/commit/6f17c700b84965baa01b40fe2abaa0a91bcbaffd))
* 支持京东云dns申请证书 ([04d79f9](https://github.com/certd/certd/commit/04d79f9117670be504960b018fd49ae3bf7c1c11))
## [1.31.10](https://github.com/certd/certd/compare/v1.31.9...v1.31.10) (2025-03-29)
### Performance Improvements
* tab增加图标显示 ([a03ae5a](https://github.com/certd/certd/commit/a03ae5a216a1df2c1d3da12ae18dcd0f089a92d3))
* 升级lego版本到4.22.2 ([4e15556](https://github.com/certd/certd/commit/4e15556e5e8100719497edb1729570d5a29668e1))
* 优化华为dns接口报错信息输出 ([bf30b7a](https://github.com/certd/certd/commit/bf30b7afaef623dd8126570344f1fcc2c06f1215))
## [1.31.9](https://github.com/certd/certd/compare/v1.31.8...v1.31.9) (2025-03-28)
### Bug Fixes
* 修复华为云dns接口请求出错的bug ([caa15b4](https://github.com/certd/certd/commit/caa15b47355363cbb8847f415ff12363cd53eeda))
* 修复某些情况下站点证书监控报undefined.includes的错误 ([0b6618f](https://github.com/certd/certd/commit/0b6618ff709322a0eeba78953c8c6e9d073d083a))
* 修复网站证书监控https port设置无效的bug ([cc8da0c](https://github.com/certd/certd/commit/cc8da0cf130f0c469371b59ac5bd04567f4a4414))
### Performance Improvements
* 站点监控保存时异步检查 ([993bc74](https://github.com/certd/certd/commit/993bc7432fce2d954e9897ed85b54f22150bfc7e))
* dns支持火山引擎 ([99ff879](https://github.com/certd/certd/commit/99ff879d93658c29ea493a4bde7e9e3f85996d64))
## [1.31.8](https://github.com/certd/certd/compare/v1.31.7...v1.31.8) (2025-03-26)
### Bug Fixes
* 修复编辑通知勾选默认导致出现多个默认通知的bug ([6cd7bdd](https://github.com/certd/certd/commit/6cd7bddc37da8b0d7b9860fd9a26ddfe84c869a7))
* 修复网站监控无法设置端口的bug ([27a8a57](https://github.com/certd/certd/commit/27a8a57cf52b4bf83d628aa3049be1efaa74f29c))
* 修复lego模式无法创建流水线的bug ([687bb8a](https://github.com/certd/certd/commit/687bb8a2376d0de7b72739a174e4a9560581f866))
### Performance Improvements
* 优化通知格式 ([c3c5006](https://github.com/certd/certd/commit/c3c5006daa39c20624cb58864f2b92b230a38a7a))
* 优化scp上传 ([e51123a](https://github.com/certd/certd/commit/e51123a95131cc76d655937488caf08956a67020))
* 优化txt本地校验效率 ([fd507f2](https://github.com/certd/certd/commit/fd507f269253607e68c5c099c99e0de11636f229))
* 支持又拍云cdn ([fd0536b](https://github.com/certd/certd/commit/fd0536bd4b41f15b6b5d42e0b447f0dcbf73b8a8))
* 支持又拍云cdn ([57389a7](https://github.com/certd/certd/commit/57389a79a1a61c45d081712562f8b33c9633158e))
## [1.31.7](https://github.com/certd/certd/compare/v1.31.6...v1.31.7) (2025-03-24)
### Performance Improvements
* 增加服务器时间警告 ([d66ade4](https://github.com/certd/certd/commit/d66ade4e4783850b6c7625c6f164a5a0fc0aa509))
* 支持部署到lucky ([e18e399](https://github.com/certd/certd/commit/e18e399ce6529e8c7e36b56c5f674cfdbbd3d3d1))
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes

View File

@@ -0,0 +1,88 @@
# 授权插件Demo
```ts
import { AccessInput, BaseAccess, IsAccess } from '@certd/pipeline';
import { isDev } from '../../utils/env.js';
/**
* 这个注解将注册一个授权配置
* 在certd的后台管理系统中用户可以选择添加此类型的授权
*/
@IsAccess({
name: 'demo',
title: '授权插件示例',
icon: 'clarity:plugin-line',
desc: '',
})
export class DemoAccess extends BaseAccess {
/**
* 授权属性配置
*/
@AccessInput({
title: '密钥Id',
component: {
placeholder: 'demoKeyId',
},
required: true,
})
demoKeyId = '';
/**
* 授权属性配置
*/
@AccessInput({
//标题
title: '密钥串',
component: {
//input组件的placeholder
placeholder: 'demoKeySecret',
},
//是否必填
required: true,
//改属性是否需要加密
encrypt: true,
})
//属性名称
demoKeySecret = '';
}
new DemoAccess();
```
# 阿里云授权
```ts
import { IsAccess, AccessInput, BaseAccess } from "@certd/pipeline";
@IsAccess({
name: "aliyun",
title: "阿里云授权",
desc: "",
icon: "ant-design:aliyun-outlined",
order: 0,
})
export class AliyunAccess extends BaseAccess {
@AccessInput({
title: "accessKeyId",
component: {
placeholder: "accessKeyId",
},
helper: "登录阿里云控制台->AccessKey管理页面获取。",
required: true,
})
accessKeyId = "";
@AccessInput({
title: "accessKeySecret",
component: {
placeholder: "accessKeySecret",
},
required: true,
encrypt: true,
helper: "注意证书申请需要dns解析权限其他阿里云插件需要对应的权限比如证书上传需要证书管理权限嫌麻烦就用主账号的全量权限的accessKey",
})
accessKeySecret = "";
}
new AliyunAccess();
```

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -7,16 +7,22 @@ https://afdian.com/a/greper
1. 可加入发电专属群,可以获得作者一对一技术支持
2. 您的需求我们将优先实现,并且将作为专业版功能提供
3. 一年期专业版激活码
4. 赠送国外免费服务器部署方案0成本使用Certd可能需要翻墙不过现在性能越来越差了
## 专业版特权对比
| 功能 | 免费版 | 专业版 |
|---------|------------------------|-----------------------|
| 免费证书申请 | 免费无限制 | 免费无限制 |
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署等 | 支持群晖、宝塔、1Panel等持续开发中 |
| 发邮件功能 | 需要配置 | 免配置 |
| 证书流水线条数 | 10条 | 无限制 |
| 功能 | 免费版 | 专业版 |
|---------|------------------------|-----------------------------|
| 免费证书申请 | 免费无限制 | 免费无限制 |
| 自动部署插件 | 阿里云CDN、腾讯云、七牛CDN、主机部署等 | 支持群晖、宝塔、1Panel等持续开发中 |
| 证书流水线条数 | 无限制 | 无限制 |
| 站点证书监控 | 限制1条 | 无限制 |
| 通知 | 邮件通知、自定义webhook | 邮件免配置、企微、飞书、anpush、server酱等 |
## 专业版激活方式
![](./images/plus.png)
发电后,在私信中获取激活码
************************

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

@@ -0,0 +1,27 @@
# 站点隐藏
* 一般来说Certd设置好之后很少需要访问。
* 所以我们`平时`可以把`站点访问关闭`,需要的时候再打开,减少站点被攻击的风险
## 1、开启站点隐藏
`系统管理->系统设置->安全设置->站点隐藏 `
![](./images/hidden1.png)
:::warning
注意保存好`解除地址``解除密码`
:::
## 2、临时关闭站点隐藏
访问上面的`解除地址`,输入`解除密码``临时解除`站点隐藏
![](./images/hidden2.png)
## 3、忘记解除地址和解除密码怎么办
登录服务器,在数据库平级的目录下创建`.unhidden`命名的空白文件,即可临时解除站点隐藏
临时解除后会自动删除`.unhidden`文件,请尽快设置好新的`解除地址``解除密码`,并记住

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@@ -0,0 +1,49 @@
# 安全特性
Certd 存储了证书以及授权等敏感数据,所以需要严格保障安全。
我们提供了以下安全特性,以及安全生产建议(请遵照建议进行生产部署以保障数据安全)
## 一、站点安全特性
### 1、 授权数据加密存储【默认开启】
* 所有的授权敏感字段会加密后存储
* 每个用户独立维护授权数据,连管理员都无权查看
![星号部分为加密数据](./images/access.png)
星号部分为加密数据
### 2、 密码防爆破【默认开启】
* 登录失败次数过多账号将被锁定最高24小时(重启服务可解除锁定)
* 用户登录密码加密hash后存储无法计算出密码明文
![](./images/login.png)
### 3、站点隐藏【建议开启】
* 一般来说Certd设置好之后后续很少需要访问修改。
* 所以我们平时可以把站点访问关闭,需要的时候再打开,减少站点被攻击的风险
* 请前往 `系统管理->系统设置->安全设置->开启站点隐藏`
![](./images/hidden.png)
点击查看 [站点隐藏功能详细使用说明](./hidden/)
### 4、登录双重验证
支持2FA双重认证
![](./images/2fa.png)
### 5、数据库自动备份【建议开启】
* [自动备份设置说明](../../use/backup/)
## 二、安全生产建议
尽管`Cert`本身实现了很多安全特性,但`外部环境的安全`仍需要您来确保。
`务必`遵循如下建议做好安全防护
*`务必`使用`HTTPS协议`访问本应用,避免被中间人攻击
*`务必`使用`web应用防火墙`防护本应用防止XSS、SQL注入等攻击
*`务必`做好`服务器本身`的安全防护,防止数据库泄露
*`务必`做好[`数据备份`](../../use/backup/),避免数据丢失
*`务必`修改管理员账号用户名且建议将admin注册为普通用户且设置为禁用。
* 建议开启[`站点隐藏`](./hidden/)功能

View File

@@ -9,6 +9,10 @@
* `greper/certd:latest`
* `greper/certd:armv7``greper/certd:[version]-armv7`
## GitHub Packages地址:
* `ghcr.io/certd/certd:latest`
* `ghcr.io/certd/certd:armv7``ghcr.io/certd/certd:[version]-armv7`
*
## 镜像构建公开
镜像构建通过`Actions`自动执行,过程公开透明,请放心使用
* [点我查看镜像构建日志](https://github.com/certd/certd/actions/workflows/build-image.yml)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -6,29 +6,30 @@ Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工
关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具
## 一、特性
![首页](../images/start/home.png)
## 1、关于证书续期
>* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
>* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
>* 免费证书过期时间90天以后可能还会缩短所以自动化部署必不可少
## 2、项目特性
本项目不仅支持证书申请过程自动化,还可以自动化部署更新证书,让你的证书永不过期。
* 全自动申请证书(支持所有注册商注册的域名)
* 全自动部署更新证书(目前支持部署到主机、部署到阿里云、腾讯云等目前已支持60+部署插件)
* 支持通配符域名/泛域名,支持多个域名打到一个证书上
* 邮件通知
* 私有化部署,保障数据安全
* 支持SQLite、Postgresql、MySQL数据库
* 全自动申请证书(支持所有注册商注册的域名支持DNS-01、HTTP-01、CNAME代理等多种域名验证方式
* 全自动部署更新证书(目前支持部署到主机、阿里云、腾讯云等100+部署插件)
* 支持通配符域名/泛域名,支持多个域名打到一个证书上支持pem、pfx、der、jks等多种证书格式
* 邮件通知、webhook通知、企微、钉钉、飞书、anpush等多种通知方式
* 私有化部署,数据保存本地,安装升级非常简单快捷
* 镜像由Github Actions构建过程公开透明
* 授权加密站点隐藏2FA密码防爆破等多重安全保障
* 支持SQLitePostgreSQL、MySQL多种数据库
* 开放接口支持
* 站点证书监控
* 多用户管理
## 二、一些说明
* 本项目申请证书过程遵循acme协议
* 需要验证域名所有权,一般有两种方式
* http-01 在网站根目录下放置一份txt文件
* dns-01 需要给域名添加txt解析记录通配符域名只能用这种方式本项目仅支持dns-01
* 证书续期:
* 实际上没有办法不改变证书文件本身情况下直接续期或者续签。
* 我们所说的续期,其实就是按照全套流程重新申请一份新证书,然后重新部署上去。
* 免费证书过期时间90天以后可能还会缩短所以自动化部署必不可少
* 设置每天自动运行当证书过期前35天会自动重新申请证书并部署
![](../images/intro/intro.svg)
## 三、证书颁发机构对比
* Let's Encrypt申请最简单。
* Google: 大厂光环兼容性好首次需要翻墙获取EAB。
* ZeroSSL 需要EAB获取EAB无需翻墙。

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

View File

@@ -10,23 +10,24 @@
* 登录宝塔面板,在菜单栏中点击 Docker首次进入会提示安装Docker服务点击立即安装按提示完成安装
### 2、部署certd
以下两种方式任选一种:
#### 2.1 应用商店一键部署【推荐】
#### 2.1 应用商店方式一键部署【推荐】
* 在应用商店中找到`certd`(要先点右上角更新应用)
*宝塔Docker应用商店中找到`certd`(要先点右上角更新应用)
* 点击安装,配置域名等基本信息即可完成安装
> 需要宝塔9.2.0及以上版本才支持
#### 2.2 容器编排部署
#### 2.2 容器编排方式部署
1. 打开`docker-compose.yaml`,整个内容复制下来
1. 打开`docker-compose.yaml`,整个内容复制下来
https://gitee.com/certd/certd/raw/v2/docker/run/docker-compose.yaml
然后到宝塔里面进到docker->容器编排->添加容器编排
![](./images/1.png)
点击确定,等待启动完成
然后到宝塔里面进到docker->容器编排->添加容器编排
![](./images/1.png)
点击确定,等待启动完成
![](./images/2.png)
> certd默认使用sqlite数据库另外支持`mysql`和`postgresql`数据库,[点我了解如何切换其他数据库](../database)
@@ -34,21 +35,24 @@
## 二、访问应用
http://ip:7001
https://ip:7002
默认账号密码
admin/123456
http://ip:7001
https://ip:7002
默认账号密码
admin/123456
登录后请及时修改密码
## 三、如何升级
宝塔升级certd非常简单
`docker`->`容器编排`->`左侧选择Certd`->`更新镜像`
打开容器页面: `docker`->`容器编排`->`左侧选择Certd`->`更新镜像`
![img.png](./images/upgrade.png)
## 四、数据备份
部署方式不同,数据保存位置不同
### 4.1 应用商店部署方式
点击进入安装路径,数据保存在`./data`目录下,可以手动备份
@@ -62,7 +66,6 @@ admin/123456
数据默认保存在`/data/certd`目录下,可以手动备份
### 4.3 自动备份
> 建议配置一条 [数据库备份流水线](../../use/backup/),自动备份
@@ -70,3 +73,15 @@ admin/123456
## 五、备份恢复
将备份的`db.sqlite`及同目录下的其他文件一起覆盖到原来的位置重启certd即可
## 六、宝塔部署相关问题排查
### 1. 无法访问Certd
1. 确认服务器的安全规则,是否放开了对应端口
2. 确认宝塔防火墙是否放开对应端口
3. 尝试将Certd容器加入宝塔的`bridge`网络
![](./images/network.png)
### 2. 动态IP无法加白名单问题
[Nginx代理解决方案](../../use/baota/white_list.md)

View File

@@ -55,6 +55,11 @@ https://your_server_ip:7002
## 二、升级
::: warning
如果您是第一次升级certd版本切记切记先备份一下数据
:::
### 如果使用固定版本号
1. 修改`docker-compose.yaml`中的镜像版本号
2. 运行`docker compose up -d` 即可

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

View File

@@ -1,17 +1,21 @@
# 源码部署
如果没有`git``nodejs`基础,不推荐
如果没有开发基础、没有运维基础、没有`git``nodejs`基础,强烈不推荐此方式
## 一、源码安装
### 环境要求
- nodejs 20 及以上
- nodejs 22 及以上
### 源码启动
```shell
# 克隆代码
git clone https://github.com/certd/certd --depth=1
# git checkout v1.x.x # 当v2主干分支代码无法正常启动时可以尝试此命令1.x.x换成最新版本号
cd certd
# 启动服务
./start.sh
./start.sh
```
>如果是windows请先安装`git for windows` ,然后右键,选择`open git bash here`打开终端,再执行`./start.sh`命令
@@ -20,9 +24,9 @@ cd certd
### 访问测试
http://your_server_ip:7001
https://your_server_ip:7002
默认账号密码admin/123456
http://your_server_ip:7001
https://your_server_ip:7002
默认账号密码admin/123456
记得修改密码
@@ -36,19 +40,39 @@ cp -rf ./packages/ui/certd-server/data ../certd-data-backup
git pull
# 如果提示pull失败可以尝试强制更新
# git checkout v2 -f && git pull
# git checkout v2 -f && git pull
# 先停止旧的服务,7001是certd的默认端口
kill -9 $(lsof -t -i:7001)
# 重新编译启动
./start.sh
```
::: warning
升级certd版本前切记切记先备份一下数据
:::
## 三、数据备份
> 数据默认保存在 `./packages/ui/certd-server/data` 目录下
> 数据默认保存在 `./packages/ui/certd-server/data` 目录下
> 建议配置一条[数据库备份流水线](../../use/backup/) 自动备份
## 四、备份恢复
将备份的`db.sqlite`及同目录下的其他文件覆盖到原来的位置重启certd即可
## 六、常见问题
### 1. npm install better-sqlite3 时提示node-gyp需要vscode环境编译
1. 首先确保node版本为22以上
2. 将下面两行加到 ~/.npmrc 里面
3. 重新install
> better_sqlite3_binary_host=https://registry.npmmirror.com/-/binary/better-sqlite3
> better_sqlite3_binary_host_mirror=https://registry.npmmirror.com/-/binary/better-sqlite3

View File

@@ -8,5 +8,59 @@
3. [1Panel面板方式部署升级](./1panel/#三、升级)
4. [源码方式部署](./source/#二、升级)
::: warning
如果您是第一次升级certd版本切记切记先备份一下数据
:::
## 升级日志
可以查看最新版本号,以及所有版本的更新日志
[CHANGELOG](../changelogs/CHANGELOG.md)
## 自动升级配置
### 1. 方法一使用watchtower监控
修改docker-compose.yaml文件增加如下配置 使用watchtower监控自动升级
```yaml
services:
certd:
...
labels:
com.centurylinklabs.watchtower.enable: "true"
# ↓↓↓↓ --------------------------------------------------------- 自动升级上面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 分钟检查一次更新
```
### 2. 方法二使用Certd版本监控功能
选择Github-检查Release版本插件
![](./images/github-release.png)
按如下图填写配置
![](./images/github-release-2.png)
检测到新版本后执行宿主机升级命令:
```shell
# 拉取最新镜像
docker pull registry.cn-shenzhen.aliyuncs.com/handsfree/certd:latest
# 升级容器命令, 替换成你自己的certd更新命令
export RESTART_CERT='sleep 10; cd ~/deploy/certd/ ; docker compose down; docker compose up -d'
# 构造一个脚本10s后在后台执行避免容器销毁时执行太快导致流水线任务无法结束
nohup sh -c '$RESTART_CERT' >/dev/null 2>&1 & echo '10秒后重启' && exit
```

View File

@@ -9,6 +9,7 @@
https://apifox.com/apidoc/shared-2e76f8c4-7c58-413b-a32d-a1316529af44/254949529e0
## Token生成方法
header中传入x-certd-token即可调用开放接口
@@ -17,5 +18,20 @@ header中传入x-certd-token即可调用开放接口
3、将content加上keySecret进行签名 sign = md5(content + keySecret)
4、然后将content和sign分别base64后用.号连接: x-certd-token = base64(content) +"."+base64(sign)
## 补充说明
1.证书申请接口支持证书id和域名两种方式获取证书。
2.autoApply=true将在没有证书时自动触发申请申请过程中会提示`正在申请中`,可轮循获取状态,直到证书申请成功。
## SDK
待开发
待开发
## 客户端工具
### SSL-Assistant
`SSL Assistant` 是一个基于 Go 语言开发的跨平台证书部署管理助手。
支持自动扫描主机`Nginx`配置然后从Certd拉取证书并部署。
在不想暴露ssh主机密码情况下该工具非常好用。
开源地址: https://github.com/Youngxj/SSL-Assistant

View File

@@ -1,5 +0,0 @@
# 插件列表
![img_1.png](../images/plugins/list.png)

View File

@@ -0,0 +1,77 @@
# 授权列表
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **主机登录授权** | |
| 2.| **阿里云授权** | |
| 3.| **阿里云ESA授权** | |
| 4.| **腾讯云** | |
| 5.| **华为云授权** | |
| 6.| **火山引擎** | |
| 7.| **京东云** | |
| 8.| **七牛云授权** | |
| 9.| **天翼云授权** | |
| 10.| **baota授权** | |
| 11.| **百度云授权** | |
| 12.| **EAB授权** | ZeroSSL证书申请需要EAB授权 |
| 13.| **google cloud** | 谷歌云授权 |
| 14.| **SFTP授权** | |
| 15.| **阿里云OSS授权** | 包含地域和Bucket |
| 16.| **FTP授权** | |
| 17.| **腾讯云COS授权** | 腾讯云对象存储授权,包含地域和存储桶 |
| 18.| **七牛OSS授权** | |
| 19.| **s3/minio授权** | S3/minio oss授权 |
| 20.| **宝塔云WAF授权** | 用于连接和管理宝塔云WAF服务的授权配置 |
| 21.| **易盾DCDN授权** | https://user.yiduncdn.com |
| 22.| **易盾rcdn授权** | 易盾CDN每月免费30G[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) |
| 23.| **易发云短信** | sms.yfyidc.cn/ |
| 24.| **cdnfly授权** | |
| 25.| **群晖登录授权** | |
| 26.| **k8s授权** | |
| 27.| **1panel授权** | 账号和密码 |
| 28.| **LeCDN授权** | |
| 29.| **白山云授权** | |
| 30.| **plesk授权** | |
| 31.| **易支付** | |
| 32.| **支付宝** | |
| 33.| **微信支付** | |
| 34.| **长亭雷池授权** | |
| 35.| **lucky** | |
| 36.| **括彩云cdn授权** | 括彩云CDN每月免费30G[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) |
| 37.| **uniCloud** | unicloud授权 |
| 38.| **猫云授权** | |
| 39.| **西部数码授权** | |
| 40.| **多吉云** | |
| 41.| **我爱云授权** | 我爱云CDN |
| 42.| **CacheFly** | CacheFly |
| 43.| **Gcore** | Gcore |
| 44.| **亚马逊云aws授权** | |
| 45.| **亚马逊云科技(国区)授权** | |
| 46.| **dns.la授权** | |
| 47.| **又拍云** | |
| 48.| **51dns授权** | |
| 49.| **FlexCDN授权** | |
| 50.| **farcdn授权** | |
| 51.| **cloudflare授权** | |
| 52.| **Github授权** | |
| 53.| **namesilo授权** | |
| 54.| **proxmox** | |
| 55.| **网宿授权** | |
| 56.| **金山云授权** | |
| 57.| **APISIX授权** | |
| 58.| **Dokploy授权** | |
| 59.| **godaddy授权** | |
| 60.| **新网授权** | |
| 61.| **新网授权(代理方式)** | |
| 62.| **新网互联授权** | 仅支持代理账号ip需要加入白名单 |
| 63.| **雨云授权** | https://app.rainyun.com/ |
<style module>
table th:first-of-type {
width: 65px;
}
table th:nth-of-type(2) {
width: 240px;
}
</style>

View File

@@ -0,0 +1,174 @@
# 任务插件
`102` 款任务插件
## 1. 证书申请
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **证书申请JS版** | 免费通配符域名证书申请,支持多个域名打到同一个证书上 |
| 2.| **证书申请Lego** | 支持海量DNS解析提供商推荐使用一样的免费通配符域名证书申请支持多个域名打到同一个证书上 |
| 3.| **商用证书托管** | 手动上传自定义证书后,自动部署(每次证书有更新,都需要手动上传一次) |
## 2. 主机
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **FTP-上传证书到FTP** | 将证书上传到FTP服务器 |
| 2.| **IIS-部署到IIS站点** | |
| 3.| **主机-执行远程主机脚本命令** | 可以执行重启nginx等操作让证书生效 |
| 4.| **主机-部署证书到SSH主机** | SFTP上传证书到主机然后SSH执行部署脚本命令 |
| 5.| **主机-复制到本机** | 【仅管理员使用】实际上是复制证书到docker容器内的某个路径需要做目录映射到宿主机 |
| 6.| **上传证书到对象存储OSS** | 支持阿里云OSS、腾讯云COS、七牛云KODO、S3、MinIO、FTP、SFTP |
## 3. CDN
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **易盾-部署到易盾DCDN** | 主要是防御http://user.yiduncdn.com/ |
| 2.| **易盾-部署到易盾RCDN** | 易盾CDN每月免费30G[注册即领](https://rhcdn.yiduncdn.com/register?code=8mn536rrzfbf8) |
| 3.| **cdnfly-部署证书到cdnfly** | cdnfly |
| 4.| **LeCDN-更新证书** | |
| 5.| **LeCDN-更新证书V2** | 支持新版本LeCDN |
| 6.| **白山云-更新证书** | |
| 7.| **天翼云-部署证书到CDN** | 部署证书到天翼云CDN和全站加速 |
| 8.| **括彩云-部署到括彩云CDN** | 括彩云CDN每月免费30G[注册即领](https://kuocaicdn.com/register?code=8mn536rrzfbf8) |
| 9.| **多吉云-部署到多吉云CDN** | |
| 10.| **我爱云-部署证书到我爱云CDN** | 部署证书到我爱云CDN |
| 11.| **CacheFly-部署证书到CacheFly** | 部署证书到 CacheFly |
| 12.| **Gcore-部署证书到Gcore** | 仅上传 并不会部署到cdn |
| 13.| **Gcore-刷新Gcore证书** | 刷新现有的证书 |
| 14.| **又拍云-部署证书到CDN/USS** | 支持又拍云CDN又拍云云存储USS |
| 15.| **FlexCDN-更新证书** | |
| 16.| **farcdn-更新证书** | www.farcdn.net |
| 17.| **雨云-更新证书** | app.rainyun.com |
| 18.| **网宿-更新证书** | 网宿证书自动更新 |
| 19.| **金山云-更新CDN证书** | 金山云自动更新CDN证书 |
| 20.| **APISIX-更新证书** | 自动更新APISIX证书 |
## 4. 面板
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **宝塔-面板证书部署** | 部署宝塔面板本身的ssl证书 |
| 2.| **宝塔-网站证书部署** | 部署宝塔管理的站点的ssl证书目前支持宝塔网站站点、docker站点等。本插件也支持aaPanel。 |
| 3.| **宝塔-WAF证书部署** | 部署宝塔云WAF/aaWAF |
| 4.| **宝塔win-网站证书部署** | 部署到Windows版宝塔管理的站点的ssl证书 |
| 5.| **宝塔-删除过期证书** | 删除证书夹中过期证书 |
| 6.| **群晖-部署证书到群晖面板** | Synology支持6.x以上版本 |
| 7.| **K8S-部署证书到Secret** | 部署证书到k8s的secret |
| 8.| **K8S-Ingress 证书部署** | 部署证书到k8s的Ingress |
| 9.| **1Panel-部署证书到1Panel** | 更新1Panel的证书 |
| 10.| **Plesk-部署Plesk网站证书** | |
| 11.| **雷池-更新证书** | 更新长亭雷池WAF的证书 |
| 12.| **lucky-更新Lucky证书** | |
| 13.| **uniCloud-部署到服务空间** | 部署到服务空间 |
| 14.| **威联通-部署证书到威联通** | 部署证书到qnap |
| 15.| **飞牛NAS-部署证书** | |
| 16.| **Proxmox-上传证书到Proxmox** | |
| 17.| **Dokploy-更新证书** | 自动更新Dokploy证书 |
## 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自定义域名不是上传到阿里云oss |
| 6.| **阿里云-上传证书到阿里云CAS** | 上传证书到阿里云数字证书管理服务CAS注意不会部署到任何应用上如果不想在阿里云上同一份证书上传多次可以把此任务作为前置任务其他阿里云任务证书那一项选择此任务的输出 |
| 7.| **阿里云-部署至阿里云WAF** | 部署证书到阿里云WAF |
| 8.| **阿里云-部署至ALB应用负载均衡** | ALB,更新监听器的默认证书 |
| 9.| **阿里云-部署至NLB网络负载均衡** | NLB,网络负载均衡,更新监听器的默认证书 |
| 10.| **阿里云-部署至CLB(传统负载均衡)** | 部署证书到阿里云CLB(传统负载均衡) |
| 11.| **阿里云-部署至阿里云FC(3.0)** | 部署证书到阿里云函数计算FC3.0 |
| 12.| **阿里云-部署至ESA** | 部署证书到阿里云ESA(边缘安全加速),自动删除过期证书 |
| 13.| **阿里云-部署至VOD** | 部署证书到阿里云视频点播vod |
| 14.| **阿里云-部署证书至API网关** | 自动部署域名证书至阿里云API网关APIGateway |
| 15.| **阿里云-部署至云原生API网关/AI网关** | 自动部署域名证书至云原生API网关、AI网关 |
## 6. 华为云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **华为云-部署证书至CDN** | |
| 2.| **华为云-上传证书至CCM** | 上传证书到华为云云证书管理CCM |
| 3.| **华为云-部署证书至OBS** | |
## 7. 腾讯云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **腾讯云-部署证书到任意云资源** | 支持负载均衡、CDN、DDoS、直播、点播、Web应用防火墙、API网关、TEO、容器服务、对象存储、轻应用服务器、云原生微服务、云开发 |
| 2.| **腾讯云-部署到CLB** | 暂时只支持单向认证证书,暂时只支持通用负载均衡 |
| 3.| **腾讯云-部署到CDN废弃** | 已废弃请使用v2版 |
| 4.| **腾讯云-部署到CDN-v2** | 推荐使用 |
| 5.| **腾讯云-上传证书到腾讯云** | 上传成功后输出tencentCertId |
| 6.| **腾讯云-部署证书到COS** | 部署到腾讯云COS源站域名证书【注意很不稳定需要重试很多次偶尔才能成功一次】 |
| 7.| **腾讯云-部署到腾讯云EO** | 腾讯云边缘安全加速平台EdgeOne(EO),必须配置上传证书到腾讯云任务 |
| 8.| **腾讯云-删除即将过期证书** | 仅删除未使用的证书 |
| 9.| **腾讯云-部署到TKE** | 修改TKE集群密钥配置支持Opaque和TLS证书类型。注意
1. serverless集群请使用K8S部署插件
2. Opaque类型需要【上传到腾讯云】作为前置任务
3. ApiServer需要开通公网访问或者certd可访问实际上底层仍然是通过KubeClient进行部署 |
| 10.| **腾讯云-部署到腾讯云直播** | https://console.cloud.tencent.com/live/ |
| 11.| **腾讯云-实例开关机** | 腾讯云实例开关机 |
| 12.| **腾讯云-更新证书(Id不变)** | 根据证书id一键更新腾讯云证书并自动部署Id不变注意该接口为腾讯云白名单功能非白名单用户无法使用该功能 |
## 8. 火山引擎
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **火山引擎-部署证书至CDN** | 支持网页,文件下载,音视频点播 |
| 2.| **火山引擎-部署证书至CLB** | 部署至火山引擎负载均衡 |
| 3.| **火山引擎-上传证书至证书中心** | 上传证书至火山引擎证书中心 |
| 4.| **火山引擎-部署证书至ALB** | 部署至火山引擎应用负载均衡 |
| 5.| **火山引擎-部署证书至Live** | 部署至火山引擎视频直播 |
| 6.| **火山引擎-部署证书至DCDN** | 部署至火山引擎全站加速 |
| 7.| **火山引擎-部署证书至VOD** | 部署至火山引擎视频点播(暂不可用) |
## 9. 京东云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **京东云-部署证书至CDN** | 京东云内容分发网络 |
| 2.| **京东云-更新已有证书** | 更新SSL数字证书中的证书 |
| 3.| **京东云-上传新证书** | 上传证书到SSL数字证书中心 |
## 10. 百度云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **百度云-部署证书到CDN** | 部署到百度云CDN |
| 2.| **百度云-部署证书到负载均衡** | 部署到百度云负载均衡包括BLB、APPBLB |
| 3.| **百度云-上传到证书托管** | 上传证书到百度云证书托管中心 |
## 11. 七牛云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **七牛云-部署证书至OSS** | 自动部署域名证书至七牛云KODO注意是自定义源站域名不是CDN域名 |
| 2.| **七牛云-部署证书至CDN/DCDN** | 自动部署域名证书至七牛云CDN、DCDN |
| 3.| **七牛云-上传证书到七牛云** | 上传到七牛云 |
## 12. 亚马逊云
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **AWS-部署证书到CloudFront** | 部署证书到 AWS CloudFront |
| 2.| **AWS-上传证书到ACM** | 上传证书 AWS ACM |
| 3.| **AWS(国区)-部署证书到CloudFront** | 部署证书到 AWS CloudFront |
## 13. 其他
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **Demo-测试插件** | |
| 2.| **等待** | 等待一段时间 |
| 3.| **邮件发送证书** | 通过邮件发送证书 |
| 4.| **webhook方式部署证书** | 调用webhook部署证书 |
| 5.| **Github-检查Release版本** | 检查最新Release版本并推送消息 |
## 14. 管理
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **重启 Certd** | 【仅管理员可用】 重启 certd的https服务用于更新 Certd 的 ssl 证书 |
| 2.| **自定义js脚本** | 【仅管理员】运行自定义js脚本执行 |
| 3.| **数据库备份** | 【仅管理员可用】仅支持备份SQLite数据库 |
<style module>
table th:first-of-type {
width: 65px;
}
table th:nth-of-type(2) {
width: 240px;
}
</style>

View File

@@ -0,0 +1,30 @@
# DNS提供商
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **阿里云** | 阿里云DNS解析提供商 |
| 2.| **阿里ESA** | 阿里ESA DNS解析 |
| 3.| **火山引擎** | 火山引擎DNS解析提供商 |
| 4.| **京东云** | 京东云DNS解析提供商 |
| 5.| **新网** | 新网域名解析 |
| 6.| **新网(代理方式)** | 新网域名解析(代理方式) |
| 7.| **腾讯云** | 腾讯云域名DNS解析提供者 |
| 8.| **华为云** | 华为云DNS解析提供商 |
| 9.| **西部数码** | west dns provider |
| 10.| **dns.la** | dns.la |
| 11.| **雨云** | 雨云DNS解析提供商 |
| 12.| **cloudflare** | cloudflare dns provider |
| 13.| **namesilo** | namesilo dns provider |
| 14.| **godaddy** | GoDaddy |
| 15.| **51dns** | 51DNS |
| 16.| **新网互联** | 新网互联 |
<style module>
table th:first-of-type {
width: 65px;
}
table th:nth-of-type(2) {
width: 240px;
}
</style>

View File

@@ -0,0 +1,30 @@
# 通知插件
| 序号 | 名称 | 说明 |
|-----|-----|-----|
| 1.| **电子邮件** | 电子邮件通知 |
| 2.| **自定义webhook** | 根据模版自定义http请求 |
| 3.| **企业微信通知** | 企业微信群聊机器人通知 |
| 4.| **爱语飞飞微信通知(iyuu)** | https://iyuu.cn/ |
| 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通知 |
| 13.| **钉钉通知** | 钉钉群聊通知 |
| 14.| **VoceChat通知** | https://voce.chat |
| 15.| **OneBot V11 通知** | 通过动态拼接URL发送 OneBot V11 协议消息 |
| 16.| **MeoW通知** | https://api.chuckfang.com/ |
<style module>
table th:first-of-type {
width: 65px;
}
table th:nth-of-type(2) {
width: 240px;
}
</style>

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

46
docs/guide/qa/use.md Normal file
View File

@@ -0,0 +1,46 @@
# 常见问题
## 1. 是否支持IP证书
因为ACME协议不支持IP证书所以certd目前也不支持IP证书
## 2. 建议设置多长时间运行一次流水线
建议每天运行一次,检查证书过期时间
当证书没过期时,自动跳过部署
当证书到期前35天创建流水线时可以修改将会自动重新申请证书自动部署
## 3. too many certificates 错误
当出现如下报错时说明相同的域名短时间内申请超过5次
解决方案:可以加多一个子域名,重新执行就可以规避次错误
```
"detail": too many certificates (5) already issued for this exact set of idantifiers in the last 168hm0s
```
## 4. ssl.com报错 CAA record does not include ssl.com which is required to issue the certificate
ssl.com申请证书要求必须设置CAA记录表示允许ssl.com为该域名颁发证书
请按如下格式添加CAA记录
| 示例 | 类型 | 域名前缀 | flag | tag | 值 |
|-------|-----| -- |-----------|--------|----------------------|
| 顶级域名 | CAA | @ | 0 | issue | "ssl.com" (注意有双引号) |
| 一级泛域名 | CAA | * | 0 | issue/issuewild | "ssl.com" |
| 固定子域名 | CAA | sub | 0 | issue |"ssl.com" |
## 5. address family not supported
启动时出现此错误是由于您的服务器不支持绑定ipv6地址
请配置环境变量 certd_koa_hostname=0.0.0.0
在docker-compose.yml中添加如下配置
```yaml
service:
certd:
environment:
certd_koa_hostname: 0.0.0.0
```

View File

@@ -7,10 +7,16 @@
https://certd.handsfree.work/
> 注意数据将不定期清理,不定期停止定时任务,生产使用请自行部署
注册 -> 创建证书流水线 -> 添加部署任务 -> 测试运行
> 注意demo的数据将不定期清理生产使用请自行部署
> 包含敏感信息,务必自己本地部署进行生产使用
![首页](../images/start/home-2.png)
## 二、私有化部署
由于证书、授权信息等属于高度敏感数据,请务必私有化部署,保障数据安全

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

View File

@@ -0,0 +1,17 @@
# 部署证书到ESXi
使用`部署证书到主机插件`即可
## 开启ssh
登陆ESXi Web后台点击 主机 -> 操作 -> 服务 -> 启用 Secure ShellSSH打开SSH
## 添加部署到主机任务
![img.png](./images/ssh.png)
## 配置重启脚本
```bash
/etc/init.d/hostd restart
/etc/init.d/vpxa restart
```

View File

@@ -1,5 +1,6 @@
# 数据库自动备份
# 数据库备份
* 两种备份方法: 1、手动备份 2、自动备份
* 本文仅限sqlite数据库。
## 一、手动备份
数据库文件根据不同的部署方式保存的位置不一样,您可以手动复制出来进行备份

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

View File

@@ -0,0 +1,98 @@
# 宝塔IP白名单与动态IP问题
调用宝塔接口需要添加IP白名单但当certd部署在动态IP环境下时IP白名单就不好添加
本章节提供两种解决方案:
1. 小范围网段放开(简单)
2. nginx代理
## 一、放开小范围网段
家庭网络IP虽然会变动但是只会在小范围变的。
你可以分析规律,将变动的部分,设置成网段即可
> 比如出现过: 100.25.1.5 100.25.1.8
>
> 那么你可以配置 100.25.1.1-100.25.1.255
> 如果出现过: 100.25.1.5 100.25.4.8
>
> 可以尝试配置 100.25.*.5
## 二、nginx代理方案
通过在宝塔中配置一个nginx反向代理代理宝塔自己的地址
然后在nginx中配置放开certd需要的接口缩小影响范围
让nginx来充当防火墙
架构图如下:
```
只要将127.0.0.1加入白名单即可
certd --------> nginx -------> 宝塔
拦截除更新证书之外的地址
```
### 1. 添加nginx反向代理
![](./images/white-1.png)
### 2. 域名和代理目标
![](./images/white-2.png)
### 3. 设置放开哪些接口
![](./images/white-3.png)
![img.png](images/white-4.png)
将如下脚本填入上方文本域中,保存
```nginx configuration
set $allow_access false;
# 检查请求的URI是否在白名单中
if ($request_uri ~* "^/(site\?action=get_site_types)") {
# 允许测试
set $allow_access true;
}
if ($request_uri ~* "^/(config\?action=SavePanelSSL)") {
# 允许部署到宝塔面板本身证书
set $allow_access true;
}
if ($request_uri ~* "^/(mod/docker/com/set_ssl|site\?action=SetSSL|ssl\?action=GetSiteDomain|mod/docker/com/get_site_list)") {
# 允许部署宝塔网站证书
set $allow_access true;
}
if ($request_uri ~* "^/(ssl?action=remove_cloud_cert|ssl\?action=get_cert_list)") {
# 允许删除宝塔过期证书
set $allow_access true;
}
if ($request_uri ~* "^/(datalist/get_data_list|site/set_site_ssl)") {
set $allow_access true;
}
# 如果不在白名单返回403禁止访问
if ($allow_access = false) {
return 405;
}
```
### 4. 接口IP白名单添加127.0.0.1
![img.png](images/white-5.png)
### 5. certd中宝塔授权配置改成新的这个域名地址
![img.png](images/white-6.png)
点击测试检查是否ok ,到这里就可以正常部署证书了
### 6. 安全加强将请求地址改成https
在宝塔中配置证书部署任务,选择刚才新建的这个网站,给他部署证书
勾选强制https
![img.png](images/white-safe-1.png)
更换443端口【可选】
![img.png](images/white-safe-2.png)
禁止http访问

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

View File

@@ -0,0 +1,10 @@
# 二级子域名托管
如果你的域名是免费的二级域名比如sub.handsfree.work托管在CF或者阿里云上
在使用DNS方式校验时需要设置子域名托管
[阿里云子域名托管说明](https://help.aliyun.com/zh/dns/pubz-subdomain-management)
![img.png](./images/subdomain1.png)
![img_1.png](./images/subdomain2.png)

View File

Before

Width:  |  Height:  |  Size: 165 KiB

After

Width:  |  Height:  |  Size: 165 KiB

View File

@@ -2,19 +2,24 @@
## 配置步骤
1. 创建应用获取APPID
1. 注册支付宝商家账号
* 开通电脑网站支付产品(需营业执照) https://b.alipay.com/page/product-workspace/all-product
2. 开放平台创建应用获取APPID
* 登录支付宝开放平台进入开发者中心创建网页应用获取应用的AppId左上角复制
* 开发者中心https://open.alipay.com/develop/manage
2. 进入应用详情,选择开发设置,配置接口加签方式 (选择密钥类型)
3. 进入应用详情,选择开发设置,配置接口加签方式 (选择密钥类型)
* 参考文档https://opendocs.alipay.com/common/02kdnc?pathHash=fb0c752a
* 此步骤完成后,可以获取应用的私钥、支付宝公钥。
* 注意:支付宝不会保存应用的私钥,你需要自己保管好私钥。
3. 在Certd后台配置支付宝
4. 在Certd后台配置支付宝
* 进入“系统”->"设置"->“支付设置”
* 启用支付宝,选择“支付宝配置”,点击添加

View File

@@ -17,7 +17,9 @@ CERTD_HTTPS_port=7002
参考Certd顶部的创建证书流水线教程
### 2、配置复制到本机任务
将证书复制到certd的证书安装位置
将证书复制到certd的证书安装位置
证书路径:`ssl/cert.crt`
私钥路径:`ssl/cert.key`
![](./images/1.png)
![](./images/2.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

View File

@@ -0,0 +1,13 @@
# 带输出的前置任务
前置任务输出可以在后续任务中使用
比如上传证书到阿里云会返回阿里云的CertId之后其他阿里云的部署任务可以选择复用这个证书
## 复用证书
![img.png](images/pretask1.png)
在后续任务中可以选择前置任务的输出
![img.png](images/pretask2.png)

View File

@@ -18,6 +18,12 @@
### 3. 配置Certd项目
![](./images/3.png)
建议加上 `:delegated` 提升性能
```yaml
volumes:
↓↓↓↓------加上这个提升性能
- /volume1/docker/certd:/app/data:delegated
```
### 4. 外网访问设置

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -8,8 +8,11 @@
![](./tencent-access.png)
## 如何避免收到腾讯云证书过期邮件
> 新版本已经自动将证书设置为免提醒certd上传的证书后续都不会再提醒了。
腾讯云在证书有效期还剩28天时会发送过期通知邮件
您可以通过配置“腾讯云过期证书删除”任务来避免收到此类邮件。
@@ -18,4 +21,17 @@
注意点:
> 1. 选择腾讯云授权,需授权`服务角色SSL_QCSLinkedRoleInReplaceLoadCertificate`权限
> 2. `1.26.14`版本之前Certd创建的证书流水线默认是到期前20天才更新证书需要将之前创建的证书申请任务的更新天数修改为35天保证删除之前就已经替换掉即将过期证书
![](./images/delete2.png)
![](./images/delete2.png)
## TKE service 的 TCP_SSL Opaque类型证书授权
部署证书到腾讯云TKE如果报以下错误
`is forbidden: User "xxxxxx-xxxxx" cannot get resource "secrets" in API group "" in the namespace "default"'`
则需要单独从授权管理侧再授权子用户的权限
![](./images/tcpssl.png)
![](./images/opaque.png)

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 194 KiB

View File

@@ -24,13 +24,13 @@ features:
- title: 全自动申请证书
details: 支持所有注册商注册的域名
- title: 全自动部署证书
details: 支持部署到主机、阿里云、腾讯云等,目前已支持60+部署插件
details: 支持部署到主机、阿里云、腾讯云等,目前已支持100+部署插件
- title: 多域名、泛域名打到一个证书上
details: 支持通配符域名/泛域名,支持多个域名打到一个证书上
- title: 多证书格式支持
details: 支持pem、pfx、der、jks等多种证书格式支持Google、Letsencrypt、ZeroSSL证书颁发机构
- title: 支持私有化部署
details: 授权数据加密存储,保障数据安全
- title: 多数据库支持
details: 支持SQLite、Postgresql、MySQL数据库
- title: 私有化部署,数据安全
details: 授权数据加密存储,保障数据安全支持SQLite、Postgresql、MySQL多种数据库
- title: 无痛升级
details: 有手就行,向下兼容,无需担心数据作废
---

View File

@@ -9,5 +9,5 @@
}
},
"npmClient": "pnpm",
"version": "1.31.7"
"version": "1.37.4"
}

View File

@@ -14,13 +14,15 @@
},
"scripts": {
"start": "lerna bootstrap --hoist",
"start:server": "cd ./packages/ui/certd-server && npm start",
"devb": "lerna run dev-build",
"i-all": "lerna link && lerna exec npm install ",
"publish": "npm run prepublishOnly2 && lerna publish --force-publish=pro/plus-core --conventional-commits --create-release github && npm run afterpublishOnly && npm run commitAll",
"afterpublishOnly": "npm run copylogs && time /t >build.trigger && git add ./build.trigger && git commit -m \"build: trigger build image\" && TIMEOUT /T 10 && git push",
"afterpublishOnly": "npm run plugin-doc-gen && npm run copylogs && time /t >trigger/build.trigger && git add ./trigger/build.trigger && git commit -m \"build: trigger build image\" && TIMEOUT /T 10 && git push",
"transform-sql": "cd ./packages/ui/certd-server/db/ && node --experimental-json-modules transform.js",
"plugin-doc-gen": "cd ./packages/ui/certd-server/ && npm run export-md",
"commitAll": "git add . && git commit -m \"build: publish\" && git push && npm run commitPro",
"commitPro": "cd ./packages/core/ && git add . && git commit -m \"build: publish\" && git push",
"commitPro": "cd ./packages/pro/ && git add . && git commit -m \"build: publish\" && git push",
"copylogs": "copyfiles \"CHANGELOG.md\" ./docs/guide/changelogs/",
"prepublishOnly1": "npm run check && lerna run build ",
"prepublishOnly2": "npm run check && npm run before-build && lerna run build ",
@@ -28,9 +30,13 @@
"deploy1": "node --experimental-json-modules deploy.js ",
"check": "node --experimental-json-modules publish-check.js",
"init": "lerna run build",
"init:dev": "lerna run build",
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
"docs:build": "npm run copylogs && vitepress build docs",
"docs:preview": "vitepress preview docs",
"pub": "echo 1",
"dev": "pnpm run -r --parallel compile ",
"release": "time /t >trigger/release.trigger && git add trigger/release.trigger && git commit -m \"build: release\" && git push"
},
"license": "AGPL-3.0",
"dependencies": {

View File

@@ -6,7 +6,7 @@ root = true
[*]
indent_style = space
indent_size = 4
indent_size = 2
trim_trailing_whitespace = true
[{*.yml,*.yaml}]

View File

@@ -3,6 +3,295 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.37.4](https://github.com/publishlab/node-acme-client/compare/v1.37.3...v1.37.4) (2025-10-28)
**Note:** Version bump only for package @certd/acme-client
## [1.37.3](https://github.com/publishlab/node-acme-client/compare/v1.37.2...v1.37.3) (2025-10-24)
### Bug Fixes
* 修复并发情况下证书申请日志混乱的bug ([bb2714f](https://github.com/publishlab/node-acme-client/commit/bb2714ff241f9db4a71d805b23a1b0f9f2f6413a))
## [1.37.2](https://github.com/publishlab/node-acme-client/compare/v1.37.1...v1.37.2) (2025-10-14)
### Bug Fixes
* aliyunoss 选择证书接入点选择新加坡无法上传的bug ([e00733a](https://github.com/publishlab/node-acme-client/commit/e00733a34644c23ffe926486b15dc96bf2fa4b57))
## [1.37.1](https://github.com/publishlab/node-acme-client/compare/v1.37.0...v1.37.1) (2025-09-29)
**Note:** Version bump only for package @certd/acme-client
# [1.37.0](https://github.com/publishlab/node-acme-client/compare/v1.36.25...v1.37.0) (2025-09-28)
**Note:** Version bump only for package @certd/acme-client
## [1.36.25](https://github.com/publishlab/node-acme-client/compare/v1.36.24...v1.36.25) (2025-09-27)
**Note:** Version bump only for package @certd/acme-client
## [1.36.24](https://github.com/publishlab/node-acme-client/compare/v1.36.23...v1.36.24) (2025-09-27)
**Note:** Version bump only for package @certd/acme-client
## [1.36.23](https://github.com/publishlab/node-acme-client/compare/v1.36.22...v1.36.23) (2025-09-26)
**Note:** Version bump only for package @certd/acme-client
## [1.36.22](https://github.com/publishlab/node-acme-client/compare/v1.36.21...v1.36.22) (2025-09-23)
**Note:** Version bump only for package @certd/acme-client
## [1.36.21](https://github.com/publishlab/node-acme-client/compare/v1.36.20...v1.36.21) (2025-09-15)
**Note:** Version bump only for package @certd/acme-client
## [1.36.20](https://github.com/publishlab/node-acme-client/compare/v1.36.19...v1.36.20) (2025-09-13)
**Note:** Version bump only for package @certd/acme-client
## [1.36.19](https://github.com/publishlab/node-acme-client/compare/v1.36.18...v1.36.19) (2025-09-05)
### Performance Improvements
* 支持ssl.com证书颁发机构 ([27b6dfa](https://github.com/publishlab/node-acme-client/commit/27b6dfa4d2ab3bddd284c3a34511a72e1a513a4c))
## [1.36.18](https://github.com/publishlab/node-acme-client/compare/v1.36.17...v1.36.18) (2025-08-28)
**Note:** Version bump only for package @certd/acme-client
## [1.36.17](https://github.com/publishlab/node-acme-client/compare/v1.36.16...v1.36.17) (2025-08-17)
**Note:** Version bump only for package @certd/acme-client
## [1.36.16](https://github.com/publishlab/node-acme-client/compare/v1.36.15...v1.36.16) (2025-08-16)
### Performance Improvements
* 部署到百度cdn支持自动获取域名列表选择 ([4e432ed](https://github.com/publishlab/node-acme-client/commit/4e432ed03f4fb564e85a2f284ee26b58400b82f5))
## [1.36.15](https://github.com/publishlab/node-acme-client/compare/v1.36.14...v1.36.15) (2025-08-07)
**Note:** Version bump only for package @certd/acme-client
## [1.36.14](https://github.com/publishlab/node-acme-client/compare/v1.36.13...v1.36.14) (2025-07-28)
**Note:** Version bump only for package @certd/acme-client
## [1.36.13](https://github.com/publishlab/node-acme-client/compare/v1.36.12...v1.36.13) (2025-07-23)
**Note:** Version bump only for package @certd/acme-client
## [1.36.12](https://github.com/publishlab/node-acme-client/compare/v1.36.11...v1.36.12) (2025-07-22)
**Note:** Version bump only for package @certd/acme-client
## [1.36.11](https://github.com/publishlab/node-acme-client/compare/v1.36.10...v1.36.11) (2025-07-22)
**Note:** Version bump only for package @certd/acme-client
## [1.36.10](https://github.com/publishlab/node-acme-client/compare/v1.36.9...v1.36.10) (2025-07-18)
**Note:** Version bump only for package @certd/acme-client
## [1.36.9](https://github.com/publishlab/node-acme-client/compare/v1.36.7...v1.36.9) (2025-07-15)
**Note:** Version bump only for package @certd/acme-client
## [1.36.7](https://github.com/publishlab/node-acme-client/compare/v1.36.6...v1.36.7) (2025-07-15)
**Note:** Version bump only for package @certd/acme-client
## [1.36.6](https://github.com/publishlab/node-acme-client/compare/v1.36.5...v1.36.6) (2025-07-14)
**Note:** Version bump only for package @certd/acme-client
## [1.36.5](https://github.com/publishlab/node-acme-client/compare/v1.36.4...v1.36.5) (2025-07-11)
**Note:** Version bump only for package @certd/acme-client
## [1.36.4](https://github.com/publishlab/node-acme-client/compare/v1.36.3...v1.36.4) (2025-07-10)
**Note:** Version bump only for package @certd/acme-client
## [1.36.3](https://github.com/publishlab/node-acme-client/compare/v1.36.2...v1.36.3) (2025-07-07)
**Note:** Version bump only for package @certd/acme-client
## [1.36.2](https://github.com/publishlab/node-acme-client/compare/v1.36.1...v1.36.2) (2025-07-06)
**Note:** Version bump only for package @certd/acme-client
## [1.36.1](https://github.com/publishlab/node-acme-client/compare/v1.36.0...v1.36.1) (2025-07-02)
**Note:** Version bump only for package @certd/acme-client
# [1.36.0](https://github.com/publishlab/node-acme-client/compare/v1.35.5...v1.36.0) (2025-07-01)
**Note:** Version bump only for package @certd/acme-client
## [1.35.5](https://github.com/publishlab/node-acme-client/compare/v1.35.4...v1.35.5) (2025-06-20)
**Note:** Version bump only for package @certd/acme-client
## [1.35.4](https://github.com/publishlab/node-acme-client/compare/v1.35.3...v1.35.4) (2025-06-13)
**Note:** Version bump only for package @certd/acme-client
## [1.35.3](https://github.com/publishlab/node-acme-client/compare/v1.35.2...v1.35.3) (2025-06-12)
**Note:** Version bump only for package @certd/acme-client
## [1.35.2](https://github.com/publishlab/node-acme-client/compare/v1.35.1...v1.35.2) (2025-06-09)
**Note:** Version bump only for package @certd/acme-client
## [1.35.1](https://github.com/publishlab/node-acme-client/compare/v1.35.0...v1.35.1) (2025-06-07)
### Performance Improvements
* 证书申请支持letencrypt profile选项 ([2eb0e54](https://github.com/publishlab/node-acme-client/commit/2eb0e54909d8ad36708e07c12fd598998159bc43))
# [1.35.0](https://github.com/publishlab/node-acme-client/compare/v1.34.11...v1.35.0) (2025-06-05)
**Note:** Version bump only for package @certd/acme-client
## [1.34.11](https://github.com/publishlab/node-acme-client/compare/v1.34.10...v1.34.11) (2025-06-05)
### Bug Fixes
* 修复中文域名使用cname方式校验无法通过的问题 ([f7d5baa](https://github.com/publishlab/node-acme-client/commit/f7d5baa6d04cb83c572b06e62f885890cfa0143a))
### Performance Improvements
* 优化cname检查当有冲突的cname记录时给出提示 ([e639a8f](https://github.com/publishlab/node-acme-client/commit/e639a8f9f12640ffcca69f1a6a0324459924afbd))
## [1.34.10](https://github.com/publishlab/node-acme-client/compare/v1.34.9...v1.34.10) (2025-06-03)
**Note:** Version bump only for package @certd/acme-client
## [1.34.9](https://github.com/publishlab/node-acme-client/compare/v1.34.8...v1.34.9) (2025-05-30)
**Note:** Version bump only for package @certd/acme-client
## [1.34.8](https://github.com/publishlab/node-acme-client/compare/v1.34.7...v1.34.8) (2025-05-28)
**Note:** Version bump only for package @certd/acme-client
## [1.34.7](https://github.com/publishlab/node-acme-client/compare/v1.34.6...v1.34.7) (2025-05-26)
**Note:** Version bump only for package @certd/acme-client
## [1.34.6](https://github.com/publishlab/node-acme-client/compare/v1.34.5...v1.34.6) (2025-05-25)
**Note:** Version bump only for package @certd/acme-client
## [1.34.5](https://github.com/publishlab/node-acme-client/compare/v1.34.4...v1.34.5) (2025-05-19)
**Note:** Version bump only for package @certd/acme-client
## [1.34.4](https://github.com/publishlab/node-acme-client/compare/v1.34.3...v1.34.4) (2025-05-16)
**Note:** Version bump only for package @certd/acme-client
## [1.34.3](https://github.com/publishlab/node-acme-client/compare/v1.34.2...v1.34.3) (2025-05-15)
**Note:** Version bump only for package @certd/acme-client
## [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
* 根据SOA记录判断子域名托管有缺陷改回手动配置子域名托管记录的方式 ([1b280a2](https://github.com/publishlab/node-acme-client/commit/1b280a2940f9e2d919b0bf23b89cc185be1fa498))
# [1.34.0](https://github.com/publishlab/node-acme-client/compare/v1.33.8...v1.34.0) (2025-04-28)
**Note:** Version bump only for package @certd/acme-client
## [1.33.8](https://github.com/publishlab/node-acme-client/compare/v1.33.7...v1.33.8) (2025-04-26)
### Bug Fixes
* 修复http上传方式无法清除记录文件的bug ([72a7b51](https://github.com/publishlab/node-acme-client/commit/72a7b51d479602b2c54c6c3ac8d8a0dcb9664e73))
### Performance Improvements
* 从域名的soa获取主域名子域名托管无需额外配置 ([a586a92](https://github.com/publishlab/node-acme-client/commit/a586a92d5e32ea846ac37be52a7ad8c328d89966))
* 七牛oss支持删除过期备份 ([b7113bd](https://github.com/publishlab/node-acme-client/commit/b7113bda2378116d6c116dc583f563cce7cf9f00))
## [1.33.7](https://github.com/publishlab/node-acme-client/compare/v1.33.6...v1.33.7) (2025-04-22)
**Note:** Version bump only for package @certd/acme-client
## [1.33.6](https://github.com/publishlab/node-acme-client/compare/v1.33.5...v1.33.6) (2025-04-20)
**Note:** Version bump only for package @certd/acme-client
## [1.33.5](https://github.com/publishlab/node-acme-client/compare/v1.33.4...v1.33.5) (2025-04-17)
**Note:** Version bump only for package @certd/acme-client
## [1.33.4](https://github.com/publishlab/node-acme-client/compare/v1.33.3...v1.33.4) (2025-04-15)
**Note:** Version bump only for package @certd/acme-client
## [1.33.3](https://github.com/publishlab/node-acme-client/compare/v1.33.2...v1.33.3) (2025-04-14)
**Note:** Version bump only for package @certd/acme-client
## [1.33.2](https://github.com/publishlab/node-acme-client/compare/v1.33.1...v1.33.2) (2025-04-12)
**Note:** Version bump only for package @certd/acme-client
## [1.33.1](https://github.com/publishlab/node-acme-client/compare/v1.33.0...v1.33.1) (2025-04-12)
**Note:** Version bump only for package @certd/acme-client
# [1.33.0](https://github.com/publishlab/node-acme-client/compare/v1.32.0...v1.33.0) (2025-04-11)
**Note:** Version bump only for package @certd/acme-client
# [1.32.0](https://github.com/publishlab/node-acme-client/compare/v1.31.11...v1.32.0) (2025-04-04)
### Bug Fixes
* 修复从本地dns获取记录报错的bug ([c39b1bf](https://github.com/publishlab/node-acme-client/commit/c39b1bf823ddc6216bed2049e4c87e6107def08a))
### Features
* 优化证书申请速度修复某些情况下letsencrypt 校验失败的问题 ([857589b](https://github.com/publishlab/node-acme-client/commit/857589b365c6f709e0ae67914d2f50ce182e6dd6))
### Performance Improvements
* 优化华为dns解析记录创建和删除问题 ([0948c5b](https://github.com/publishlab/node-acme-client/commit/0948c5bc691d2ee6eb47c72a85da1b7453361878))
## [1.31.11](https://github.com/publishlab/node-acme-client/compare/v1.31.10...v1.31.11) (2025-04-02)
**Note:** Version bump only for package @certd/acme-client
## [1.31.10](https://github.com/publishlab/node-acme-client/compare/v1.31.9...v1.31.10) (2025-03-29)
**Note:** Version bump only for package @certd/acme-client
## [1.31.9](https://github.com/publishlab/node-acme-client/compare/v1.31.8...v1.31.9) (2025-03-28)
### Performance Improvements
* dns支持火山引擎 ([99ff879](https://github.com/publishlab/node-acme-client/commit/99ff879d93658c29ea493a4bde7e9e3f85996d64))
## [1.31.8](https://github.com/publishlab/node-acme-client/compare/v1.31.7...v1.31.8) (2025-03-26)
### Performance Improvements
* 优化txt本地校验效率 ([fd507f2](https://github.com/publishlab/node-acme-client/commit/fd507f269253607e68c5c099c99e0de11636f229))
## [1.31.7](https://github.com/publishlab/node-acme-client/compare/v1.31.6...v1.31.7) (2025-03-24)
**Note:** Version bump only for package @certd/acme-client

View File

@@ -3,7 +3,7 @@
"description": "Simple and unopinionated ACME client",
"private": false,
"author": "nmorsman",
"version": "1.31.7",
"version": "1.37.4",
"type": "module",
"module": "scr/index.js",
"main": "src/index.js",
@@ -18,7 +18,7 @@
"types"
],
"dependencies": {
"@certd/basic": "^1.31.7",
"@certd/basic": "^1.37.4",
"@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5",
"axios": "^1.7.2",
@@ -26,7 +26,8 @@
"http-proxy-agent": "^7.0.2",
"https-proxy-agent": "^7.0.5",
"lodash-es": "^4.17.21",
"node-forge": "^1.3.1"
"node-forge": "^1.3.1",
"punycode.js": "^2.3.1"
},
"devDependencies": {
"@types/node": "^20.14.10",
@@ -50,7 +51,9 @@
"lint": "eslint .",
"lint-types": "tsd",
"prepublishOnly": "npm run build-docs",
"test": "mocha -t 60000 \"test/setup.js\" \"test/**/*.spec.js\""
"test": "mocha -t 60000 \"test/setup.js\" \"test/**/*.spec.js\"",
"pub": "npm publish",
"compile": "tsc --skipLibCheck --watch"
},
"repository": {
"type": "git",
@@ -67,5 +70,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "86ca35ce3381b98b455538b11219d9856be5d0d6"
"gitHead": "dbce75146439dac484597ce6494b935fd7ce75f7"
}

View File

@@ -28,7 +28,6 @@ class AcmeApi {
}
}
}
console.log(locationUrl, mapping);
return locationUrl;
}

View File

@@ -1,10 +1,9 @@
/**
* ACME auto helper
*/
import { readCsrDomains } from './crypto/index.js';
import { log } from './logger.js';
import { wait } from './wait.js';
import { CancelError } from './error.js';
import { readCsrDomains } from "./crypto/index.js";
import { wait } from "./wait.js";
import { CancelError } from "./error.js";
const defaultOpts = {
@@ -13,13 +12,13 @@ const defaultOpts = {
preferredChain: null,
termsOfServiceAgreed: false,
skipChallengeVerification: false,
challengePriority: ['http-01', 'dns-01'],
challengePriority: ["http-01", "dns-01"],
challengeCreateFn: async () => {
throw new Error('Missing challengeCreateFn()');
throw new Error("Missing challengeCreateFn()");
},
challengeRemoveFn: async () => {
throw new Error('Missing challengeRemoveFn()');
},
throw new Error("Missing challengeRemoveFn()");
}
};
/**
@@ -30,7 +29,7 @@ const defaultOpts = {
* @returns {Promise<buffer>} Certificate
*/
export default async (client, userOpts) => {
export default async (client, userOpts) => {
const opts = { ...defaultOpts, ...userOpts };
const accountPayload = { termsOfServiceAgreed: opts.termsOfServiceAgreed };
@@ -45,18 +44,20 @@ export default async (client, userOpts) => {
accountPayload.externalAccountBinding = opts.externalAccountBinding;
}
const log = (...args)=>{
return client.logger.info(...args);
}
/**
* Register account
*/
log('[auto] Checking account');
log("[auto] Checking account");
try {
client.getAccountUrl();
log('[auto] Account URL already exists, skipping account registration 证书申请账户已存在,跳过注册 ');
}
catch (e) {
log('[auto] Registering account (注册证书申请账户)');
log("[auto] Account URL already exists, skipping account registration 证书申请账户已存在,跳过注册 ");
} catch (e) {
log("[auto] Registering account (注册证书申请账户)");
await client.createAccount(accountPayload);
}
@@ -64,7 +65,7 @@ export default async (client, userOpts) => {
* Parse domains from CSR
*/
log('[auto] Parsing domains from Certificate Signing Request ');
log("[auto] Parsing domains from Certificate Signing Request ");
const { commonName, altNames } = readCsrDomains(opts.csr);
const uniqueDomains = Array.from(new Set([commonName].concat(altNames).filter((d) => d)));
@@ -74,8 +75,11 @@ export default async (client, userOpts) => {
* Place order
*/
log('[auto] Placing new certificate order with ACME provider');
const orderPayload = { identifiers: uniqueDomains.map((d) => ({ type: 'dns', value: d })) };
log("[auto] Placing new certificate order with ACME provider");
const orderPayload = { identifiers: uniqueDomains.map((d) => ({ type: "dns", value: d })) };
if (opts.profile && client.sslProvider === 'letsencrypt' ){
orderPayload.profile = opts.profile;
}
const order = await client.createOrder(orderPayload);
const authorizations = await client.getAuthorizations(order);
@@ -85,82 +89,81 @@ export default async (client, userOpts) => {
* Resolve and satisfy challenges
*/
log('[auto] Resolving and satisfying authorization challenges');
log("[auto] Resolving and satisfying authorization challenges");
const clearTasks = [];
const localVerifyTasks = [];
const completeChallengeTasks = [];
const challengeFunc = async (authz) => {
const d = authz.identifier.value;
let challengeCompleted = false;
/* Skip authz that already has valid status */
if (authz.status === 'valid') {
if (authz.status === "valid") {
log(`[auto] [${d}] Authorization already has valid status, no need to complete challenges`);
return;
}
const keyAuthorizationGetter = async (challenge) => {
return await client.getChallengeKeyAuthorization(challenge);
}
};
try {
log(`[auto] [${d}] Trigger challengeCreateFn()`);
async function deactivateAuth(e) {
log(`[auto] [${d}] Unable to complete challenge: ${e.message}`);
try {
const { recordReq, recordRes, dnsProvider,challenge ,keyAuthorization} = await opts.challengeCreateFn(authz, keyAuthorizationGetter);
clearTasks.push(async () => {
/* Trigger challengeRemoveFn(), suppress errors */
log(`[auto] [${d}] Trigger challengeRemoveFn()`);
try {
await opts.challengeRemoveFn(authz, challenge, keyAuthorization, recordReq, recordRes, dnsProvider);
}
catch (e) {
log(`[auto] [${d}] challengeRemoveFn threw error: ${e.message}`);
}
});
// throw new Error('测试异常');
/* Challenge verification */
if (opts.skipChallengeVerification === true) {
log(`[auto] [${d}] 跳过本地验证skipChallengeVerification=true等待 60s`);
await wait(60 * 1000);
}
else {
log(`[auto] [${d}] 开始本地验证, type = ${challenge.type}`);
try {
await client.verifyChallenge(authz, challenge);
}
catch (e) {
log(`[auto] [${d}] 本地验证失败尝试请求ACME提供商获取状态: ${e.message}`);
}
}
/* Complete challenge and wait for valid status */
log(`[auto] [${d}] 请求ACME提供商完成验证等待返回valid状态`);
await client.completeChallenge(challenge);
challengeCompleted = true;
await client.waitForValidStatus(challenge);
}
catch (e) {
log(`[auto] [${d}] challengeCreateFn threw error: ${e.message}`);
throw e;
log(`[auto] [${d}] Deactivating failed authorization`);
await client.deactivateAuthorization(authz);
} catch (f) {
/* Suppress deactivateAuthorization() errors */
log(`[auto] [${d}] Authorization deactivation threw error: ${f.message}`);
}
}
catch (e) {
/* Deactivate pending authz when unable to complete challenge */
if (!challengeCompleted) {
log(`[auto] [${d}] Unable to complete challenge: ${e.message}`);
log(`[auto] [${d}] Trigger challengeCreateFn()`);
try {
const { recordReq, recordRes, dnsProvider, challenge, keyAuthorization ,httpUploader} = await opts.challengeCreateFn(authz, keyAuthorizationGetter);
clearTasks.push(async () => {
/* Trigger challengeRemoveFn(), suppress errors */
log(`[auto] [${d}] Trigger challengeRemoveFn()`);
try {
log(`[auto] [${d}] Deactivating failed authorization`);
await client.deactivateAuthorization(authz);
await opts.challengeRemoveFn(authz, challenge, keyAuthorization, recordReq, recordRes, dnsProvider,httpUploader);
} catch (e) {
log(`[auto] [${d}] challengeRemoveFn threw error: ${e.message}`);
}
catch (f) {
/* Suppress deactivateAuthorization() errors */
log(`[auto] [${d}] Authorization deactivation threw error: ${f.message}`);
}
}
});
localVerifyTasks.push(async () => {
/* Challenge verification */
log(`[auto] [${d}] 开始本地验证, type = ${challenge.type}`);
try {
await client.verifyChallenge(authz, challenge);
} catch (e) {
log(`[auto] [${d}] 本地验证失败尝试请求ACME提供商获取状态: ${e.message}`);
}
});
completeChallengeTasks.push(async () => {
/* Complete challenge and wait for valid status */
log(`[auto] [${d}] 请求ACME提供商完成验证`);
try{
await client.completeChallenge(challenge);
}catch (e) {
await deactivateAuth(e);
throw e;
}
challengeCompleted = true;
log(`[auto] [${d}] 等待返回valid状态`);
await client.waitForValidStatus(challenge,d);
});
} catch (e) {
log(`[auto] [${d}] challengeCreateFn threw error: ${e.message}`);
await deactivateAuth(e);
throw e;
}
};
const domainSets = [];
@@ -168,7 +171,7 @@ export default async (client, userOpts) => {
const d = authz.identifier.value;
log(`authorization:domain = ${d}, value = ${JSON.stringify(authz)}`);
if (authz.status === 'valid') {
if (authz.status === "valid") {
log(`[auto] [${d}] Authorization already has valid status, no need to complete challenges`);
return;
}
@@ -192,8 +195,9 @@ export default async (client, userOpts) => {
const allChallengePromises = [];
// eslint-disable-next-line no-restricted-syntax
const challengePromises = [];
allChallengePromises.push(challengePromises);
for (const domainSet of domainSets) {
const challengePromises = [];
// eslint-disable-next-line guard-for-in,no-restricted-syntax
for (const domain in domainSet) {
const authz = domainSet[domain];
@@ -202,12 +206,11 @@ export default async (client, userOpts) => {
await challengeFunc(authz);
});
}
allChallengePromises.push(challengePromises);
}
log(`[auto] challengeGroups:${allChallengePromises.length}`);
function runAllPromise(tasks) {
async function runAllPromise(tasks) {
let promise = Promise.resolve();
tasks.forEach((task) => {
promise = promise.then(task);
@@ -215,73 +218,66 @@ export default async (client, userOpts) => {
return promise;
}
async function runPromisePa(tasks) {
async function runPromisePa(tasks, waitTime = 8000) {
const results = [];
let j = 0
// eslint-disable-next-line no-await-in-loop,no-restricted-syntax
for (const task of tasks) {
j++
log(`开始第${j}个任务`);
results.push(task());
// eslint-disable-next-line no-await-in-loop
await wait(10000);
log(`wait ${Math.floor(waitTime/1000)}s`)
await wait(waitTime);
}
return Promise.all(results);
}
try {
log(`开始challenge${allChallengePromises.length}`);
let i = 0;
// eslint-disable-next-line no-restricted-syntax
for (const challengePromises of allChallengePromises) {
i += 1;
log(`开始第${i}`);
if (opts.signal && opts.signal.aborted) {
throw new CancelError('用户取消');
log(`开始challenge${allChallengePromises.length}`);
let i = 0;
// eslint-disable-next-line no-restricted-syntax
for (const challengePromises of allChallengePromises) {
i += 1;
log(`开始第${i}`);
if (opts.signal && opts.signal.aborted) {
throw new CancelError("用户取消");
}
const waitDnsDiffuseTime = opts.waitDnsDiffuseTime || 30;
try {
// eslint-disable-next-line no-await-in-loop
await runPromisePa(challengePromises);
if (opts.skipChallengeVerification === true) {
log(`跳过本地验证skipChallengeVerification=true等待 60s`);
await wait(60 * 1000);
} else {
log("开始本地校验")
await runPromisePa(localVerifyTasks, 1000);
log(`本地校验完成,等待${waitDnsDiffuseTime}s`)
await wait(waitDnsDiffuseTime * 1000)
}
try {
// eslint-disable-next-line no-await-in-loop
await runPromisePa(challengePromises);
}
catch (e) {
log(`证书申请失败${e.message}`);
throw e;
}
finally {
if (client.opts.sslProvider !== 'google') {
// letsencrypt 如果同时检出两个TXT记录会以第一个为准就会校验失败所以需要提前删除
// zerossl 此方式测试无问题
log(`清理challenge痕迹length:${clearTasks.length}`);
try {
// eslint-disable-next-line no-await-in-loop
await runAllPromise(clearTasks);
}
catch (e) {
log('清理challenge失败');
log(e);
}
}
}
}
}
finally {
if (client.opts.sslProvider === 'google') {
// google 相同的域名txt记录是一样的不能提前删除否则校验失败报错如下
// Error: The TXT record retrieved from _acme-challenge.bbc.handsfree.work.
// at the time the challenge was validated did not contain JshHVu7dt_DT6uYILWhokHefFVad2Q6Mw1L-fNZFcq8
// (the base64url-encoded SHA-256 digest of RlJZNBR0LWnxNK_xd2zqtYVvCiNJOKJ3J1NmCjU_9BjaUJgL3k-qSpIhQ-uF4FBS.NRyqT8fRiq6THzzrvkgzgR5Xai2LsA2SyGLAq_wT3qc).
// See https://tools.ietf.org/html/rfc8555#section-8.4 for more information.
log("开始向提供商请求检查验证");
await runPromisePa(completeChallengeTasks, 1000);
} catch (e) {
log(`证书申请失败${e.message}`);
throw e;
} finally {
// letsencrypt 如果同时检出两个TXT记录会以第一个为准就会校验失败所以需要提前删除
// zerossl 此方式测试无问题
log(`清理challenge痕迹length:${clearTasks.length}`);
try {
// eslint-disable-next-line no-await-in-loop
// eslint-disable-next-line no-await-in-loop
await runAllPromise(clearTasks);
}
catch (e) {
log('清理challenge失败');
} catch (e) {
log("清理challenge失败");
log(e);
}
}
}
log('challenge结束');
log("challenge结束");
// log('[auto] Waiting for challenge valid status');
// await Promise.all(challengePromises);
@@ -289,7 +285,7 @@ export default async (client, userOpts) => {
* Finalize order and download certificate
*/
log('[auto] Finalizing order and downloading certificate');
log("[auto] Finalizing order and downloading certificate");
const finalized = await client.finalizeOrder(order, opts.csr);
const res = await client.getCertificate(finalized, opts.preferredChain);
return res;

View File

@@ -3,9 +3,9 @@
*/
import axios from 'axios';
import { parseRetryAfterHeader } from './util.js';
import { log } from './logger.js';
const { AxiosError } = axios;
import {getGlobalAgents, HttpError} from '@certd/basic'
import { log } from './logger.js';
/**
* Defaults
*/

View File

@@ -5,7 +5,6 @@
*/
import { createHash } from 'crypto';
import { getPemBodyAsB64u } from './crypto/index.js';
import { log } from './logger.js';
import HttpClient from './http.js';
import AcmeApi from './api.js';
import verify from './verify.js';
@@ -90,10 +89,12 @@ const defaultOpts = {
*/
class AcmeClient {
sslProvider
constructor(opts) {
if (!Buffer.isBuffer(opts.accountKey)) {
opts.accountKey = Buffer.from(opts.accountKey);
}
this.sslProvider = opts.sslProvider;
this.opts = { ...defaultOpts, ...opts };
this.backoffOpts = {
@@ -102,8 +103,13 @@ class AcmeClient {
max: this.opts.backoffMax,
};
this.http = new HttpClient(this.opts.directoryUrl, this.opts.accountKey, this.opts.externalAccountBinding, this.opts.urlMapping);
this.http = new HttpClient(this.opts.directoryUrl, this.opts.accountKey, this.opts.externalAccountBinding, this.opts.urlMapping, opts.logger);
this.api = new AcmeApi(this.http, this.opts.accountUrl);
this.logger = opts.logger;
}
log(...args) {
this.logger.info(...args);
}
/**
@@ -175,7 +181,7 @@ class AcmeClient {
this.getAccountUrl();
/* Account URL exists */
log('Account URL exists, returning updateAccount()');
this.log('Account URL exists, returning updateAccount()');
return this.updateAccount(data);
}
catch (e) {
@@ -183,7 +189,7 @@ class AcmeClient {
/* HTTP 200: Account exists */
if (resp.status === 200) {
log('Account already exists (HTTP 200), returning updateAccount()');
this.log('Account already exists (HTTP 200), returning updateAccount()');
return this.updateAccount(data);
}
@@ -212,7 +218,7 @@ class AcmeClient {
this.api.getAccountUrl();
}
catch (e) {
log('No account URL found, returning createAccount()');
this.log('No account URL found, returning createAccount()');
return this.createAccount(data);
}
@@ -500,7 +506,7 @@ class AcmeClient {
await verify[challenge.type](authz, challenge, keyAuthorization);
};
log('Waiting for ACME challenge verification等待ACME挑战验证)', this.backoffOpts);
this.log('Waiting for ACME challenge verification等待ACME检查验证)');
return util.retry(verifyFn, this.backoffOpts);
}
@@ -554,9 +560,9 @@ class AcmeClient {
* ```
*/
async waitForValidStatus(item) {
async waitForValidStatus(item,d) {
if (!item.url) {
throw new Error('Unable to verify status of item, URL not found');
throw new Error(`[${d}] Unable to verify status of item, URL not found`);
}
const verifyFn = async (abort) => {
@@ -568,23 +574,23 @@ class AcmeClient {
const resp = await this.api.apiRequest(item.url, null, [200]);
/* Verify status */
log(`Item has status挑战状态): ${resp.data.status}`);
this.log(`[${d}] Item has status检查状态): ${resp.data.status}`);
if (invalidStates.includes(resp.data.status)) {
abort();
throw new Error(util.formatResponseError(resp));
}
else if (pendingStates.includes(resp.data.status)) {
throw new Error('Operation is pending or processing当前仍然在等待状态');
throw new Error(`[${d}] Operation is pending or processing当前仍然在等待状态`);
}
else if (validStates.includes(resp.data.status)) {
return resp.data;
}
throw new Error(`Unexpected item status: ${resp.data.status}`);
throw new Error(`[${d}] Unexpected item status: ${resp.data.status}`);
};
log(`Waiting for valid status 等待valid状态: ${item.url}`, this.backoffOpts);
this.log(`[${d}] Waiting for valid status 等待valid状态: ${item.url}`, this.backoffOpts);
return util.retry(verifyFn, this.backoffOpts);
}

View File

@@ -19,7 +19,7 @@ import { getJwk } from './crypto/index.js';
*/
class HttpClient {
constructor(directoryUrl, accountKey, externalAccountBinding = {}, urlMapping = {}) {
constructor(directoryUrl, accountKey, externalAccountBinding = {}, urlMapping = {},logger) {
this.directoryUrl = directoryUrl;
this.accountKey = accountKey;
this.externalAccountBinding = externalAccountBinding;
@@ -31,6 +31,7 @@ class HttpClient {
this.directoryMaxAge = 86400;
this.directoryTimestamp = 0;
this.urlMapping = urlMapping;
this.log = logger? logger.info.bind(logger) : log;
}
/**
@@ -48,7 +49,7 @@ class HttpClient {
for (const key in this.urlMapping.mappings) {
if (url.includes(key)) {
const newUrl = url.replace(key, this.urlMapping.mappings[key]);
log(`use reverse proxy: ${newUrl}`);
this.log(`use reverse proxy: ${newUrl}`);
url = newUrl;
}
}
@@ -65,10 +66,10 @@ class HttpClient {
opts.headers['Content-Type'] = 'application/jose+json';
/* Request */
log(`HTTP request: ${method} ${url}`);
this.log(`HTTP request: ${method} ${url}`);
const resp = await axios.request(opts);
log(`RESP ${resp.status} ${method} ${url}`);
this.log(`RESP ${resp.status} ${method} ${url}`);
return resp;
}
@@ -85,7 +86,7 @@ class HttpClient {
const age = (now - this.directoryTimestamp);
if (!this.directoryCache || (age > this.directoryMaxAge)) {
log(`Refreshing ACME directory, age: ${age}`);
this.log(`Refreshing ACME directory, age: ${age}`);
const resp = await this.request(this.directoryUrl, 'get');
if (resp.status >= 400) {
@@ -187,7 +188,7 @@ class HttpClient {
/* Nonce */
if (nonce) {
log(`Using nonce: ${nonce}`);
this.log(`Using nonce: ${nonce}`);
header.nonce = nonce;
}
@@ -314,7 +315,7 @@ class HttpClient {
nonce = resp.headers['replay-nonce'] || null;
attempts += 1;
log(`Caught invalid nonce error, retrying (${attempts}/${this.maxBadNonceRetries}) signed request to: ${url}`);
this.log(`Caught invalid nonce error, retrying (${attempts}/${this.maxBadNonceRetries}) signed request to: ${url}`);
return this.signedRequest(url, payload, { kid, nonce, includeExternalAccountBinding }, attempts);
}

View File

@@ -25,6 +25,10 @@ export const directory = {
staging: 'https://acme.zerossl.com/v2/DV90',
production: 'https://acme.zerossl.com/v2/DV90',
},
sslcom:{
staging: 'https://acme.ssl.com/sslcom-dv-rsa',
production: 'https://acme.ssl.com/sslcom-dv-rsa',
}
};
/**
@@ -46,3 +50,5 @@ export * from './axios.js'
export * from './logger.js'
export * from './verify.js'
export * from './error.js'
export * from './util.js'

View File

@@ -62,7 +62,7 @@ async function retryPromise(fn, attempts, backoff) {
log(`Promise rejected: ${e.message}`);
const duration = backoff.duration();
log(`attempt #${backoff.attempts}, ${duration}ms 后重试: ${e.message}`);
log(`Promise rejected attempt #${backoff.attempts}, ${duration}ms 后重试: ${e.message}`);
await new Promise((resolve) => { setTimeout(resolve, duration); });
return retryPromise(fn, attempts, backoff);
@@ -219,15 +219,15 @@ function formatResponseError(resp) {
async function resolveDomainBySoaRecord(recordName) {
try {
await dns.resolveSoa(recordName);
log(`Found SOA record, considering domain to be: ${recordName}`);
log(`找到${recordName}的SOA记录`);
return recordName;
}
catch (e) {
log(`Unable to locate SOA record for name: ${recordName}`);
log(`找不到${recordName}的SOA记录,继续往主域名查找`);
const parentRecordName = recordName.split('.').slice(1).join('.');
if (!parentRecordName.includes('.')) {
throw new Error('Unable to resolve domain by SOA record');
throw new Error('SOA record查找失败');
}
return resolveDomainBySoaRecord(parentRecordName);
@@ -242,7 +242,7 @@ async function resolveDomainBySoaRecord(recordName) {
*/
async function getAuthoritativeDnsResolver(recordName) {
log(`Locating authoritative NS records for name: ${recordName} (获取域名的权威NS服务器`);
log(`获取域名${recordName}的权威NS服务器: `);
const resolver = new dns.Resolver();
try {
@@ -250,7 +250,7 @@ async function getAuthoritativeDnsResolver(recordName) {
const domain = await resolveDomainBySoaRecord(recordName);
/* Resolve authoritative NS addresses */
log(`Looking up authoritative NS records for domain获取域名的权威NS服务器: ${domain}`);
log(`获取到权威NS服务器name: ${domain}`);
const nsRecords = await dns.resolveNs(domain);
log(`域名权威NS服务器${nsRecords}`);
const nsAddrArray = await Promise.all(nsRecords.map(async (r) => dns.resolve4(r)));
@@ -340,5 +340,6 @@ export {
formatResponseError,
getAuthoritativeDnsResolver,
retrieveTlsAlpnCertificate,
resolveDomainBySoaRecord
};

View File

@@ -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;
}
@@ -48,55 +72,85 @@ async function verifyHttpChallenge(authz, challenge, keyAuthorization, suffix =
* Walk DNS until TXT records are found
*/
async function walkDnsChallengeRecord(recordName, resolver = dns) {
/* Resolve CNAME record first */
// try {
// log(`Checking name for CNAME records: ${recordName}`);
// const cnameRecords = await resolver.resolveCname(recordName);
//
// if (cnameRecords.length) {
// log(`CNAME record found at ${recordName}, new challenge record name: ${cnameRecords[0]}`);
// return walkDnsChallengeRecord(cnameRecords[0]);
// }
// }
// catch (e) {
// log(`No CNAME records found for name: ${recordName}`);
// }
async function walkDnsChallengeRecord(recordName, resolver = dns,deep = 0) {
let records = [];
/* Resolve TXT records */
try {
log(`Checking name for TXT records: ${recordName}`);
log(`检查域名 ${recordName} 的TXT记录`);
const txtRecords = await resolver.resolveTxt(recordName);
if (txtRecords && txtRecords.length) {
log(`Found ${txtRecords.length} TXT records at ${recordName}`);
log(`找到 ${txtRecords.length} TXT记录( ${recordName}`);
log(`TXT records: ${JSON.stringify(txtRecords)}`);
return [].concat(...txtRecords);
records = records.concat(...txtRecords);
}
return [];
} catch (e) {
log(`解析 TXT 记录出错, ${recordName} :${e.message}`);
}
catch (e) {
log(`Resolve TXT records error, ${recordName} :${e.message}`);
throw e;
/* Resolve CNAME record first */
try {
log(`检查是否存在CNAME映射: ${recordName}`);
const cnameRecords = await resolver.resolveCname(recordName);
if (cnameRecords.length) {
const cnameRecord = cnameRecords[0];
log(`已找到${recordName}的CNAME记录将检查: ${cnameRecord}`);
let res= await walkTxtRecord(cnameRecord,deep+1);
if (res && res.length) {
log(`从CNAME中找到TXT记录: ${JSON.stringify(res)}`);
records = records.concat(...res);
}
}else{
log(`没有CNAME映射${recordName}`);
}
} catch (e) {
log(`检查CNAME出错${recordName} :${e.message}`);
}
return records
}
export async function walkTxtRecord(recordName) {
export async function walkTxtRecord(recordName,deep = 0) {
if(deep >5){
log(`walkTxtRecord too deep (#${deep}) , skip walk`)
return []
}
const txtRecords = []
try {
/* Default DNS resolver first */
log('Attempting to resolve TXT with default DNS resolver first');
const res = await walkDnsChallengeRecord(recordName);
log('从本地DNS服务器获取TXT解析记录');
const res = await walkDnsChallengeRecord(recordName,dns,deep);
if (res && res.length > 0) {
return res;
for (const item of res) {
txtRecords.push(item)
}
}
throw new Error('No TXT records found');
} catch (e) {
log(`本地获取TXT解析记录失败:${e.message}`)
}
catch (e) {
try{
/* Authoritative DNS resolver */
log(`Error using default resolver, attempting to resolve TXT with authoritative NS: ${e.message}`);
log(`从域名权威服务器获取TXT解析记录`);
const authoritativeResolver = await util.getAuthoritativeDnsResolver(recordName);
return await walkDnsChallengeRecord(recordName, authoritativeResolver);
const res = await walkDnsChallengeRecord(recordName, authoritativeResolver,deep);
if (res && res.length > 0) {
for (const item of res) {
txtRecords.push(item)
}
}
}catch (e) {
log(`权威服务器获取TXT解析记录失败:${e.message}`)
}
if (txtRecords.length === 0) {
throw new Error(`没有找到TXT解析记录${recordName}`);
}
return txtRecords;
}
/**
@@ -113,14 +167,16 @@ export async function walkTxtRecord(recordName) {
async function verifyDnsChallenge(authz, challenge, keyAuthorization, prefix = '_acme-challenge.') {
const recordName = `${prefix}${authz.identifier.value}`;
log(`Resolving DNS TXT from record解析DNS TXT记录: ${recordName}`);
const recordValues = await walkTxtRecord(recordName);
log(`DNS query finished successfullyDNS查询成功, found ${recordValues.length} TXT records`);
log(`本地校验TXT记录: ${recordName}`);
let recordValues = await walkTxtRecord(recordName);
//去重
recordValues = [...new Set(recordValues)];
log(`DNS查询成功, 找到 ${recordValues.length} 条TXT记录${recordValues}`);
if (!recordValues.length || !recordValues.includes(keyAuthorization)) {
throw new Error(`Authorization not found in DNS TXT record没有找到需要的DNS TXT记录: ${recordName}need:${keyAuthorization},found:${recordValues}`);
throw new Error(`没有找到需要的DNS TXT记录: ${recordName}期望:${keyAuthorization},结果:${recordValues}`);
}
log(`Key authorization match for ${challenge.type}/${recordName}, ACME challenge verified(域名所有权校验成功)`);
log(`关键授权匹配成功(${challenge.type}/${recordName}:${keyAuthorization},校验成功, ACME challenge verified`);
return true;
}

View File

@@ -0,0 +1,11 @@
import {assert} from 'chai'
import {resolveDomainBySoaRecord} from "../src/util.js"
describe('dns', () => {
it('resolveDomainBySoaRecord', async () => {
const resp = await resolveDomainBySoaRecord("a.corp.smartdeer.com")
assert.equal(resp, "smartdeer.com")
});
})

View File

@@ -49,6 +49,7 @@ export interface ClientOptions {
backoffMax?: number;
urlMapping?: UrlMapping;
signal?: AbortSignal;
logger?:any
}
export interface ClientExternalAccountBindingOptions {
@@ -59,13 +60,14 @@ export interface ClientExternalAccountBindingOptions {
export interface ClientAutoOptions {
csr: CsrBuffer | CsrString;
challengeCreateFn: (authz: Authorization, keyAuthorization: (challenge:rfc8555.Challenge)=>Promise<string>) => Promise<{recordReq?:any,recordRes?:any,dnsProvider?:any,challenge: rfc8555.Challenge,keyAuthorization:string}>;
challengeRemoveFn: (authz: Authorization, challenge: rfc8555.Challenge, keyAuthorization: string,recordReq:any, recordRes:any,dnsProvider:any) => Promise<any>;
challengeRemoveFn: (authz: Authorization, challenge: rfc8555.Challenge, keyAuthorization: string,recordReq:any, recordRes:any,dnsProvider:any,httpUploader:any) => Promise<any>;
email?: string;
termsOfServiceAgreed?: boolean;
skipChallengeVerification?: boolean;
challengePriority?: string[];
preferredChain?: string;
signal?: AbortSignal;
profile?:string;
}
export class Client {
@@ -203,5 +205,8 @@ export const agents: any;
export function setLogger(fn: (message: any, ...args: any[]) => void): void;
export function walkTxtRecord(record: any): Promise<string[]>;
export function getAuthoritativeDnsResolver(record:string): Promise<any>;
export const CancelError: typeof CancelError;
export const CancelError: typeof CancelError;
export function resolveDomainBySoaRecord(domain: string): Promise<string>;

Some files were not shown because too many files have changed in this diff Show More