@certd/plugin-cert 1.41.3 → 1.41.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/package.json +6 -6
- package/dist/access/eab-access.d.ts +0 -6
- package/dist/access/eab-access.js +0 -62
- package/dist/access/google-access.d.ts +0 -8
- package/dist/access/google-access.js +0 -119
- package/dist/access/index.d.ts +0 -2
- package/dist/access/index.js +0 -3
- package/dist/dns-provider/api.d.ts +0 -76
- package/dist/dns-provider/api.js +0 -2
- package/dist/dns-provider/base.d.ts +0 -27
- package/dist/dns-provider/base.js +0 -49
- package/dist/dns-provider/decorator.d.ts +0 -3
- package/dist/dns-provider/decorator.js +0 -18
- package/dist/dns-provider/domain-parser.d.ts +0 -9
- package/dist/dns-provider/domain-parser.js +0 -64
- package/dist/dns-provider/index.d.ts +0 -5
- package/dist/dns-provider/index.js +0 -6
- package/dist/dns-provider/registry.d.ts +0 -1
- package/dist/dns-provider/registry.js +0 -3
- package/dist/libs/google.d.ts +0 -11
- package/dist/libs/google.js +0 -59
- package/dist/plugin/cert-plugin/acme.d.ts +0 -123
- package/dist/plugin/cert-plugin/acme.js +0 -362
- package/dist/plugin/cert-plugin/base-convert.d.ts +0 -25
- package/dist/plugin/cert-plugin/base-convert.js +0 -210
- package/dist/plugin/cert-plugin/base.d.ts +0 -27
- package/dist/plugin/cert-plugin/base.js +0 -175
- package/dist/plugin/cert-plugin/cert-reader.d.ts +0 -51
- package/dist/plugin/cert-plugin/cert-reader.js +0 -206
- package/dist/plugin/cert-plugin/convert.d.ts +0 -26
- package/dist/plugin/cert-plugin/convert.js +0 -124
- package/dist/plugin/cert-plugin/custom/index.d.ts +0 -24
- package/dist/plugin/cert-plugin/custom/index.js +0 -202
- package/dist/plugin/cert-plugin/getter/aliyun.d.ts +0 -19
- package/dist/plugin/cert-plugin/getter/aliyun.js +0 -165
- package/dist/plugin/cert-plugin/index.d.ts +0 -62
- package/dist/plugin/cert-plugin/index.js +0 -672
- package/dist/plugin/cert-plugin/lego/dns.d.ts +0 -1
- package/dist/plugin/cert-plugin/lego/dns.js +0 -2
- package/dist/plugin/cert-plugin/lego/index.d.ts +0 -21
- package/dist/plugin/cert-plugin/lego/index.js +0 -256
- package/dist/plugin/index.d.ts +0 -6
- package/dist/plugin/index.js +0 -7
- package/stats.html +0 -6177
- package/test/dist/cert-plugin.test.js +0 -14
- package/test/dist/test/cert-plugin.test.js +0 -15
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { AbstractTaskPlugin, TaskInput, TaskOutput } from "@certd/pipeline";
|
|
11
|
-
import dayjs from "dayjs";
|
|
12
|
-
import { CertReader } from "./cert-reader.js";
|
|
13
|
-
import JSZip from "jszip";
|
|
14
|
-
import { CertConverter } from "./convert.js";
|
|
15
|
-
export const EVENT_CERT_APPLY_SUCCESS = "CertApply.success";
|
|
16
|
-
export class CertApplyBaseConvertPlugin extends AbstractTaskPlugin {
|
|
17
|
-
domains;
|
|
18
|
-
pfxPassword;
|
|
19
|
-
pfxArgs = "-macalg SHA1 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES";
|
|
20
|
-
userContext;
|
|
21
|
-
lastStatus;
|
|
22
|
-
cert;
|
|
23
|
-
certZip;
|
|
24
|
-
async onInstance() {
|
|
25
|
-
this.userContext = this.ctx.userContext;
|
|
26
|
-
this.lastStatus = this.ctx.lastStatus;
|
|
27
|
-
await this.onInit();
|
|
28
|
-
}
|
|
29
|
-
//必须output之后执行
|
|
30
|
-
async emitCertApplySuccess() {
|
|
31
|
-
const emitter = this.ctx.emitter;
|
|
32
|
-
const value = {
|
|
33
|
-
cert: this.cert,
|
|
34
|
-
file: this._result.files[0].path,
|
|
35
|
-
};
|
|
36
|
-
await emitter.emit(EVENT_CERT_APPLY_SUCCESS, value);
|
|
37
|
-
}
|
|
38
|
-
async output(certReader, isNew) {
|
|
39
|
-
const cert = certReader.toCertInfo();
|
|
40
|
-
this.cert = cert;
|
|
41
|
-
this._result.pipelineVars.certEffectiveTime = dayjs(certReader.detail.notBefore).valueOf();
|
|
42
|
-
this._result.pipelineVars.certExpiresTime = dayjs(certReader.detail.notAfter).valueOf();
|
|
43
|
-
if (!this._result.pipelinePrivateVars) {
|
|
44
|
-
this._result.pipelinePrivateVars = {};
|
|
45
|
-
}
|
|
46
|
-
this._result.pipelinePrivateVars.cert = cert;
|
|
47
|
-
if (isNew) {
|
|
48
|
-
try {
|
|
49
|
-
const converter = new CertConverter({ logger: this.logger });
|
|
50
|
-
const res = await converter.convert({
|
|
51
|
-
cert,
|
|
52
|
-
pfxPassword: this.pfxPassword,
|
|
53
|
-
pfxArgs: this.pfxArgs,
|
|
54
|
-
});
|
|
55
|
-
if (cert.pfx == null && res.pfx) {
|
|
56
|
-
cert.pfx = res.pfx;
|
|
57
|
-
}
|
|
58
|
-
if (cert.der == null && res.der) {
|
|
59
|
-
cert.der = res.der;
|
|
60
|
-
}
|
|
61
|
-
if (cert.jks == null && res.jks) {
|
|
62
|
-
cert.jks = res.jks;
|
|
63
|
-
}
|
|
64
|
-
if (cert.p7b == null && res.p7b) {
|
|
65
|
-
cert.p7b = res.p7b;
|
|
66
|
-
}
|
|
67
|
-
this.logger.info("转换证书格式成功");
|
|
68
|
-
}
|
|
69
|
-
catch (e) {
|
|
70
|
-
this.logger.error("转换证书格式失败", e);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
if (isNew) {
|
|
74
|
-
const zipFileName = certReader.buildCertFileName("zip", certReader.detail.notBefore);
|
|
75
|
-
await this.zipCert(cert, zipFileName);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
this.extendsFiles();
|
|
79
|
-
}
|
|
80
|
-
this.certZip = this._result.files[0];
|
|
81
|
-
}
|
|
82
|
-
async zipCert(cert, filename) {
|
|
83
|
-
const zip = new JSZip();
|
|
84
|
-
zip.file("证书.pem", cert.crt);
|
|
85
|
-
zip.file("私钥.pem", cert.key);
|
|
86
|
-
zip.file("中间证书.pem", cert.ic);
|
|
87
|
-
zip.file("cert.crt", cert.crt);
|
|
88
|
-
zip.file("cert.key", cert.key);
|
|
89
|
-
zip.file("intermediate.crt", cert.ic);
|
|
90
|
-
zip.file("origin.crt", cert.oc);
|
|
91
|
-
zip.file("one.pem", cert.one);
|
|
92
|
-
zip.file("cert.p7b", cert.p7b);
|
|
93
|
-
if (cert.pfx) {
|
|
94
|
-
zip.file("cert.pfx", Buffer.from(cert.pfx, "base64"));
|
|
95
|
-
}
|
|
96
|
-
if (cert.der) {
|
|
97
|
-
zip.file("cert.der", Buffer.from(cert.der, "base64"));
|
|
98
|
-
}
|
|
99
|
-
if (cert.jks) {
|
|
100
|
-
zip.file("cert.jks", Buffer.from(cert.jks, "base64"));
|
|
101
|
-
}
|
|
102
|
-
zip.file("说明.txt", `证书文件说明
|
|
103
|
-
cert.crt:证书文件,包含证书链,pem格式
|
|
104
|
-
cert.key:私钥文件,pem格式
|
|
105
|
-
intermediate.crt:中间证书文件,pem格式
|
|
106
|
-
origin.crt:原始证书文件,不含证书链,pem格式
|
|
107
|
-
one.pem: 证书和私钥简单合并成一个文件,pem格式,crt正文+key正文
|
|
108
|
-
cert.pfx:pfx格式证书文件,iis服务器使用
|
|
109
|
-
cert.der:der格式证书文件
|
|
110
|
-
cert.jks:jks格式证书文件,java服务器使用
|
|
111
|
-
`);
|
|
112
|
-
const content = await zip.generateAsync({ type: "nodebuffer" });
|
|
113
|
-
this.saveFile(filename, content);
|
|
114
|
-
this.logger.info(`已保存文件:${filename}`);
|
|
115
|
-
}
|
|
116
|
-
formatCert(pem) {
|
|
117
|
-
pem = pem.replace(/\r/g, "");
|
|
118
|
-
pem = pem.replace(/\n\n/g, "\n");
|
|
119
|
-
pem = pem.replace(/\n$/g, "");
|
|
120
|
-
return pem;
|
|
121
|
-
}
|
|
122
|
-
formatCerts(cert) {
|
|
123
|
-
const newCert = {
|
|
124
|
-
crt: this.formatCert(cert.crt),
|
|
125
|
-
key: this.formatCert(cert.key),
|
|
126
|
-
csr: this.formatCert(cert.csr),
|
|
127
|
-
};
|
|
128
|
-
return newCert;
|
|
129
|
-
}
|
|
130
|
-
async readLastCert() {
|
|
131
|
-
const cert = this.lastStatus?.status?.output?.cert;
|
|
132
|
-
if (cert == null) {
|
|
133
|
-
this.logger.info("没有找到上次的证书");
|
|
134
|
-
return undefined;
|
|
135
|
-
}
|
|
136
|
-
return new CertReader(cert);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
__decorate([
|
|
140
|
-
TaskInput({
|
|
141
|
-
title: "证书域名",
|
|
142
|
-
component: {
|
|
143
|
-
name: "a-select",
|
|
144
|
-
vModel: "value",
|
|
145
|
-
mode: "tags",
|
|
146
|
-
open: false,
|
|
147
|
-
placeholder: "foo.com / *.foo.com / *.bar.com",
|
|
148
|
-
tokenSeparators: [",", " ", ",", "、", "|"],
|
|
149
|
-
},
|
|
150
|
-
rules: [{ type: "domains" }],
|
|
151
|
-
required: true,
|
|
152
|
-
col: {
|
|
153
|
-
span: 24,
|
|
154
|
-
},
|
|
155
|
-
order: -999,
|
|
156
|
-
helper: "1、支持多个域名打到一个证书上,例如: foo.com,*.foo.com,*.bar.com\n" +
|
|
157
|
-
"2、子域名被通配符包含的不要填写,例如:www.foo.com已经被*.foo.com包含,不要填写www.foo.com\n" +
|
|
158
|
-
"3、泛域名只能通配*号那一级(*.foo.com的证书不能用于xxx.yyy.foo.com、不能用于foo.com)\n" +
|
|
159
|
-
"4、输入一个,空格之后,再输入下一个 \n" +
|
|
160
|
-
"5、如果设置了子域托管解析(比如免费的二级域名托管在CF或者阿里云),请先[设置托管子域名](#/certd/pipeline/subDomain)",
|
|
161
|
-
}),
|
|
162
|
-
__metadata("design:type", Array)
|
|
163
|
-
], CertApplyBaseConvertPlugin.prototype, "domains", void 0);
|
|
164
|
-
__decorate([
|
|
165
|
-
TaskInput({
|
|
166
|
-
title: "证书加密密码",
|
|
167
|
-
component: {
|
|
168
|
-
name: "input-password",
|
|
169
|
-
vModel: "value",
|
|
170
|
-
},
|
|
171
|
-
required: false,
|
|
172
|
-
order: 100,
|
|
173
|
-
helper: "转换成PFX、jks格式证书是否需要加密\njks必须设置密码,不传则默认123456\npfx不传则为空密码",
|
|
174
|
-
}),
|
|
175
|
-
__metadata("design:type", String)
|
|
176
|
-
], CertApplyBaseConvertPlugin.prototype, "pfxPassword", void 0);
|
|
177
|
-
__decorate([
|
|
178
|
-
TaskInput({
|
|
179
|
-
title: "PFX证书转换参数",
|
|
180
|
-
value: "-macalg SHA1 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES",
|
|
181
|
-
component: {
|
|
182
|
-
name: "a-auto-complete",
|
|
183
|
-
vModel: "value",
|
|
184
|
-
options: [
|
|
185
|
-
{ value: "", label: "兼容 Windows Server 最新" },
|
|
186
|
-
{ value: "-macalg SHA1 -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES", label: "兼容 Windows Server 2016" },
|
|
187
|
-
{ value: "-nomac -keypbe PBE-SHA1-3DES -certpbe PBE-SHA1-3DES", label: "兼容 Windows Server 2008" },
|
|
188
|
-
],
|
|
189
|
-
},
|
|
190
|
-
required: false,
|
|
191
|
-
order: 100,
|
|
192
|
-
helper: "兼容Windows Server各个版本",
|
|
193
|
-
}),
|
|
194
|
-
__metadata("design:type", Object)
|
|
195
|
-
], CertApplyBaseConvertPlugin.prototype, "pfxArgs", void 0);
|
|
196
|
-
__decorate([
|
|
197
|
-
TaskOutput({
|
|
198
|
-
title: "域名证书",
|
|
199
|
-
type: "cert",
|
|
200
|
-
}),
|
|
201
|
-
__metadata("design:type", Object)
|
|
202
|
-
], CertApplyBaseConvertPlugin.prototype, "cert", void 0);
|
|
203
|
-
__decorate([
|
|
204
|
-
TaskOutput({
|
|
205
|
-
title: "域名证书压缩文件",
|
|
206
|
-
type: "certZip",
|
|
207
|
-
}),
|
|
208
|
-
__metadata("design:type", Object)
|
|
209
|
-
], CertApplyBaseConvertPlugin.prototype, "certZip", void 0);
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb252ZXJ0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbi9jZXJ0LXBsdWdpbi9iYXNlLWNvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUE0QixTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxtQkFBbUIsQ0FBQztBQUU1RCxNQUFNLE9BQWdCLDBCQUEyQixTQUFRLGtCQUFrQjtJQXdCekUsT0FBTyxDQUFZO0lBWW5CLFdBQVcsQ0FBVTtJQWtCckIsT0FBTyxHQUFHLDJEQUEyRCxDQUFDO0lBRXRFLFdBQVcsQ0FBWTtJQUN2QixVQUFVLENBQVE7SUFNbEIsSUFBSSxDQUFZO0lBTWhCLE9BQU8sQ0FBWTtJQUVuQixLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDeEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQWtCLENBQUM7UUFDOUMsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUlELGNBQWM7SUFDZCxLQUFLLENBQUMsb0JBQW9CO1FBQ3hCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHO1lBQ1osSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsSUFBSSxFQUFFLElBQUks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
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { CertReader } from "./cert-reader.js";
|
|
2
|
-
import { CertApplyBaseConvertPlugin } from "./base-convert.js";
|
|
3
|
-
export declare abstract class CertApplyBasePlugin extends CertApplyBaseConvertPlugin {
|
|
4
|
-
email: string;
|
|
5
|
-
renewDays: number;
|
|
6
|
-
successNotify: boolean;
|
|
7
|
-
csrInfo: string;
|
|
8
|
-
onInstance(): Promise<void>;
|
|
9
|
-
abstract onInit(): Promise<void>;
|
|
10
|
-
abstract doCertApply(): Promise<CertReader>;
|
|
11
|
-
execute(): Promise<string | void>;
|
|
12
|
-
getCheckChangeInputKeys(): string[];
|
|
13
|
-
/**
|
|
14
|
-
* 是否更新证书
|
|
15
|
-
*/
|
|
16
|
-
condition(): Promise<CertReader>;
|
|
17
|
-
/**
|
|
18
|
-
* 检查是否过期,默认提前35天
|
|
19
|
-
* @param expires
|
|
20
|
-
* @param maxDays
|
|
21
|
-
*/
|
|
22
|
-
isWillExpire(expires: number, maxDays?: number): {
|
|
23
|
-
isWillExpire: boolean;
|
|
24
|
-
leftDays: number;
|
|
25
|
-
};
|
|
26
|
-
sendSuccessNotify(): Promise<void>;
|
|
27
|
-
}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
-
};
|
|
10
|
-
import { TaskInput } from "@certd/pipeline";
|
|
11
|
-
import dayjs from "dayjs";
|
|
12
|
-
import { pick } from "lodash-es";
|
|
13
|
-
import { CertApplyBaseConvertPlugin } from "./base-convert.js";
|
|
14
|
-
export class CertApplyBasePlugin extends CertApplyBaseConvertPlugin {
|
|
15
|
-
email;
|
|
16
|
-
renewDays;
|
|
17
|
-
successNotify = false;
|
|
18
|
-
// @TaskInput({
|
|
19
|
-
// title: "CsrInfo",
|
|
20
|
-
// helper: "暂时没有用",
|
|
21
|
-
// })
|
|
22
|
-
csrInfo;
|
|
23
|
-
async onInstance() {
|
|
24
|
-
this.userContext = this.ctx.userContext;
|
|
25
|
-
this.lastStatus = this.ctx.lastStatus;
|
|
26
|
-
await this.onInit();
|
|
27
|
-
}
|
|
28
|
-
async execute() {
|
|
29
|
-
const oldCert = await this.condition();
|
|
30
|
-
if (oldCert != null) {
|
|
31
|
-
await this.output(oldCert, false);
|
|
32
|
-
return "skip";
|
|
33
|
-
}
|
|
34
|
-
const cert = await this.doCertApply();
|
|
35
|
-
if (cert != null) {
|
|
36
|
-
await this.output(cert, true);
|
|
37
|
-
await this.emitCertApplySuccess();
|
|
38
|
-
//清空后续任务的状态,让后续任务能够重新执行
|
|
39
|
-
this.clearLastStatus();
|
|
40
|
-
if (this.successNotify) {
|
|
41
|
-
await this.sendSuccessNotify();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
throw new Error("申请证书失败");
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
getCheckChangeInputKeys() {
|
|
49
|
-
//插件哪些字段参与校验是否需要更新
|
|
50
|
-
return ["domains", "sslProvider", "privateKeyType", "dnsProviderType", "pfxPassword"];
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* 是否更新证书
|
|
54
|
-
*/
|
|
55
|
-
async condition() {
|
|
56
|
-
// if (this.forceUpdate) {
|
|
57
|
-
// this.logger.info("强制更新证书选项已勾选,准备申请新证书");
|
|
58
|
-
// this.logger.warn("申请完之后,切记取消强制更新,避免申请过多证书。");
|
|
59
|
-
// return null;
|
|
60
|
-
// }
|
|
61
|
-
const checkInputChanges = this.getCheckChangeInputKeys();
|
|
62
|
-
const oldInput = JSON.stringify(pick(this.lastStatus?.input, checkInputChanges));
|
|
63
|
-
const thisInput = JSON.stringify(pick(this, checkInputChanges));
|
|
64
|
-
const inputChanged = oldInput !== thisInput;
|
|
65
|
-
this.logger.info(`旧参数:${oldInput}`);
|
|
66
|
-
this.logger.info(`新参数:${thisInput}`);
|
|
67
|
-
if (inputChanged) {
|
|
68
|
-
this.logger.info("输入参数变更,准备申请新证书");
|
|
69
|
-
return null;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
this.logger.info("输入参数未变更,检查证书是否过期");
|
|
73
|
-
}
|
|
74
|
-
let oldCert = undefined;
|
|
75
|
-
try {
|
|
76
|
-
this.logger.info("读取上次证书");
|
|
77
|
-
oldCert = await this.readLastCert();
|
|
78
|
-
}
|
|
79
|
-
catch (e) {
|
|
80
|
-
this.logger.warn("读取cert失败:", e);
|
|
81
|
-
}
|
|
82
|
-
if (oldCert == null) {
|
|
83
|
-
this.logger.info("还未申请过,准备申请新证书");
|
|
84
|
-
return null;
|
|
85
|
-
}
|
|
86
|
-
const ret = this.isWillExpire(oldCert.expires, this.renewDays);
|
|
87
|
-
if (!ret.isWillExpire) {
|
|
88
|
-
this.logger.info(`证书还未过期:过期时间${dayjs(oldCert.expires).format("YYYY-MM-DD HH:mm:ss")},剩余${ret.leftDays}天`);
|
|
89
|
-
return oldCert;
|
|
90
|
-
}
|
|
91
|
-
this.logger.info("即将过期,开始更新证书");
|
|
92
|
-
return null;
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* 检查是否过期,默认提前35天
|
|
96
|
-
* @param expires
|
|
97
|
-
* @param maxDays
|
|
98
|
-
*/
|
|
99
|
-
isWillExpire(expires, maxDays = 20) {
|
|
100
|
-
if (expires == null) {
|
|
101
|
-
throw new Error("过期时间不能为空");
|
|
102
|
-
}
|
|
103
|
-
// 检查有效期
|
|
104
|
-
const leftDays = Math.floor((expires - dayjs().valueOf()) / (1000 * 60 * 60 * 24));
|
|
105
|
-
this.logger.info(`证书剩余天数:${leftDays}`);
|
|
106
|
-
return {
|
|
107
|
-
isWillExpire: leftDays <= maxDays,
|
|
108
|
-
leftDays,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
async sendSuccessNotify() {
|
|
112
|
-
this.logger.info("发送证书申请成功通知");
|
|
113
|
-
const url = await this.ctx.urlService.getPipelineDetailUrl(this.pipeline.id, this.ctx.runtime.id);
|
|
114
|
-
const body = {
|
|
115
|
-
title: `证书申请成功【${this.pipeline.title}】`,
|
|
116
|
-
content: `域名:${this.domains.join(",")}`,
|
|
117
|
-
url: url,
|
|
118
|
-
notificationType: "certApplySuccess",
|
|
119
|
-
};
|
|
120
|
-
try {
|
|
121
|
-
await this.ctx.notificationService.send({
|
|
122
|
-
useDefault: true,
|
|
123
|
-
useEmail: true,
|
|
124
|
-
emailAddress: this.email,
|
|
125
|
-
logger: this.logger,
|
|
126
|
-
body,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
this.logger.error("证书申请成功通知发送失败", e);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
__decorate([
|
|
135
|
-
TaskInput({
|
|
136
|
-
title: "邮箱",
|
|
137
|
-
component: {
|
|
138
|
-
name: "email-selector",
|
|
139
|
-
vModel: "value",
|
|
140
|
-
},
|
|
141
|
-
rules: [{ type: "email", message: "请输入正确的邮箱" }],
|
|
142
|
-
required: true,
|
|
143
|
-
order: -1,
|
|
144
|
-
helper: "请输入邮箱",
|
|
145
|
-
}),
|
|
146
|
-
__metadata("design:type", String)
|
|
147
|
-
], CertApplyBasePlugin.prototype, "email", void 0);
|
|
148
|
-
__decorate([
|
|
149
|
-
TaskInput({
|
|
150
|
-
title: "更新天数",
|
|
151
|
-
value: 18,
|
|
152
|
-
component: {
|
|
153
|
-
name: "a-input-number",
|
|
154
|
-
vModel: "value",
|
|
155
|
-
},
|
|
156
|
-
required: true,
|
|
157
|
-
order: 100,
|
|
158
|
-
helper: "到期前多少天后更新证书,注意:流水线默认不会自动运行,请设置定时器,每天定时运行本流水线",
|
|
159
|
-
}),
|
|
160
|
-
__metadata("design:type", Number)
|
|
161
|
-
], CertApplyBasePlugin.prototype, "renewDays", void 0);
|
|
162
|
-
__decorate([
|
|
163
|
-
TaskInput({
|
|
164
|
-
title: "证书申请成功通知",
|
|
165
|
-
value: false,
|
|
166
|
-
component: {
|
|
167
|
-
name: "a-switch",
|
|
168
|
-
vModel: "checked",
|
|
169
|
-
},
|
|
170
|
-
order: 100,
|
|
171
|
-
helper: "证书申请成功后是否发送通知,优先使用默认通知渠道",
|
|
172
|
-
}),
|
|
173
|
-
__metadata("design:type", Object)
|
|
174
|
-
], CertApplyBasePlugin.prototype, "successNotify", void 0);
|
|
175
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW4vY2VydC1wbHVnaW4vYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQTBCLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9ELE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsMEJBQTBCO0lBWTFFLEtBQUssQ0FBVTtJQWFmLFNBQVMsQ0FBVTtJQVluQixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXRCLGVBQWU7SUFDZixzQkFBc0I7SUFDdEIscUJBQXFCO0lBQ3JCLEtBQUs7SUFDTCxPQUFPLENBQVU7SUFFakIsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFrQixDQUFDO1FBQzlDLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFNRCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3ZDLElBQUksT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbEMsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUNELE1BQU0sSUFBSSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3RDLElBQUksSUFBSSxJQUFJLElBQUksRUFB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
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { CertInfo } from "./acme.js";
|
|
2
|
-
import { CertificateInfo } from "@certd/acme-client";
|
|
3
|
-
import { ILogger } from "@certd/basic";
|
|
4
|
-
export type CertReaderHandleContext = {
|
|
5
|
-
reader: CertReader;
|
|
6
|
-
tmpCrtPath: string;
|
|
7
|
-
tmpKeyPath: string;
|
|
8
|
-
tmpOcPath?: string;
|
|
9
|
-
tmpPfxPath?: string;
|
|
10
|
-
tmpDerPath?: string;
|
|
11
|
-
tmpIcPath?: string;
|
|
12
|
-
tmpJksPath?: string;
|
|
13
|
-
tmpOnePath?: string;
|
|
14
|
-
tmpP7bPath?: string;
|
|
15
|
-
};
|
|
16
|
-
export type CertReaderHandle = (ctx: CertReaderHandleContext) => Promise<void>;
|
|
17
|
-
export type HandleOpts = {
|
|
18
|
-
logger: ILogger;
|
|
19
|
-
handle: CertReaderHandle;
|
|
20
|
-
};
|
|
21
|
-
export declare class CertReader {
|
|
22
|
-
cert: CertInfo;
|
|
23
|
-
detail: CertificateInfo;
|
|
24
|
-
effective: number;
|
|
25
|
-
expires: number;
|
|
26
|
-
constructor(certInfo: CertInfo);
|
|
27
|
-
getIc(): string;
|
|
28
|
-
getOc(): string;
|
|
29
|
-
toCertInfo(format?: string): CertInfo;
|
|
30
|
-
getCrtDetail(crt?: string): {
|
|
31
|
-
detail: CertificateInfo;
|
|
32
|
-
effective: Date;
|
|
33
|
-
expires: Date;
|
|
34
|
-
};
|
|
35
|
-
static readCertDetail(crt: string): {
|
|
36
|
-
detail: CertificateInfo;
|
|
37
|
-
effective: Date;
|
|
38
|
-
expires: Date;
|
|
39
|
-
};
|
|
40
|
-
getAllDomains(): any;
|
|
41
|
-
getAltNames(): string[];
|
|
42
|
-
static getMainDomain(crt: string): string;
|
|
43
|
-
getMainDomain(): string;
|
|
44
|
-
static getMainDomainFromDetail(detail: CertificateInfo): string;
|
|
45
|
-
saveToFile(type: "crt" | "key" | "pfx" | "der" | "oc" | "one" | "ic" | "jks" | "p7b", filepath?: string): string;
|
|
46
|
-
readCertFile(opts: HandleOpts): Promise<void>;
|
|
47
|
-
buildCertFileName(suffix: string, applyTime: any, prefix?: string): string;
|
|
48
|
-
buildCertName(prefix?: string): string;
|
|
49
|
-
static appendTimeSuffix(name?: string): string;
|
|
50
|
-
static buildCertName(cert: any): string;
|
|
51
|
-
}
|