Compare commits

...

6 Commits

Author SHA1 Message Date
xiaojunnuo d4653678b2 perf: 优化阿里云clb 过期证书清理报错的问题 2025-11-18 18:09:59 +08:00
xiaojunnuo a4ce752e58 chore: 阿里云nlb证书清理增加日志打印 2025-11-18 18:02:55 +08:00
xiaojunnuo f6649398ef chore: 清理过期证书增加日志打印 2025-11-18 18:01:23 +08:00
xiaojunnuo 02859cc270 build: release 2025-11-18 01:28:48 +08:00
xiaojunnuo 4ed30e082f build: publish 2025-11-18 01:18:48 +08:00
xiaojunnuo d3985dd129 build: trigger build image 2025-11-18 01:18:32 +08:00
17 changed files with 60 additions and 33 deletions
+11
View File
@@ -3,6 +3,17 @@
All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
## [1.37.8](https://github.com/certd/certd/compare/v1.37.7...v1.37.8) (2025-11-17)
### Bug Fixes
* **plugins/woai-cdn:** 修正默认接口域名与帮助链接中的路径 ([#576](https://github.com/certd/certd/issues/576)) @LjyLab ([d20046c](https://github.com/certd/certd/commit/d20046c86681ea177ece434423b7c81a76b437fb))
### Performance Improvements
* 修复西数解析记录添加失败的bug,支持部署证书到西数虚拟主机 ([1102952](https://github.com/certd/certd/commit/1102952b4703e8c0bbc17b0700c0ed3ef6f866d3))
* 支持回车键触发登录 ([eb5c88f](https://github.com/certd/certd/commit/eb5c88fbb2901f1a9669429a7cd8dc76f6806d01))
## [1.37.7](https://github.com/certd/certd/compare/v1.37.6...v1.37.7) (2025-11-12)
### Bug Fixes
+14 -13
View File
@@ -1,5 +1,5 @@
# 任务插件
`102` 款任务插件
`103` 款任务插件
## 1. 证书申请
| 序号 | 名称 | 说明 |
@@ -29,18 +29,19 @@
| 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证书 |
| 9.| **西数-部署到虚拟主机** | 西部数码部署证书到虚拟主机 |
| 10.| **多吉云-部署到多吉云CDN** | |
| 11.| **我爱云-部署证书到我爱云CDN** | 部署证书到我爱云CDN |
| 12.| **CacheFly-部署证书到CacheFly** | 部署证书到 CacheFly |
| 13.| **Gcore-部署证书到Gcore** | 仅上传 并不会部署到cdn |
| 14.| **Gcore-刷新Gcore证书** | 刷新现有的证书 |
| 15.| **又拍云-部署证书到CDN/USS** | 支持又拍云CDN,又拍云云存储USS |
| 16.| **FlexCDN-更新证书** | |
| 17.| **farcdn-更新证书** | www.farcdn.net |
| 18.| **雨云-更新证书** | app.rainyun.com |
| 19.| **网宿-更新证书** | 网宿证书自动更新 |
| 20.| **金山云-更新CDN证书** | 金山云自动更新CDN证书 |
| 21.| **APISIX-更新证书** | 自动更新APISIX证书 |
## 4. 面板
| 序号 | 名称 | 说明 |
+1 -1
View File
@@ -70,5 +70,5 @@
"bugs": {
"url": "https://github.com/publishlab/node-acme-client/issues"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -46,5 +46,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -45,5 +45,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -24,5 +24,5 @@
"prettier": "^2.8.8",
"tslib": "^2.8.1"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -31,5 +31,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -61,5 +61,5 @@
"fetch"
]
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -32,5 +32,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -64,5 +64,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -46,5 +46,5 @@
"typeorm": "^0.3.11",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -43,5 +43,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
+1 -1
View File
@@ -53,5 +53,5 @@
"tslib": "^2.8.1",
"typescript": "^5.4.2"
},
"gitHead": "55d2a1f09b617bc73bd81a65796446c4602ed1b2"
"gitHead": "ac70821fea8fb283709870a3eb08f1cd92c94aeb"
}
@@ -155,10 +155,14 @@ export class AliyunDeployCertToALB extends AbstractTaskPlugin {
const client = await this.getLBClient(access, this.regionId);
await this.deployDefaultCert(certId, client);
}
await this.ctx.utils.sleep(10000)
this.logger.info(`准备开始清理过期证书`);
await this.ctx.utils.sleep(20000)
for (const listener of this.listeners) {
await this.clearInvalidCert(albClientV2, listener);
try{
await this.clearInvalidCert(albClientV2, listener);
}catch(e){
this.logger.error(`清理监听器${listener}的过期证书失败`, e);
}
}
@@ -236,6 +240,7 @@ export class AliyunDeployCertToALB extends AbstractTaskPlugin {
const certIds = [];
for (const item of list) {
this.logger.info(`监听器${listener}绑定的证书${item.CertificateId},status:${item.Status},IsDefault:${item.IsDefault}`);
if (item.Status !== "Associated") {
continue;
}
@@ -244,10 +249,12 @@ export class AliyunDeployCertToALB extends AbstractTaskPlugin {
}
certIds.push( parseInt(item.CertificateId));
}
this.logger.info(`监听器${listener}绑定的证书${certIds}`);
//检查是否过期,过期则删除
const invalidCertIds = [];
for (const certId of certIds) {
const res = await sslClient.getCertInfo(certId);
this.logger.info(`证书${certId}过期时间:${res.notAfter}`);
if (res.notAfter < new Date().getTime()) {
invalidCertIds.push(certId);
}
@@ -256,7 +263,7 @@ export class AliyunDeployCertToALB extends AbstractTaskPlugin {
this.logger.info(`监听器${listener}没有过期的证书`);
return
}
this.logger.info(`开始解绑过期的证书:${invalidCertIds}`);
this.logger.info(`开始解绑过期的证书:${invalidCertIds}listener:${listener}`);
await client.doRequest({
// 接口名称
action: "DissociateAdditionalCertificatesFromListener",
@@ -152,9 +152,14 @@ export class AliyunDeployCertToNLB extends AbstractTaskPlugin {
await this.deployDefaultCert(certId, client);
}
await this.ctx.utils.sleep(10000)
this.logger.info(`准备开始清理过期证书`);
await this.ctx.utils.sleep(20000)
for (const listener of this.listeners) {
await this.clearInvalidCert(nlbClientV2, listener);
try{
await this.clearInvalidCert(nlbClientV2, listener);
}catch(e){
this.logger.error(`清理监听器${listener}的过期证书失败`, e);
}
}
this.logger.info('执行完成');
@@ -232,6 +237,7 @@ export class AliyunDeployCertToNLB extends AbstractTaskPlugin {
const certIds = [];
for (const item of list) {
this.logger.info(`监听器${listener}绑定的证书${item.CertificateId},status:${item.Status},IsDefault:${item.IsDefault}`);
if (item.Status !== "Associated") {
continue;
}
@@ -240,10 +246,12 @@ export class AliyunDeployCertToNLB extends AbstractTaskPlugin {
}
certIds.push( parseInt(item.CertificateId));
}
this.logger.info(`监听器${listener}绑定的证书${certIds}`);
//检查是否过期,过期则删除
const invalidCertIds = [];
for (const certId of certIds) {
const res = await sslClient.getCertInfo(certId);
this.logger.info(`证书${certId}过期时间:${res.notAfter}`);
if (res.notAfter < new Date().getTime()) {
invalidCertIds.push(certId);
}
@@ -252,7 +260,7 @@ export class AliyunDeployCertToNLB extends AbstractTaskPlugin {
this.logger.info(`监听器${listener}没有过期的证书`);
return
}
this.logger.info(`开始解绑过期的证书:${invalidCertIds}`);
this.logger.info(`开始解绑过期的证书:${invalidCertIds},listener:${listener}`);
const ids:any = {}
let i = 0
+1 -1
View File
@@ -1 +1 @@
01:16
01:18
+1 -1
View File
@@ -1 +1 @@
01:31
01:28