Compare commits

...

9 Commits

Author SHA1 Message Date
xiaojunnuo ed58ae3c53 perf: 优化阿里云API网关增加翻页查询 2026-06-15 10:02:02 +08:00
xiaojunnuo 194463bea9 perf: dns默认ipv4first 2026-06-14 23:18:37 +08:00
xiaojunnuo 260f5ae777 fix: 修复jdk证书格式的问题 2026-06-14 23:18:17 +08:00
xiaojunnuo e85d824337 chore:1 2026-06-14 22:21:07 +08:00
xiaojunnuo e17fc39709 chore: 1 2026-06-14 22:14:59 +08:00
xiaojunnuo da9b297b12 chore: 1 2026-06-14 21:46:06 +08:00
xiaojunnuo 807dfcd57a chore: 尝试使用 node:22.22-trixie-slim 2026-06-14 21:43:18 +08:00
xiaojunnuo 0a410db52a build: publish 2026-06-14 21:30:16 +08:00
xiaojunnuo 4501095106 build: trigger build image 2026-06-14 21:30:05 +08:00
20 changed files with 52 additions and 25 deletions
+1 -1
View File
@@ -181,7 +181,7 @@ https://certd.handfree.work/
> [50元专业版优惠券限时领取](https://app.handfree.work/subject/#/app/certd/product) https://app.handfree.work/subject/#/app/certd/product
> handfree.work是Certd官方激活码购买平台
> app.handfree.work是Certd官方激活码购买平台
专业版、商业版特权对比
+10
View File
@@ -3,6 +3,16 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.41.4](https://github.com/certd/certd/compare/v1.41.3...v1.41.4) (2026-06-14)
### Bug Fixes
* 修复设置里面不显示tab页签,导致某些页面需要点击查询按钮才有数据出来的bug ([c1b5a35](https://github.com/certd/certd/commit/c1b5a35f90a7d4b41397717b5c27905bc68e1bfb))
### Performance Improvements
* **plugin:** 增加 Dynadot DNS and access 插件 ([a3a215b](https://github.com/certd/certd/commit/a3a215b7ae2b90efcde91270ce4165bbfe77dc64))
## [1.41.3](https://github.com/certd/certd/compare/v1.41.2...v1.41.3) (2026-06-11)
### Bug Fixes
+1 -1
View File
@@ -6,7 +6,7 @@ Certd 是一款开源、免费、全自动申请和部署更新SSL证书的工
关键字:证书自动申请、证书自动更新、证书自动续期、证书自动续签、证书管理工具
| 官方开源地址: | |
|  |官方开源地址: |
| ---- | ---- |
| [Github](https://github.com/certd/certd)| ![](https://img.shields.io/github/stars/certd/certd?logo=github) |
| [Gitee](https://gitee.com/certd/certd) | ![](https://gitee.com/certd/certd/badge/star.svg?theme=dark) |
+1 -1
View File
@@ -76,5 +76,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -52,5 +52,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -49,5 +49,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -28,5 +28,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -35,5 +35,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -60,5 +60,5 @@
"fetch"
]
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -36,5 +36,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -69,5 +69,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
@@ -169,10 +169,8 @@ export class SysSettingsService extends BaseService<SysSettingsEntity> {
};
setGlobalProxy(opts);
setGlobalHeaders(this.parseKeyValueText(privateSetting.commonHeaders));
if (privateSetting.dnsResultOrder) {
dns.setDefaultResultOrder(privateSetting.dnsResultOrder as any);
}
dns.setDefaultResultOrder(privateSetting.dnsResultOrder as any || 'ipv4first');
if (privateSetting.pipelineMaxRunningCount) {
executorQueue.setMaxRunningCount(privateSetting.pipelineMaxRunningCount);
+1 -1
View File
@@ -50,5 +50,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -41,5 +41,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
+1 -1
View File
@@ -61,5 +61,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "6cbd62977731a3b72c42b5f88c49500631da0a46"
"gitHead": "bc731e4fb119787930e816a7d57c808b1b5cd66a"
}
@@ -132,7 +132,7 @@ export class CertConverter {
if (!fs.existsSync(dir)) {
fs.mkdirSync(dir, { recursive: true });
}
await this.exec(`keytool -importkeystore -srckeystore ${p12Path} -srcstoretype PKCS12 -srcstorepass "${jksPassword}" -destkeystore ${jksPath} -deststoretype PKCS12 -deststorepass "${jksPassword}" `);
await this.exec(`keytool -importkeystore -srckeystore ${p12Path} -srcstoretype PKCS12 -srcstorepass "${jksPassword}" -destkeystore ${jksPath} -deststoretype JKS -deststorepass "${jksPassword}" `);
fs.unlinkSync(p12Path);
const fileBuffer = fs.readFileSync(jksPath);
+1 -1
View File
@@ -36,7 +36,7 @@ EXPOSE 7002
RUN apk add --no-cache openssl
RUN apk add --no-cache openjdk8
RUN apk add --no-cache gcompat
# RUN apk add --no-cache gcompat
WORKDIR /app/
COPY --from=builder /workspace/certd-server/ /app/
@@ -227,7 +227,11 @@ export class DeployCertToAliyunApig extends AbstractTaskPlugin {
domain: item.name,
};
});
return optionsUtils.buildGroupOptions(options, this.certDomains);
const records = optionsUtils.buildGroupOptions(options, this.certDomains);
return {
list: records,
total: res?.data?.totalSize || 0,
}
}
async onGetRegionList(data: any) {
@@ -1,4 +1,4 @@
import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline";
import { AbstractTaskPlugin, IsTaskPlugin, Pager, PageSearch, pluginGroups, RunStrategy, TaskInput } from "@certd/pipeline";
import { createCertDomainGetterInputDefine, createRemoteSelectInputDefine } from "@certd/plugin-lib";
import { CertApplyPluginNames, CertInfo } from "@certd/plugin-cert";
import { optionsUtils } from "@certd/basic";
@@ -70,6 +70,8 @@ export class DeployCertToAliyunApiGateway extends AbstractTaskPlugin {
watches: ["regionEndpoint", "accessId"],
required: true,
single: true,
pager: true,
search: true,
})
)
groupId!: string;
@@ -122,7 +124,7 @@ export class DeployCertToAliyunApiGateway extends AbstractTaskPlugin {
this.logger.info(`设置${domainName}证书成功:`, ret.RequestId);
}
async onGetGroupList(data: any) {
async onGetGroupList(data: PageSearch) {
if (!this.accessId) {
throw new Error("请选择Access授权");
}
@@ -131,23 +133,36 @@ export class DeployCertToAliyunApiGateway extends AbstractTaskPlugin {
}
const access = await this.getAccess<AliyunAccess>(this.accessId);
const client = access.getClient(this.regionEndpoint);
const pager = new Pager(data)
const res = await client.doRequest({
// 接口名称
action: "DescribeApiGroups",
// 接口版本
version: "2016-07-14",
data: {},
data: {
query: {
GroupName: data.searchKey,
PageNumber: pager.pageNo,
PageSize: pager.pageSize,
},
},
});
const list = res?.ApiGroupAttributes?.ApiGroupAttribute;
if (!list || list.length === 0) {
throw new Error("没有数据,您可以手动输入API网关ID");
}
return list.map((item: any) => {
const records = list.map((item: any) => {
return {
value: item.GroupId,
label: `${item.GroupName}<${item.GroupId}>`,
};
});
return {
list: records,
total: res?.TotalCount || 0,
}
}
async onGetDomainList(data: any) {
+1 -1
View File
@@ -1 +1 @@
23:57
21:30