pull/409/head
xiaojunnuo 2025-05-26 22:44:56 +08:00
parent e08cf57b72
commit 86e521b9aa
7 changed files with 37 additions and 13 deletions

View File

@ -228,13 +228,10 @@ export abstract class AbstractTaskPlugin implements ITaskPlugin {
} }
buildCertName(domain: string) { buildCertName(domain: string) {
if (domain.includes("*")) { domain = domain.replaceAll("*", "_").replaceAll(".", "_");
domain = domain.replaceAll("*", "_");
}
return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`; return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`;
} }
async onRequest(req: PluginRequestHandleReq<any>) { async onRequest(req: PluginRequestHandleReq<any>) {
if (!req.action) { if (!req.action) {
throw new Error("action is required"); throw new Error("action is required");

View File

@ -93,6 +93,11 @@ export class CertReader {
return domains; return domains;
} }
getAltNames() {
const { detail } = this.getCrtDetail();
return detail.domains.altNames;
}
static getMainDomain(crt: string) { static getMainDomain(crt: string) {
const { detail } = CertReader.readCertDetail(crt); const { detail } = CertReader.readCertDetail(crt);
return detail.domains.commonName; return detail.domains.commonName;
@ -174,8 +179,14 @@ export class CertReader {
buildCertFileName(suffix: string, applyTime: any, prefix = "cert") { buildCertFileName(suffix: string, applyTime: any, prefix = "cert") {
const detail = this.getCrtDetail(); const detail = this.getCrtDetail();
let domain = detail.detail.domains.commonName; let domain = detail.detail.domains.commonName;
domain = domain.replace(".", "_").replace("*", "_"); domain = domain.replaceAll(".", "_").replaceAll("*", "_");
const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss"); const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss");
return `${prefix}_${domain}_${timeStr}.${suffix}`; return `${prefix}_${domain}_${timeStr}.${suffix}`;
} }
buildCertName() {
let domain = this.getMainDomain();
domain = domain.replaceAll("*", "_").replaceAll("*", "_");
return `${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`;
}
} }

View File

@ -83,7 +83,7 @@ export class AliyunSslClient {
method: "POST", method: "POST",
}; };
this.opts.logger.info("开始上传证书"); this.opts.logger.info(`开始上传证书:${req.name}`);
const ret: any = await client.request("UploadUserCertificate", params, requestOption); const ret: any = await client.request("UploadUserCertificate", params, requestOption);
this.checkRet(ret); this.checkRet(ret);
this.opts.logger.info("证书上传成功aliyunCertId=", ret.CertId); this.opts.logger.info("证书上传成功aliyunCertId=", ret.CertId);

View File

@ -50,9 +50,22 @@ export class TencentSslClient {
const ret = await client.UploadCertificate(params); const ret = await client.UploadCertificate(params);
this.checkRet(ret); this.checkRet(ret);
this.logger.info("证书上传成功tencentCertId=", ret.CertificateId); this.logger.info("证书上传成功tencentCertId=", ret.CertificateId);
await this.switchCertNotify([ret.CertificateId], true);
return ret.CertificateId; return ret.CertificateId;
} }
async switchCertNotify(certIds: string[], disabled: boolean) {
const client = await this.getSslClient();
const params = {
CertificateIds: certIds,
SwitchStatus: disabled ? 1 : 0, //1是忽略通知0是不忽略
};
const ret = await client.ModifyCertificatesExpiringNotificationSwitch(params);
this.checkRet(ret);
this.logger.info(`关闭证书${certIds}过期通知成功`);
return ret.RequestId;
}
async deployCertificateInstance(params: any) { async deployCertificateInstance(params: any) {
const client = await this.getSslClient(); const client = await this.getSslClient();
const res = await client.DeployCertificateInstance(params); const res = await client.DeployCertificateInstance(params);

View File

@ -140,7 +140,7 @@ function createRequestFunction(service: any) {
headers: { headers: {
"Content-Type": get(config, "headers.Content-Type", "application/json"), "Content-Type": get(config, "headers.Content-Type", "application/json"),
}, },
timeout: 20000, timeout: 30000,
baseURL: env.API, baseURL: env.API,
data: {}, data: {},
}; };

View File

@ -70,9 +70,10 @@ export class FarcdnAccess extends BaseAccess {
return "ok"; return "ok";
} }
}catch (e) { }catch (e) {
if(e.message.indexOf("null")){ if(e.message.indexOf("11111111")>-1){
return "ok"; return "ok";
} }
throw e;
} }
throw "测试失败,未知错误"; throw "测试失败,未知错误";
@ -103,10 +104,12 @@ export class FarcdnAccess extends BaseAccess {
const params = { const params = {
sslCertId, sslCertId,
}; };
return await this.doRequest({ const res= await this.doRequest({
url: "/findSSLCertConfig", url: "/findSSLCertConfig",
data: params data: params
}); });
this.ctx.logger.info(`找到证书${sslCertId}: name=${res.name},domain=${res.commonNames},dnsNames=${res.dnsNames}`);
return res
} }
async updateSSLCert(req:{ async updateSSLCert(req:{
@ -163,10 +166,10 @@ export class FarcdnAccess extends BaseAccess {
data: params data: params
}); });
if (res.data.code === 200) { if (res.code === "200") {
return res.data.data; return res.data;
} }
throw new Error(res.data.message); throw new Error(res.message);
} }
} }

View File

@ -78,7 +78,7 @@ export class FarcdnRefreshCert extends AbstractPlusTaskPlugin {
} }
async onGetCertList() { async onGetCertList() {
throw new Error("暂无查询证书列表接口"); throw new Error("暂无查询证书列表接口您需要手动输入证书id");
// const access = await this.getAccess<FarcdnAccess>(this.accessId); // const access = await this.getAccess<FarcdnAccess>(this.accessId);
// const res = await access.doRequest({ // const res = await access.doRequest({