Compare commits

..

17 Commits

Author SHA1 Message Date
xiaojunnuo
86ca35ce33 v1.31.6 2025-03-24 23:51:00 +08:00
xiaojunnuo
675ab31305 build: prepare to build 2025-03-24 23:48:42 +08:00
xiaojunnuo
83c2d743bc chore: 2025-03-24 23:48:34 +08:00
xiaojunnuo
2c87b3d906 build: prepare to build 2025-03-24 23:47:10 +08:00
xiaojunnuo
05b6159802 perf: 上传到主机支持scp方式 2025-03-24 23:45:45 +08:00
xiaojunnuo
c56f48c1e3 perf: 优化图标 2025-03-24 21:27:31 +08:00
xiaojunnuo
90b045af6d fix: 修复dns.la无法申请证书的bug 2025-03-24 09:38:18 +08:00
xiaojunnuo
5cccb21175 chore: 2025-03-24 00:10:01 +08:00
xiaojunnuo
1a71969403 chore: 2025-03-24 00:05:19 +08:00
xiaojunnuo
389a1fbd04 build: publish 2025-03-22 15:05:31 +08:00
xiaojunnuo
ca02ae6183 build: trigger build image 2025-03-22 15:05:11 +08:00
xiaojunnuo
92446cb048 v1.31.5 2025-03-22 15:03:34 +08:00
xiaojunnuo
954ce4533f build: prepare to build 2025-03-22 15:01:00 +08:00
xiaojunnuo
f7b88f9e3b fix: 修复通知选择器无法选择的bug
https://github.com/certd/certd/issues/351
2025-03-22 15:00:17 +08:00
xiaojunnuo
736fe038eb fix: 修复证书流水线创建失败的bug 2025-03-22 14:59:54 +08:00
xiaojunnuo
abcd257db0 build: publish 2025-03-22 02:10:40 +08:00
xiaojunnuo
c38b5f3cdc build: trigger build image 2025-03-22 02:10:22 +08:00
62 changed files with 713 additions and 189 deletions

View File

@@ -3,6 +3,24 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes
* 修复dns.la无法申请证书的bug ([90b045a](https://github.com/certd/certd/commit/90b045af6d1a4f46986e4b118885c1f050df067c))
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
* 修复通知选择器无法选择的bug ([f7b88f9](https://github.com/certd/certd/commit/f7b88f9e3b7d9d9122e4fd2003a20c555bd50c7d))
* 修复证书流水线创建失败的bug ([736fe03](https://github.com/certd/certd/commit/736fe038ebda56648bcc4c12884a700341d2c049))
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes

View File

@@ -1 +1 @@
01:19
15:05

View File

@@ -3,6 +3,34 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
* 修复通知选择器无法选择的bug ([f7b88f9](https://github.com/certd/certd/commit/f7b88f9e3b7d9d9122e4fd2003a20c555bd50c7d))
* 修复证书流水线创建失败的bug ([736fe03](https://github.com/certd/certd/commit/736fe038ebda56648bcc4c12884a700341d2c049))
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes
* 修复站点监控通知通过webhook发送失败的bug ([9be1ecc](https://github.com/certd/certd/commit/9be1ecc8aab3ea23dd0dc2dab3688f4edb90ef2c))
* 修复dns.la域名申请失败的bug ([1de8eee](https://github.com/certd/certd/commit/1de8eee6ea8307f3c11626af75303d3cc104bb95))
### Performance Improvements
* 宝塔支持doker站点证书部署 ([589a373](https://github.com/certd/certd/commit/589a373142ef7f50d64d3aa767a90b1f4b64da93))
* 保存调整后的列宽 ([873f2b6](https://github.com/certd/certd/commit/873f2b618b9d7320045baf69d6da83afe48a780f))
* 创建证书流水线时,支持更多参数展开 ([36aa7f8](https://github.com/certd/certd/commit/36aa7f82b078a053a102331b3c6f132fb9d492f9))
* 流水线页面可以鼠标按住左右拖动 ([d85a02f](https://github.com/certd/certd/commit/d85a02feeb3183c5abd6c1ea790d5923a32d7271))
* 流水线增加上传证书快捷方式 ([425bba6](https://github.com/certd/certd/commit/425bba67c539b734e2a85a83a4f9ecc9b2434fb4))
* 手动上传证书部署流水线 ([fbb66f3](https://github.com/certd/certd/commit/fbb66f3c4389489aa8a43b194d82bc8cf391607b))
* 优化选择任务时手机版展示效果 ([d01004d](https://github.com/certd/certd/commit/d01004d53071a75ac91ee21cc96bde9369f77ff3))
* 站点监控,手动测试也发通知 ([729b19c](https://github.com/certd/certd/commit/729b19c8da60d5efb5baef7cf8df0518e7f6b471))
* 站点证书监控支持模糊查询 ([0069c0e](https://github.com/certd/certd/commit/0069c0e3992946a8dd6410f299d4fc974ef0e76b))
* 支持飞书通知 ([b82e1dc](https://github.com/certd/certd/commit/b82e1dcd6217b09a7d7e21cd648bb31de320cadf))
* 支持手动上传证书并部署 ([a9fffa5](https://github.com/certd/certd/commit/a9fffa5180c83da27b35886aa2e858a92a2c5f94))
## [1.31.3](https://github.com/certd/certd/compare/v1.31.2...v1.31.3) (2025-03-13)
### Bug Fixes

View File

@@ -9,5 +9,5 @@
}
},
"npmClient": "pnpm",
"version": "1.31.4"
"version": "1.31.6"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/publishlab/node-acme-client/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/acme-client
## [1.31.5](https://github.com/publishlab/node-acme-client/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/acme-client
## [1.31.4](https://github.com/publishlab/node-acme-client/compare/v1.31.3...v1.31.4) (2025-03-21)
**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.4",
"version": "1.31.6",
"type": "module",
"module": "scr/index.js",
"main": "src/index.js",
@@ -18,7 +18,7 @@
"types"
],
"dependencies": {
"@certd/basic": "^1.31.4",
"@certd/basic": "^1.31.6",
"@peculiar/x509": "^1.11.0",
"asn1js": "^3.0.5",
"axios": "^1.7.2",
@@ -67,5 +67,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -53,10 +53,10 @@ export default async (client, userOpts) => {
try {
client.getAccountUrl();
log('[auto] Account URL already exists, skipping account registration');
log('[auto] Account URL already exists, skipping account registration 证书申请账户已存在,跳过注册 ');
}
catch (e) {
log('[auto] Registering account');
log('[auto] Registering account (注册证书申请账户)');
await client.createAccount(accountPayload);
}
@@ -64,7 +64,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)));
@@ -120,20 +120,20 @@ export default async (client, userOpts) => {
// throw new Error('测试异常');
/* Challenge verification */
if (opts.skipChallengeVerification === true) {
log(`[auto] [${d}] Skipping challenge verification since skipChallengeVerification=truewait 60s`);
log(`[auto] [${d}] 跳过本地验证(skipChallengeVerification=true),等待 60s`);
await wait(60 * 1000);
}
else {
log(`[auto] [${d}] Running challenge verification, type = ${challenge.type}`);
log(`[auto] [${d}] 开始本地验证, type = ${challenge.type}`);
try {
await client.verifyChallenge(authz, challenge);
}
catch (e) {
log(`[auto] [${d}] challenge verification threw error: ${e.message}`);
log(`[auto] [${d}] 本地验证失败尝试请求ACME提供商获取状态: ${e.message}`);
}
}
/* Complete challenge and wait for valid status */
log(`[auto] [${d}] Completing challenge with ACME provider and waiting for valid status`);
log(`[auto] [${d}] 请求ACME提供商完成验证等待返回valid状态`);
await client.completeChallenge(challenge);
challengeCompleted = true;

View File

@@ -500,7 +500,7 @@ class AcmeClient {
await verify[challenge.type](authz, challenge, keyAuthorization);
};
log('Waiting for ACME challenge verification', this.backoffOpts);
log('Waiting for ACME challenge verification等待ACME挑战验证', this.backoffOpts);
return util.retry(verifyFn, this.backoffOpts);
}
@@ -568,14 +568,14 @@ class AcmeClient {
const resp = await this.api.apiRequest(item.url, null, [200]);
/* Verify status */
log(`Item has status: ${resp.data.status}`);
log(`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('Operation is pending or processing(当前仍然在等待状态)');
}
else if (validStates.includes(resp.data.status)) {
return resp.data;
@@ -584,7 +584,7 @@ class AcmeClient {
throw new Error(`Unexpected item status: ${resp.data.status}`);
};
log(`Waiting for valid status from: ${item.url}`, this.backoffOpts);
log(`Waiting for valid status 等待valid状态: ${item.url}`, this.backoffOpts);
return util.retry(verifyFn, this.backoffOpts);
}

View File

@@ -60,8 +60,9 @@ async function retryPromise(fn, attempts, backoff) {
throw e;
}
log(`Promise rejected: ${e.message}`);
const duration = backoff.duration();
log(`Promise rejected attempt #${backoff.attempts}, retrying in ${duration}ms: ${e.message}`);
log(`attempt #${backoff.attempts}, ${duration}ms 后重试: ${e.message}`);
await new Promise((resolve) => { setTimeout(resolve, duration); });
return retryPromise(fn, attempts, backoff);
@@ -241,7 +242,7 @@ async function resolveDomainBySoaRecord(recordName) {
*/
async function getAuthoritativeDnsResolver(recordName) {
log(`Locating authoritative NS records for name: ${recordName}`);
log(`Locating authoritative NS records for name: ${recordName} 获取域名的权威NS服务器`);
const resolver = new dns.Resolver();
try {
@@ -249,13 +250,14 @@ async function getAuthoritativeDnsResolver(recordName) {
const domain = await resolveDomainBySoaRecord(recordName);
/* Resolve authoritative NS addresses */
log(`Looking up authoritative NS records for domain: ${domain}`);
log(`Looking up authoritative NS records for domain获取域名的权威NS服务器: ${domain}`);
const nsRecords = await dns.resolveNs(domain);
log(`域名权威NS服务器${nsRecords}`);
const nsAddrArray = await Promise.all(nsRecords.map(async (r) => dns.resolve4(r)));
const nsAddresses = [].concat(...nsAddrArray).filter((a) => a);
if (!nsAddresses.length) {
throw new Error(`Unable to locate any valid authoritative NS addresses for domain: ${domain}`);
throw new Error(`Unable to locate any valid authoritative NS addresses for domain获取权威服务器IP失败: ${domain}`);
}
/* Authoritative NS success */
@@ -263,12 +265,12 @@ async function getAuthoritativeDnsResolver(recordName) {
resolver.setServers(nsAddresses);
}
catch (e) {
log(`Authoritative NS lookup error: ${e.message}`);
log(`Authoritative NS lookup error获取权威NS服务器地址失败: ${e.message}`);
}
/* Return resolver */
const addresses = resolver.getServers();
log(`DNS resolver addresses: ${addresses.join(', ')}`);
log(`DNS resolver addresses域名的权威NS服务器地址: ${addresses.join(', ')}`);
return resolver;
}

View File

@@ -113,14 +113,14 @@ 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: ${recordName}`);
log(`Resolving DNS TXT from record解析DNS TXT记录: ${recordName}`);
const recordValues = await walkTxtRecord(recordName);
log(`DNS query finished successfully, found ${recordValues.length} TXT records`);
log(`DNS query finished successfullyDNS查询成功, found ${recordValues.length} TXT records`);
if (!recordValues.length || !recordValues.includes(keyAuthorization)) {
throw new Error(`Authorization not found in DNS TXT record: ${recordName}need:${keyAuthorization},found:${recordValues}`);
throw new Error(`Authorization not found in DNS TXT record没有找到需要的DNS TXT记录: ${recordName}need:${keyAuthorization},found:${recordValues}`);
}
log(`Key authorization match for ${challenge.type}/${recordName}, ACME challenge verified`);
log(`Key authorization match for ${challenge.type}/${recordName}, ACME challenge verified(域名所有权校验成功)`);
return true;
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/basic
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/basic
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/basic

View File

@@ -1 +1 @@
02:06
23:48

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/basic",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -44,5 +44,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/pipeline
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/pipeline
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/pipeline",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,8 +16,8 @@
"test": "mocha --loader=ts-node/esm"
},
"dependencies": {
"@certd/basic": "^1.31.4",
"@certd/plus-core": "^1.31.4",
"@certd/basic": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"dayjs": "^1.11.7",
"lodash-es": "^4.17.21",
"reflect-metadata": "^0.1.13"
@@ -43,5 +43,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-huawei
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-huawei
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/lib-huawei

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-huawei",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"main": "./dist/bundle.js",
"module": "./dist/bundle.js",
"types": "./dist/d/index.d.ts",
@@ -23,5 +23,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-iframe
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-iframe
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/lib-iframe

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-iframe",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -30,5 +30,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-k8s
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-k8s
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/lib-k8s

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/lib-k8s",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"module": "./dist/index.js",
@@ -16,7 +16,7 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/basic": "^1.31.4",
"@certd/basic": "^1.31.6",
"@kubernetes/client-node": "0.21.0"
},
"devDependencies": {
@@ -31,5 +31,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/lib-server
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/lib-server
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/lib-server

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/lib-server",
"version": "1.31.4",
"version": "1.31.6",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -27,10 +27,10 @@
],
"license": "AGPL",
"dependencies": {
"@certd/acme-client": "^1.31.4",
"@certd/basic": "^1.31.4",
"@certd/pipeline": "^1.31.4",
"@certd/plus-core": "^1.31.4",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"@midwayjs/cache": "~3.14.0",
"@midwayjs/core": "~3.20.3",
"@midwayjs/i18n": "~3.20.3",
@@ -61,5 +61,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/midway-flyway-js
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
**Note:** Version bump only for package @certd/midway-flyway-js

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/midway-flyway-js",
"version": "1.31.4",
"version": "1.31.6",
"description": "midway with flyway, sql upgrade way ",
"private": false,
"type": "module",
@@ -46,5 +46,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -3,6 +3,14 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
**Note:** Version bump only for package @certd/plugin-cert
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/plugin-cert
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-cert",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -15,10 +15,10 @@
"preview": "vite preview"
},
"dependencies": {
"@certd/acme-client": "^1.31.4",
"@certd/basic": "^1.31.4",
"@certd/pipeline": "^1.31.4",
"@certd/plugin-lib": "^1.31.4",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plugin-lib": "^1.31.6",
"@google-cloud/publicca": "^1.3.0",
"dayjs": "^1.11.7",
"jszip": "^3.10.1",
@@ -41,5 +41,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -269,14 +269,14 @@ HTTP文件验证不支持泛域名需要配置网站文件上传`,
@TaskInput({
title: "检查解析重试次数",
value: 35,
value: 20,
component: {
name: "a-input-number",
vModel: "value",
},
helper: "检查域名验证解析记录重试次数,如果你的域名服务商解析生效速度慢,可以适当增加此值",
})
maxCheckRetryCount = 35;
maxCheckRetryCount = 20;
acme!: AcmeService;

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.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/plugin-lib
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Performance Improvements

View File

@@ -1,7 +1,7 @@
{
"name": "@certd/plugin-lib",
"private": false,
"version": "1.31.4",
"version": "1.31.6",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
@@ -16,8 +16,8 @@
},
"dependencies": {
"@alicloud/pop-core": "^1.7.10",
"@certd/basic": "^1.31.4",
"@certd/pipeline": "^1.31.4",
"@certd/basic": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@kubernetes/client-node": "0.21.0",
"ali-oss": "^6.21.0",
"basic-ftp": "^5.0.5",
@@ -48,5 +48,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "cfbbac9796477f830e1f57f77777f6554da9e31d"
"gitHead": "92446cb048e1bd7c57f36992d9ba376e9f4e7d3b"
}

View File

@@ -7,6 +7,8 @@ import { SshAccess } from "./ssh-access.js";
import stripAnsi from "strip-ansi";
import { SocksClient } from "socks";
import { SocksProxy, SocksProxyType } from "socks/typings/common/constants.js";
import fs from "fs";
export type TransportItem = { localPath: string; remotePath: string };
export class AsyncSsh2Client {
@@ -265,15 +267,15 @@ export class SshClient {
}
* @param options
*/
async uploadFiles(options: { connectConf: SshAccess; transports: TransportItem[]; mkdirs: boolean; opts?: { mode?: string } }) {
async uploadFiles(options: { connectConf: SshAccess; transports: TransportItem[]; mkdirs: boolean; opts?: { mode?: string }; uploadType?: string }) {
const { connectConf, transports, mkdirs, opts } = options;
await this._call({
connectConf,
callable: async (conn: AsyncSsh2Client) => {
const sftp = await conn.getSftp();
this.logger.info("开始上传");
for (const transport of transports) {
if (mkdirs !== false) {
if (mkdirs !== false) {
this.logger.info("初始化父目录");
for (const transport of transports) {
const filePath = path.dirname(transport.remotePath);
let mkdirCmd = `mkdir -p ${filePath} `;
if (conn.windows) {
@@ -291,13 +293,60 @@ export class SshClient {
}
await conn.exec(mkdirCmd);
}
await conn.fastPut({ sftp, ...transport, opts });
}
if (options.uploadType === "sftp") {
const sftp = await conn.getSftp();
for (const transport of transports) {
await conn.fastPut({ sftp, ...transport, opts });
}
} else {
//scp
for (const transport of transports) {
await this.scpUpload({ conn, ...transport, opts });
}
}
this.logger.info("文件全部上传成功");
},
});
}
async scpUpload(options: { conn: any; localPath: string; remotePath: string; opts?: { mode?: string } }) {
const { conn, localPath, remotePath } = options;
return new Promise((resolve, reject) => {
// 关键步骤:构造 SCP 命令
try {
this.logger.info(`开始上传:${localPath} => ${remotePath}`);
conn.conn.exec(
`scp -t ${remotePath}`, // -t 表示目标模式
(err, stream) => {
if (err) {
return reject(err);
}
// 准备 SCP 协议头
const fileStats = fs.statSync(localPath);
const fileName = path.basename(localPath);
// SCP 协议格式C[权限] [文件大小] [文件名]\n
stream.write(`C0644 ${fileStats.size} ${fileName}\n`);
// 通过管道传输文件
fs.createReadStream(localPath)
.pipe(stream)
.on("finish", () => {
this.logger.info(`上传文件成功:${localPath} => ${remotePath}`);
resolve(true);
})
.on("error", reject);
}
);
} catch (e) {
reject(e);
}
});
}
async removeFiles(opts: { connectConf: SshAccess; files: string[] }) {
const { connectConf, files } = opts;
await this._call({

View File

@@ -3,6 +3,19 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Performance Improvements
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
### Bug Fixes
* 修复通知选择器无法选择的bug ([f7b88f9](https://github.com/certd/certd/commit/f7b88f9e3b7d9d9122e4fd2003a20c555bd50c7d))
* 修复证书流水线创建失败的bug ([736fe03](https://github.com/certd/certd/commit/736fe038ebda56648bcc4c12884a700341d2c049))
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/ui-client",
"version": "1.31.4",
"version": "1.31.6",
"private": true,
"scripts": {
"dev": "vite --open",
@@ -96,8 +96,8 @@
"zod-defaults": "^0.1.3"
},
"devDependencies": {
"@certd/lib-iframe": "^1.31.4",
"@certd/pipeline": "^1.31.4",
"@certd/lib-iframe": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-node-resolve": "^15.2.3",
"@types/chai": "^4.3.12",

View File

@@ -55,9 +55,57 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xe61d;</span>
<div class="name">WAF-长亭-雷池</div>
<div class="code-name">&amp;#xe61d;</div>
<span class="icon iconfont">&#xecc0;</span>
<div class="name">plesk_</div>
<div class="code-name">&amp;#xecc0;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe741;</span>
<div class="name">易支付-01</div>
<div class="code-name">&amp;#xe741;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe606;</span>
<div class="name">1Panel</div>
<div class="code-name">&amp;#xe606;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe73c;</span>
<div class="name">西部数码</div>
<div class="code-name">&amp;#xe73c;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe607;</span>
<div class="name">qnap</div>
<div class="code-name">&amp;#xe607;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe9cc;</span>
<div class="name">proxmox</div>
<div class="code-name">&amp;#xe9cc;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe604;</span>
<div class="name">aws</div>
<div class="code-name">&amp;#xe604;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe602;</span>
<div class="name">uni-app</div>
<div class="code-name">&amp;#xe602;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe752;</span>
<div class="name">lucky</div>
<div class="code-name">&amp;#xe752;</div>
</li>
<li class="dib">
@@ -66,6 +114,12 @@
<div class="code-name">&amp;#xe719;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe748;</span>
<div class="name">雷池</div>
<div class="code-name">&amp;#xe748;</div>
</li>
<li class="dib">
<span class="icon iconfont">&#xe610;</span>
<div class="name">华为</div>
@@ -120,7 +174,7 @@
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.svg?t=1741879397012#iconfont') format('svg');
src: url('iconfont.svg?t=1742822771904#iconfont') format('svg');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
@@ -147,11 +201,83 @@
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-WAF-changting-leichi"></span>
<span class="icon iconfont icon-plesk"></span>
<div class="name">
WAF-长亭-雷池
plesk_
</div>
<div class="code-name">.icon-WAF-changting-leichi
<div class="code-name">.icon-plesk
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-yizhifu"></span>
<div class="name">
易支付-01
</div>
<div class="code-name">.icon-yizhifu
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-onepanel"></span>
<div class="name">
1Panel
</div>
<div class="code-name">.icon-onepanel
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-xibushuma"></span>
<div class="name">
西部数码
</div>
<div class="code-name">.icon-xibushuma
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-qnap"></span>
<div class="name">
qnap
</div>
<div class="code-name">.icon-qnap
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-proxmox"></span>
<div class="name">
proxmox
</div>
<div class="code-name">.icon-proxmox
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-aws"></span>
<div class="name">
aws
</div>
<div class="code-name">.icon-aws
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-uniapp"></span>
<div class="name">
uni-app
</div>
<div class="code-name">.icon-uniapp
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-lucky"></span>
<div class="name">
lucky
</div>
<div class="code-name">.icon-lucky
</div>
</li>
@@ -164,6 +290,15 @@
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-safeline"></span>
<div class="name">
雷池
</div>
<div class="code-name">.icon-safeline
</div>
</li>
<li class="dib">
<span class="icon iconfont icon-huawei"></span>
<div class="name">
@@ -247,10 +382,74 @@
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-WAF-changting-leichi"></use>
<use xlink:href="#icon-plesk"></use>
</svg>
<div class="name">WAF-长亭-雷池</div>
<div class="code-name">#icon-WAF-changting-leichi</div>
<div class="name">plesk_</div>
<div class="code-name">#icon-plesk</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-yizhifu"></use>
</svg>
<div class="name">易支付-01</div>
<div class="code-name">#icon-yizhifu</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-onepanel"></use>
</svg>
<div class="name">1Panel</div>
<div class="code-name">#icon-onepanel</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-xibushuma"></use>
</svg>
<div class="name">西部数码</div>
<div class="code-name">#icon-xibushuma</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-qnap"></use>
</svg>
<div class="name">qnap</div>
<div class="code-name">#icon-qnap</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-proxmox"></use>
</svg>
<div class="name">proxmox</div>
<div class="code-name">#icon-proxmox</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-aws"></use>
</svg>
<div class="name">aws</div>
<div class="code-name">#icon-aws</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-uniapp"></use>
</svg>
<div class="name">uni-app</div>
<div class="code-name">#icon-uniapp</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-lucky"></use>
</svg>
<div class="name">lucky</div>
<div class="code-name">#icon-lucky</div>
</li>
<li class="dib">
@@ -261,6 +460,14 @@
<div class="code-name">#icon-ctyun</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-safeline"></use>
</svg>
<div class="name">雷池</div>
<div class="code-name">#icon-safeline</div>
</li>
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-huawei"></use>

View File

@@ -1,6 +1,6 @@
@font-face {
font-family: "iconfont"; /* Project id 4688792 */
src: url('iconfont.svg?t=1741879397012#iconfont') format('svg');
src: url('iconfont.svg?t=1742822771904#iconfont') format('svg');
}
.iconfont {
@@ -11,14 +11,50 @@
-moz-osx-font-smoothing: grayscale;
}
.icon-WAF-changting-leichi:before {
content: "\e61d";
.icon-plesk:before {
content: "\ecc0";
}
.icon-yizhifu:before {
content: "\e741";
}
.icon-onepanel:before {
content: "\e606";
}
.icon-xibushuma:before {
content: "\e73c";
}
.icon-qnap:before {
content: "\e607";
}
.icon-proxmox:before {
content: "\e9cc";
}
.icon-aws:before {
content: "\e604";
}
.icon-uniapp:before {
content: "\e602";
}
.icon-lucky:before {
content: "\e752";
}
.icon-ctyun:before {
content: "\e719";
}
.icon-safeline:before {
content: "\e748";
}
.icon-huawei:before {
content: "\e610";
}

File diff suppressed because one or more lines are too long

View File

@@ -6,11 +6,67 @@
"description": "",
"glyphs": [
{
"icon_id": "35327761",
"name": "WAF-长亭-雷池",
"font_class": "WAF-changting-leichi",
"unicode": "e61d",
"unicode_decimal": 58909
"icon_id": "27272666",
"name": "plesk_",
"font_class": "plesk",
"unicode": "ecc0",
"unicode_decimal": 60608
},
{
"icon_id": "23930871",
"name": "易支付-01",
"font_class": "yizhifu",
"unicode": "e741",
"unicode_decimal": 59201
},
{
"icon_id": "40476533",
"name": "1Panel",
"font_class": "onepanel",
"unicode": "e606",
"unicode_decimal": 58886
},
{
"icon_id": "26435508",
"name": "西部数码",
"font_class": "xibushuma",
"unicode": "e73c",
"unicode_decimal": 59196
},
{
"icon_id": "27487624",
"name": "qnap",
"font_class": "qnap",
"unicode": "e607",
"unicode_decimal": 58887
},
{
"icon_id": "27268231",
"name": "proxmox",
"font_class": "proxmox",
"unicode": "e9cc",
"unicode_decimal": 59852
},
{
"icon_id": "31636255",
"name": "aws",
"font_class": "aws",
"unicode": "e604",
"unicode_decimal": 58884
},
{
"icon_id": "34071209",
"name": "uni-app",
"font_class": "uniapp",
"unicode": "e602",
"unicode_decimal": 58882
},
{
"icon_id": "3467975",
"name": "lucky",
"font_class": "lucky",
"unicode": "e752",
"unicode_decimal": 59218
},
{
"icon_id": "41854563",
@@ -19,6 +75,13 @@
"unicode": "e719",
"unicode_decimal": 59161
},
{
"icon_id": "43757703",
"name": "雷池",
"font_class": "safeline",
"unicode": "e748",
"unicode_decimal": 59208
},
{
"icon_id": "24164616",
"name": "华为",

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 39 KiB

View File

@@ -9,7 +9,7 @@
:dict="optionsDictRef"
:create-crud-options="createCrudOptions"
:crud-options-override="{
search: { show: false, initialForm: { fromType: 'upload' } },
search: { show: false },
table: {
scroll: {
x: 540,

View File

@@ -52,7 +52,7 @@ export function useCertd(certdFormRef: any) {
await checkPipelineLimit();
certdFormRef.value.open(async ({ form }: any) => {
const certDetail = readCertDetail(form.cert.crt);
// const certDetail = readCertDetail(form.cert.crt);
// 添加certd pipeline
const triggers = [];
if (form.triggerCron) {

View File

@@ -3,6 +3,21 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.31.6](https://github.com/certd/certd/compare/v1.31.5...v1.31.6) (2025-03-24)
### Bug Fixes
* 修复dns.la无法申请证书的bug ([90b045a](https://github.com/certd/certd/commit/90b045af6d1a4f46986e4b118885c1f050df067c))
### Performance Improvements
* 上传到主机支持scp方式 ([05b6159](https://github.com/certd/certd/commit/05b6159802b9e85b6a410361b60b5c28875b48e7))
* 优化图标 ([c56f48c](https://github.com/certd/certd/commit/c56f48c1e3c54c4e203fafb380d9091d75681b7e))
## [1.31.5](https://github.com/certd/certd/compare/v1.31.4...v1.31.5) (2025-03-22)
**Note:** Version bump only for package @certd/ui-server
## [1.31.4](https://github.com/certd/certd/compare/v1.31.3...v1.31.4) (2025-03-21)
### Bug Fixes

View File

@@ -1,6 +1,6 @@
{
"name": "@certd/ui-server",
"version": "1.31.4",
"version": "1.31.6",
"description": "fast-server base midway",
"private": true,
"type": "module",
@@ -38,18 +38,18 @@
"@aws-sdk/client-acm": "^3.699.0",
"@aws-sdk/client-cloudfront": "^3.699.0",
"@aws-sdk/client-s3": "^3.705.0",
"@certd/acme-client": "^1.31.4",
"@certd/basic": "^1.31.4",
"@certd/commercial-core": "^1.31.4",
"@certd/lib-huawei": "^1.31.4",
"@certd/lib-k8s": "^1.31.4",
"@certd/lib-server": "^1.31.4",
"@certd/midway-flyway-js": "^1.31.4",
"@certd/pipeline": "^1.31.4",
"@certd/plugin-cert": "^1.31.4",
"@certd/plugin-lib": "^1.31.4",
"@certd/plugin-plus": "^1.31.4",
"@certd/plus-core": "^1.31.4",
"@certd/acme-client": "^1.31.6",
"@certd/basic": "^1.31.6",
"@certd/commercial-core": "^1.31.6",
"@certd/lib-huawei": "^1.31.6",
"@certd/lib-k8s": "^1.31.6",
"@certd/lib-server": "^1.31.6",
"@certd/midway-flyway-js": "^1.31.6",
"@certd/pipeline": "^1.31.6",
"@certd/plugin-cert": "^1.31.6",
"@certd/plugin-lib": "^1.31.6",
"@certd/plugin-plus": "^1.31.6",
"@certd/plus-core": "^1.31.6",
"@corsinvest/cv4pve-api-javascript": "^8.3.0",
"@huaweicloud/huaweicloud-sdk-cdn": "^3.1.120",
"@huaweicloud/huaweicloud-sdk-core": "^3.1.120",

View File

@@ -8,7 +8,7 @@ import { AliyunAccess, AliyunClient } from '@certd/plugin-lib';
title: '阿里云',
desc: '阿里云DNS解析提供商',
accessType: 'aliyun',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
})
export class AliyunDnsProvider extends AbstractDnsProvider {
client: any;

View File

@@ -5,7 +5,7 @@ import { AliyunAccess, AliyunClient, AliyunSslClient, createCertDomainGetterInpu
@IsTaskPlugin({
name: 'AliyunDeployCertToALB',
title: '阿里云-部署至ALB应用负载均衡',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: 'ALB,更新监听器的默认证书',
needPlus: false,

View File

@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunCDN',
title: '阿里云-部署证书至CDN',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '自动部署域名证书至阿里云CDN',
default: {

View File

@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunDCDN',
title: '阿里云-部署证书至DCDN',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '依赖证书申请前置任务自动部署域名证书至阿里云DCDN',
default: {

View File

@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToFC',
title: '阿里云-部署至阿里云FC(3.0)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云函数计算FC3.0,【注意】证书的加密算法必须选择【pkcs1旧版】',
needPlus: true,

View File

@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToNLB',
title: '阿里云-部署至NLB网络负载均衡',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: 'NLB,网络负载均衡,更新监听器的默认证书',
needPlus: false,

View File

@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'DeployCertToAliyunOSS',
title: '阿里云-部署证书至OSS',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '自动部署域名证书至阿里云OSS',
default: {

View File

@@ -5,7 +5,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToSLB',
title: '阿里云-部署至SLB(传统负载均衡)',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云SLB(传统负载均衡)',
needPlus: false,

View File

@@ -6,7 +6,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'AliyunDeployCertToWaf',
title: '阿里云-部署至阿里云WAF',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '部署证书到阿里云WAF',
needPlus: true,

View File

@@ -24,7 +24,7 @@ const regionDict = [
@IsTaskPlugin({
name: 'uploadCertToAliyun',
title: '阿里云-上传证书到阿里云',
icon: 'ant-design:aliyun-outlined',
icon: 'svg:icon-aliyun',
group: pluginGroups.aliyun.key,
desc: '如果不想在阿里云上同一份证书上传多次,可以把此任务作为前置任务,其他阿里云任务证书那一项选择此任务的输出',
default: {

View File

@@ -37,7 +37,7 @@ export const AwsRegions = [
name: 'aws',
title: '亚马逊云aws授权',
desc: '',
icon: 'ant-design:aws-outlined',
icon: 'svg:icon-aws',
})
export class AwsAccess extends BaseAccess {
@AccessInput({

View File

@@ -10,7 +10,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
name: 'AwsDeployToCloudFront',
title: 'AWS-部署证书到CloudFront',
desc: '部署证书到 AWS CloudFront',
icon: 'clarity:plugin-line',
icon: 'svg:icon-aws',
group: pluginGroups.aws.key,
needPlus: true,
default: {

View File

@@ -7,7 +7,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
name: 'AwsUploadToACM',
title: 'AWS-上传证书到ACM',
desc: '上传证书 AWS ACM',
icon: 'clarity:plugin-line',
icon: 'svg:icon-aws',
group: pluginGroups.aws.key,
default: {
strategy: {

View File

@@ -144,9 +144,9 @@ export class DnslaDnsProvider extends AbstractDnsProvider<DnslaRecord> {
const res = await this.doRequestApi(url, {
domainId: domainId,
type: 16,
host: fullRecord,
host: fullRecord.replace(`.${domain}`, ''),
data: value,
ttl: 1,
ttl: 60,
});
return res.data;

View File

@@ -179,6 +179,21 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
})
accessId!: string;
@TaskInput({
title: '上传方式',
helper: '选择上传方式sftp或者scp',
value:"sftp",
component: {
name: 'a-select',
options: [
{ value: 'sftp', label: 'sftp' },
{ value: 'scp', label: 'scp' },
],
},
required: true,
})
uploadType: string = 'sftp';
@TaskInput({
title: '自动创建远程目录',
helper: '是否自动创建远程目录,如果关闭则你需要自己确保远程目录存在',
@@ -249,18 +264,7 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
async onInstance() {}
// copyFile(srcFile: string, destFile: string) {
// if (!srcFile || !destFile) {
// this.logger.warn(`srcFile:${srcFile} 或 destFile:${destFile} 为空,不复制`);
// return;
// }
// const dir = destFile.substring(0, destFile.lastIndexOf('/'));
// if (!fs.existsSync(dir)) {
// fs.mkdirSync(dir, { recursive: true });
// }
// fs.copyFileSync(srcFile, destFile);
// this.logger.info(`复制文件:${srcFile} => ${destFile}`);
// }
async execute(): Promise<void> {
const { cert, accessId } = this;
let { crtPath, keyPath, icPath, pfxPath, derPath, jksPath, onePath } = this;
@@ -268,16 +272,6 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
const handle = async (opts: CertReaderHandleContext) => {
const { tmpCrtPath, tmpKeyPath, tmpDerPath, tmpJksPath, tmpPfxPath, tmpIcPath, tmpOnePath } = opts;
// if (this.copyToThisHost) {
// this.logger.info('复制到目标路径');
// this.copyFile(tmpCrtPath, crtPath);
// this.copyFile(tmpKeyPath, keyPath);
// this.copyFile(tmpIcPath, this.icPath);
// this.copyFile(tmpPfxPath, this.pfxPath);
// this.copyFile(tmpDerPath, this.derPath);
// this.logger.warn('复制到当前主机功能已迁移到 “复制到本机”插件,请尽快换成复制到本机插件');
// return;
// }
if (accessId == null) {
this.logger.error('复制到当前主机功能已迁移到 “复制到本机”插件,请换成复制到本机插件');
@@ -355,7 +349,9 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
connectConf,
transports,
mkdirs: this.mkdirs,
uploadType: this.uploadType,
});
this.logger.info('上传文件到服务器成功');
//输出
this.hostCrtPath = crtPath;

View File

@@ -8,7 +8,7 @@ import { IsAccess, AccessInput, BaseAccess } from '@certd/pipeline';
name: 'proxmox',
title: 'proxmox',
desc: '',
icon: 'svg:icon-dogecloud',
icon: 'svg:icon-proxmox',
})
export class ProxmoxAccess extends BaseAccess {
/**

View File

@@ -8,7 +8,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
//命名规范,插件名称+功能就是目录plugin-demo中的demo大写字母开头驼峰命名
name: 'ProxmoxUploadCert',
title: '上传证书到Proxmox',
icon: 'clarity:plugin-line',
icon: 'svg:icon-proxmox',
//插件分组
group: pluginGroups.other.key,
needPlus: true,

View File

@@ -8,7 +8,7 @@ import { CertApplyPluginNames} from '@certd/plugin-cert';
@IsTaskPlugin({
name: 'QnapDeploy',
title: '威联通-部署证书到威联通',
icon: 'simple-icons:qnap',
icon: 'svg:icon-qnap',
group: pluginGroups.panel.key,
desc: '部署证书到qnap',
default: {

View File

@@ -17,7 +17,7 @@ type westRecord = {
name: 'west',
title: '西部数码',
desc: 'west dns provider',
icon: 'tabler:map-west',
icon: 'svg:icon-xibushuma',
// 这里是对应的云平台的access类型名称
accessType: 'west',
})

83
pnpm-lock.yaml generated
View File

@@ -46,7 +46,7 @@ importers:
packages/core/acme-client:
dependencies:
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../basic
'@peculiar/x509':
specifier: ^1.11.0
@@ -204,10 +204,10 @@ importers:
packages/core/pipeline:
dependencies:
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../basic
'@certd/plus-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../pro/plus-core
dayjs:
specifier: ^1.11.7
@@ -342,7 +342,7 @@ importers:
packages/libs/lib-k8s:
dependencies:
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@kubernetes/client-node':
specifier: 0.21.0
@@ -382,16 +382,16 @@ importers:
packages/libs/lib-server:
dependencies:
'@certd/acme-client':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/acme-client
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@certd/plus-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../pro/plus-core
'@midwayjs/cache':
specifier: ~3.14.0
@@ -534,16 +534,16 @@ importers:
packages/plugins/plugin-cert:
dependencies:
'@certd/acme-client':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/acme-client
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@certd/plugin-lib':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../plugin-lib
'@google-cloud/publicca':
specifier: ^1.3.0
@@ -610,10 +610,10 @@ importers:
specifier: ^1.7.10
version: 1.8.0
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@kubernetes/client-node':
specifier: 0.21.0
@@ -701,19 +701,19 @@ importers:
packages/pro/commercial-core:
dependencies:
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/lib-server':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-server
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@certd/plugin-plus':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../plugin-plus
'@certd/plus-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../plus-core
'@midwayjs/core':
specifier: ~3.20.3
@@ -798,22 +798,22 @@ importers:
specifier: ^1.0.2
version: 1.0.2
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/lib-k8s':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-k8s
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@certd/plugin-cert':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../plugins/plugin-cert
'@certd/plugin-lib':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../plugins/plugin-lib
'@certd/plus-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../plus-core
ali-oss:
specifier: ^6.21.0
@@ -910,7 +910,7 @@ importers:
packages/pro/plus-core:
dependencies:
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
dayjs:
specifier: ^1.11.7
@@ -1072,9 +1072,6 @@ importers:
cropperjs:
specifier: ^1.6.1
version: 1.6.2
crypto-js:
specifier: ^4.2.0
version: 4.2.0
cssnano:
specifier: ^7.0.6
version: 7.0.6(postcss@8.5.3)
@@ -1188,10 +1185,10 @@ importers:
version: 0.1.3(zod@3.24.2)
devDependencies:
'@certd/lib-iframe':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-iframe
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@rollup/plugin-commonjs':
specifier: ^25.0.7
@@ -1371,40 +1368,40 @@ importers:
specifier: ^3.705.0
version: 3.758.0(aws-crt@1.25.3)
'@certd/acme-client':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/acme-client
'@certd/basic':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/basic
'@certd/commercial-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../pro/commercial-core
'@certd/lib-huawei':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-huawei
'@certd/lib-k8s':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-k8s
'@certd/lib-server':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/lib-server
'@certd/midway-flyway-js':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../libs/midway-flyway-js
'@certd/pipeline':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../core/pipeline
'@certd/plugin-cert':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../plugins/plugin-cert
'@certd/plugin-lib':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../plugins/plugin-lib
'@certd/plugin-plus':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../pro/plugin-plus
'@certd/plus-core':
specifier: ^1.31.3
specifier: ^1.31.5
version: link:../../pro/plus-core
'@corsinvest/cv4pve-api-javascript':
specifier: ^8.3.0