@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,206 +0,0 @@
|
|
|
1
|
-
import fs from "fs";
|
|
2
|
-
import os from "os";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import { crypto } from "@certd/acme-client";
|
|
5
|
-
import dayjs from "dayjs";
|
|
6
|
-
import { uniq } from "lodash-es";
|
|
7
|
-
const formats = {
|
|
8
|
-
pem: ["crt", "key", "ic"],
|
|
9
|
-
one: ["one"],
|
|
10
|
-
pfx: ["pfx"],
|
|
11
|
-
der: ["der"],
|
|
12
|
-
jks: ["jks"],
|
|
13
|
-
p7b: ["p7b", "key"],
|
|
14
|
-
};
|
|
15
|
-
export class CertReader {
|
|
16
|
-
cert;
|
|
17
|
-
detail;
|
|
18
|
-
//毫秒时间戳
|
|
19
|
-
effective;
|
|
20
|
-
//毫秒时间戳
|
|
21
|
-
expires;
|
|
22
|
-
constructor(certInfo) {
|
|
23
|
-
this.cert = certInfo;
|
|
24
|
-
if (!certInfo.ic) {
|
|
25
|
-
this.cert.ic = this.getIc();
|
|
26
|
-
}
|
|
27
|
-
if (!certInfo.oc) {
|
|
28
|
-
this.cert.oc = this.getOc();
|
|
29
|
-
}
|
|
30
|
-
if (!certInfo.one) {
|
|
31
|
-
this.cert.one = this.cert.crt + "\n" + this.cert.key;
|
|
32
|
-
}
|
|
33
|
-
try {
|
|
34
|
-
const { detail, effective, expires } = this.getCrtDetail(this.cert.crt);
|
|
35
|
-
this.detail = detail;
|
|
36
|
-
this.effective = effective.getTime();
|
|
37
|
-
this.expires = expires.getTime();
|
|
38
|
-
}
|
|
39
|
-
catch (e) {
|
|
40
|
-
throw new Error("证书解析失败:" + e.message);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
getIc() {
|
|
44
|
-
//中间证书ic, 就是crt的第一个 -----END CERTIFICATE----- 之后的内容
|
|
45
|
-
const endStr = "-----END CERTIFICATE-----";
|
|
46
|
-
const firstBlockEndIndex = this.cert.crt.indexOf(endStr);
|
|
47
|
-
const start = firstBlockEndIndex + endStr.length + 1;
|
|
48
|
-
if (this.cert.crt.length <= start) {
|
|
49
|
-
return "";
|
|
50
|
-
}
|
|
51
|
-
const ic = this.cert.crt.substring(start);
|
|
52
|
-
if (ic == null) {
|
|
53
|
-
return "";
|
|
54
|
-
}
|
|
55
|
-
return ic?.trim();
|
|
56
|
-
}
|
|
57
|
-
getOc() {
|
|
58
|
-
//原始证书 就是crt的第一个 -----END CERTIFICATE----- 之前的内容
|
|
59
|
-
const endStr = "-----END CERTIFICATE-----";
|
|
60
|
-
const arr = this.cert.crt.split(endStr);
|
|
61
|
-
return arr[0] + endStr;
|
|
62
|
-
}
|
|
63
|
-
toCertInfo(format) {
|
|
64
|
-
if (!format) {
|
|
65
|
-
return this.cert;
|
|
66
|
-
}
|
|
67
|
-
const formatArr = formats[format];
|
|
68
|
-
const res = {};
|
|
69
|
-
formatArr.forEach((key) => {
|
|
70
|
-
res[key] = this.cert[key];
|
|
71
|
-
});
|
|
72
|
-
return res;
|
|
73
|
-
}
|
|
74
|
-
getCrtDetail(crt = this.cert.crt) {
|
|
75
|
-
return CertReader.readCertDetail(crt);
|
|
76
|
-
}
|
|
77
|
-
static readCertDetail(crt) {
|
|
78
|
-
const detail = crypto.readCertificateInfo(crt.toString());
|
|
79
|
-
const effective = detail.notBefore;
|
|
80
|
-
const expires = detail.notAfter;
|
|
81
|
-
return { detail, effective, expires };
|
|
82
|
-
}
|
|
83
|
-
getAllDomains() {
|
|
84
|
-
const { detail } = this.getCrtDetail();
|
|
85
|
-
const domains = [];
|
|
86
|
-
if (detail.domains?.commonName) {
|
|
87
|
-
domains.push(detail.domains.commonName);
|
|
88
|
-
}
|
|
89
|
-
domains.push(...detail.domains.altNames);
|
|
90
|
-
//去重
|
|
91
|
-
return uniq(domains);
|
|
92
|
-
}
|
|
93
|
-
getAltNames() {
|
|
94
|
-
const { detail } = this.getCrtDetail();
|
|
95
|
-
return detail.domains.altNames;
|
|
96
|
-
}
|
|
97
|
-
static getMainDomain(crt) {
|
|
98
|
-
const { detail } = CertReader.readCertDetail(crt);
|
|
99
|
-
return CertReader.getMainDomainFromDetail(detail);
|
|
100
|
-
}
|
|
101
|
-
getMainDomain() {
|
|
102
|
-
const { detail } = this.getCrtDetail();
|
|
103
|
-
return CertReader.getMainDomainFromDetail(detail);
|
|
104
|
-
}
|
|
105
|
-
static getMainDomainFromDetail(detail) {
|
|
106
|
-
let domain = detail?.domains?.commonName;
|
|
107
|
-
if (domain == null) {
|
|
108
|
-
domain = detail?.domains?.altNames?.[0];
|
|
109
|
-
}
|
|
110
|
-
if (domain == null) {
|
|
111
|
-
domain = "unknown";
|
|
112
|
-
}
|
|
113
|
-
return domain;
|
|
114
|
-
}
|
|
115
|
-
saveToFile(type, filepath) {
|
|
116
|
-
if (!this.cert[type]) {
|
|
117
|
-
return;
|
|
118
|
-
}
|
|
119
|
-
if (filepath == null) {
|
|
120
|
-
//写入临时目录
|
|
121
|
-
filepath = path.join(os.tmpdir(), "/certd/tmp/", Math.floor(Math.random() * 1000000) + `_cert.${type}`);
|
|
122
|
-
}
|
|
123
|
-
const dir = path.dirname(filepath);
|
|
124
|
-
if (!fs.existsSync(dir)) {
|
|
125
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
126
|
-
}
|
|
127
|
-
if (type === "crt" || type === "key" || type === "ic" || type === "oc" || type === "one" || type === "p7b") {
|
|
128
|
-
fs.writeFileSync(filepath, this.cert[type]);
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
fs.writeFileSync(filepath, Buffer.from(this.cert[type], "base64"));
|
|
132
|
-
}
|
|
133
|
-
return filepath;
|
|
134
|
-
}
|
|
135
|
-
async readCertFile(opts) {
|
|
136
|
-
const logger = opts.logger;
|
|
137
|
-
logger.info("将证书写入本地缓存文件");
|
|
138
|
-
const tmpCrtPath = this.saveToFile("crt");
|
|
139
|
-
const tmpKeyPath = this.saveToFile("key");
|
|
140
|
-
const tmpPfxPath = this.saveToFile("pfx");
|
|
141
|
-
const tmpIcPath = this.saveToFile("ic");
|
|
142
|
-
const tmpOcPath = this.saveToFile("oc");
|
|
143
|
-
const tmpDerPath = this.saveToFile("der");
|
|
144
|
-
const tmpJksPath = this.saveToFile("jks");
|
|
145
|
-
const tmpOnePath = this.saveToFile("one");
|
|
146
|
-
const tmpP7bPath = this.saveToFile("p7b");
|
|
147
|
-
logger.info("本地文件写入成功");
|
|
148
|
-
try {
|
|
149
|
-
return await opts.handle({
|
|
150
|
-
reader: this,
|
|
151
|
-
tmpCrtPath,
|
|
152
|
-
tmpKeyPath,
|
|
153
|
-
tmpPfxPath,
|
|
154
|
-
tmpDerPath,
|
|
155
|
-
tmpIcPath,
|
|
156
|
-
tmpJksPath,
|
|
157
|
-
tmpOcPath,
|
|
158
|
-
tmpP7bPath,
|
|
159
|
-
tmpOnePath,
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
catch (err) {
|
|
163
|
-
logger.error("处理失败", err);
|
|
164
|
-
throw err;
|
|
165
|
-
}
|
|
166
|
-
finally {
|
|
167
|
-
//删除临时文件
|
|
168
|
-
logger.info("清理临时文件");
|
|
169
|
-
function removeFile(filepath) {
|
|
170
|
-
if (filepath) {
|
|
171
|
-
fs.unlinkSync(filepath);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
removeFile(tmpCrtPath);
|
|
175
|
-
removeFile(tmpKeyPath);
|
|
176
|
-
removeFile(tmpPfxPath);
|
|
177
|
-
removeFile(tmpOcPath);
|
|
178
|
-
removeFile(tmpDerPath);
|
|
179
|
-
removeFile(tmpIcPath);
|
|
180
|
-
removeFile(tmpJksPath);
|
|
181
|
-
removeFile(tmpOnePath);
|
|
182
|
-
removeFile(tmpP7bPath);
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
buildCertFileName(suffix, applyTime, prefix = "cert") {
|
|
186
|
-
let domain = this.getMainDomain();
|
|
187
|
-
domain = domain.replaceAll(".", "_").replaceAll("*", "_");
|
|
188
|
-
const timeStr = dayjs(applyTime).format("YYYYMMDDHHmmss");
|
|
189
|
-
return `${prefix}_${domain}_${timeStr}.${suffix}`;
|
|
190
|
-
}
|
|
191
|
-
buildCertName(prefix = "") {
|
|
192
|
-
let domain = this.getMainDomain();
|
|
193
|
-
domain = domain.replaceAll(".", "_").replaceAll("*", "_");
|
|
194
|
-
return `${prefix}_${domain}_${dayjs().format("YYYYMMDDHHmmssSSS")}`;
|
|
195
|
-
}
|
|
196
|
-
static appendTimeSuffix(name) {
|
|
197
|
-
if (name == null) {
|
|
198
|
-
name = "certd";
|
|
199
|
-
}
|
|
200
|
-
return name + "_" + dayjs().format("YYYYMMDDHHmmssSSS");
|
|
201
|
-
}
|
|
202
|
-
static buildCertName(cert) {
|
|
203
|
-
return new CertReader(cert).buildCertName();
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2VydC1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2NlcnQtcmVhZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBbUIsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFN0QsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFpQmpDLE1BQU0sT0FBTyxHQUFHO0lBQ2QsR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUM7SUFDekIsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ1osR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ1osR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ1osR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ1osR0FBRyxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztDQUNwQixDQUFDO0FBQ0YsTUFBTSxPQUFPLFVBQVU7SUFDckIsSUFBSSxDQUFXO0lBRWYsTUFBTSxDQUFrQjtJQUN4QixPQUFPO0lBQ1AsU0FBUyxDQUFTO0lBQ2xCLE9BQU87SUFDUCxPQUFPLENBQVM7SUFDaEIsWUFBWSxRQUFrQjtRQUM1QixJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztRQUVyQixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZ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
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { ILogger } from "@certd/basic";
|
|
2
|
-
import type { CertInfo } from "../cert-plugin/acme.js";
|
|
3
|
-
import { CertReader, CertReaderHandleContext } from "../cert-plugin/cert-reader.js";
|
|
4
|
-
export { CertReader };
|
|
5
|
-
export type { CertInfo };
|
|
6
|
-
export declare class CertConverter {
|
|
7
|
-
logger: ILogger;
|
|
8
|
-
constructor(opts: {
|
|
9
|
-
logger: ILogger;
|
|
10
|
-
});
|
|
11
|
-
convert(opts: {
|
|
12
|
-
cert: CertInfo;
|
|
13
|
-
pfxPassword: string;
|
|
14
|
-
pfxArgs: string;
|
|
15
|
-
}): Promise<{
|
|
16
|
-
pfx: string;
|
|
17
|
-
der: string;
|
|
18
|
-
jks: string;
|
|
19
|
-
p7b: string;
|
|
20
|
-
}>;
|
|
21
|
-
exec(cmd: string): Promise<void>;
|
|
22
|
-
private convertPfx;
|
|
23
|
-
private convertDer;
|
|
24
|
-
convertP7b(opts: CertReaderHandleContext): Promise<string>;
|
|
25
|
-
convertJks(opts: CertReaderHandleContext, pfxPassword?: string): Promise<string>;
|
|
26
|
-
}
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
import { sp } from "@certd/basic";
|
|
2
|
-
import { CertReader } from "../cert-plugin/cert-reader.js";
|
|
3
|
-
import path from "path";
|
|
4
|
-
import os from "os";
|
|
5
|
-
import fs from "fs";
|
|
6
|
-
export { CertReader };
|
|
7
|
-
export class CertConverter {
|
|
8
|
-
logger;
|
|
9
|
-
constructor(opts) {
|
|
10
|
-
this.logger = opts.logger;
|
|
11
|
-
}
|
|
12
|
-
async convert(opts) {
|
|
13
|
-
const certReader = new CertReader(opts.cert);
|
|
14
|
-
let pfx;
|
|
15
|
-
let der;
|
|
16
|
-
let jks;
|
|
17
|
-
let p7b;
|
|
18
|
-
const handle = async (ctx) => {
|
|
19
|
-
// 调用openssl 转pfx
|
|
20
|
-
pfx = await this.convertPfx(ctx, opts.pfxPassword, opts.pfxArgs);
|
|
21
|
-
// 转der
|
|
22
|
-
der = await this.convertDer(ctx);
|
|
23
|
-
jks = await this.convertJks(ctx, opts.pfxPassword);
|
|
24
|
-
p7b = await this.convertP7b(ctx);
|
|
25
|
-
};
|
|
26
|
-
await certReader.readCertFile({ logger: this.logger, handle });
|
|
27
|
-
return {
|
|
28
|
-
pfx,
|
|
29
|
-
der,
|
|
30
|
-
jks,
|
|
31
|
-
p7b,
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async exec(cmd) {
|
|
35
|
-
process.env.LANG = "zh_CN.GBK";
|
|
36
|
-
await sp.spawn({
|
|
37
|
-
cmd: cmd,
|
|
38
|
-
logger: this.logger,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
async convertPfx(opts, pfxPassword, pfxArgs) {
|
|
42
|
-
const { tmpCrtPath, tmpKeyPath } = opts;
|
|
43
|
-
const pfxPath = path.join(os.tmpdir(), "/certd/tmp/", Math.floor(Math.random() * 1000000) + "_cert.pfx");
|
|
44
|
-
const dir = path.dirname(pfxPath);
|
|
45
|
-
if (!fs.existsSync(dir)) {
|
|
46
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
47
|
-
}
|
|
48
|
-
let passwordArg = "-passout pass:";
|
|
49
|
-
if (pfxPassword) {
|
|
50
|
-
passwordArg = `-password pass:${pfxPassword}`;
|
|
51
|
-
}
|
|
52
|
-
// 兼容server 2016,旧版本不能用sha256
|
|
53
|
-
const oldPfxCmd = `openssl pkcs12 ${pfxArgs} -export -out ${pfxPath} -inkey ${tmpKeyPath} -in ${tmpCrtPath} ${passwordArg}`;
|
|
54
|
-
// const newPfx = `openssl pkcs12 -export -out ${pfxPath} -inkey ${tmpKeyPath} -in ${tmpCrtPath} ${passwordArg}`;
|
|
55
|
-
await this.exec(oldPfxCmd);
|
|
56
|
-
const fileBuffer = fs.readFileSync(pfxPath);
|
|
57
|
-
const pfxCert = fileBuffer.toString("base64");
|
|
58
|
-
fs.unlinkSync(pfxPath);
|
|
59
|
-
return pfxCert;
|
|
60
|
-
//
|
|
61
|
-
// const applyTime = new Date().getTime();
|
|
62
|
-
// const filename = reader.buildCertFileName("pfx", applyTime);
|
|
63
|
-
// this.saveFile(filename, fileBuffer);
|
|
64
|
-
}
|
|
65
|
-
async convertDer(opts) {
|
|
66
|
-
const { tmpCrtPath } = opts;
|
|
67
|
-
const derPath = path.join(os.tmpdir(), "/certd/tmp/", Math.floor(Math.random() * 1000000) + `_cert.der`);
|
|
68
|
-
const dir = path.dirname(derPath);
|
|
69
|
-
if (!fs.existsSync(dir)) {
|
|
70
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
71
|
-
}
|
|
72
|
-
await this.exec(`openssl x509 -outform der -in ${tmpCrtPath} -out ${derPath}`);
|
|
73
|
-
const fileBuffer = fs.readFileSync(derPath);
|
|
74
|
-
const derCert = fileBuffer.toString("base64");
|
|
75
|
-
fs.unlinkSync(derPath);
|
|
76
|
-
return derCert;
|
|
77
|
-
}
|
|
78
|
-
async convertP7b(opts) {
|
|
79
|
-
const { tmpCrtPath } = opts;
|
|
80
|
-
const p7bPath = path.join(os.tmpdir(), "/certd/tmp/", Math.floor(Math.random() * 1000000) + `_cert.p7b`);
|
|
81
|
-
const dir = path.dirname(p7bPath);
|
|
82
|
-
if (!fs.existsSync(dir)) {
|
|
83
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
84
|
-
}
|
|
85
|
-
//openssl crl2pkcs7 -nocrl \
|
|
86
|
-
// -certfile your_domain.crt \
|
|
87
|
-
// -certfile intermediate.crt \
|
|
88
|
-
// -out chain.p7b
|
|
89
|
-
await this.exec(`openssl crl2pkcs7 -nocrl -certfile ${tmpCrtPath} -out ${p7bPath}`);
|
|
90
|
-
const fileBuffer = fs.readFileSync(p7bPath);
|
|
91
|
-
const p7bCert = fileBuffer.toString();
|
|
92
|
-
fs.unlinkSync(p7bPath);
|
|
93
|
-
return p7bCert;
|
|
94
|
-
}
|
|
95
|
-
async convertJks(opts, pfxPassword = "") {
|
|
96
|
-
const jksPassword = pfxPassword || "123456";
|
|
97
|
-
try {
|
|
98
|
-
const randomStr = Math.floor(Math.random() * 1000000) + "";
|
|
99
|
-
const p12Path = path.join(os.tmpdir(), "/certd/tmp/", randomStr + `_cert.p12`);
|
|
100
|
-
const { tmpCrtPath, tmpKeyPath } = opts;
|
|
101
|
-
let passwordArg = "-passout pass:";
|
|
102
|
-
if (jksPassword) {
|
|
103
|
-
passwordArg = `-password pass:${jksPassword}`;
|
|
104
|
-
}
|
|
105
|
-
await this.exec(`openssl pkcs12 -export -in ${tmpCrtPath} -inkey ${tmpKeyPath} -out ${p12Path} -name certd ${passwordArg}`);
|
|
106
|
-
const jksPath = path.join(os.tmpdir(), "/certd/tmp/", randomStr + `_cert.jks`);
|
|
107
|
-
const dir = path.dirname(jksPath);
|
|
108
|
-
if (!fs.existsSync(dir)) {
|
|
109
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
110
|
-
}
|
|
111
|
-
await this.exec(`keytool -importkeystore -srckeystore ${p12Path} -srcstoretype PKCS12 -srcstorepass "${jksPassword}" -destkeystore ${jksPath} -deststoretype PKCS12 -deststorepass "${jksPassword}" `);
|
|
112
|
-
fs.unlinkSync(p12Path);
|
|
113
|
-
const fileBuffer = fs.readFileSync(jksPath);
|
|
114
|
-
const certBase64 = fileBuffer.toString("base64");
|
|
115
|
-
fs.unlinkSync(jksPath);
|
|
116
|
-
return certBase64;
|
|
117
|
-
}
|
|
118
|
-
catch (e) {
|
|
119
|
-
this.logger.error("转换jks失败", e);
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9wbHVnaW4vY2VydC1wbHVnaW4vY29udmVydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVcsRUFBRSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQTJCLE1BQU0sK0JBQStCLENBQUM7QUFDcEYsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFFcEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBR3RCLE1BQU0sT0FBTyxhQUFhO0lBQ3hCLE1BQU0sQ0FBVTtJQUVoQixZQUFZLElBQXlCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM1QixDQUFDO0lBQ0QsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUE4RDtRQU0xRSxNQUFNLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0MsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxHQUFXLENBQUM7UUFDaEIsSUFBSSxHQUFXLENBQUM7UUFDaEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxFQUFFLEdBQTRCLEVBQUUsRUFBRTtZQUNwRCxpQkFBaUI7WUFDakIsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFakUsT0FBTztZQUNQLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFakMsR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFB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
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type { CertInfo } from "../acme.js";
|
|
2
|
-
import { CertReader } from "../cert-reader.js";
|
|
3
|
-
import { CertApplyBaseConvertPlugin } from "../base-convert.js";
|
|
4
|
-
export { CertReader };
|
|
5
|
-
export type { CertInfo };
|
|
6
|
-
export declare class CertApplyUploadPlugin extends CertApplyBaseConvertPlugin {
|
|
7
|
-
renewDays: number;
|
|
8
|
-
uploadCert: CertInfo;
|
|
9
|
-
certMd5?: string;
|
|
10
|
-
onInstance(): Promise<void>;
|
|
11
|
-
onInit(): Promise<void>;
|
|
12
|
-
getCertFromStore(): Promise<any>;
|
|
13
|
-
private checkExpires;
|
|
14
|
-
execute(): Promise<string | void>;
|
|
15
|
-
onCertUpdate(data: any): Promise<{
|
|
16
|
-
input: {
|
|
17
|
-
uploadCert: {
|
|
18
|
-
crt: any;
|
|
19
|
-
key: any;
|
|
20
|
-
};
|
|
21
|
-
domains: any;
|
|
22
|
-
};
|
|
23
|
-
}>;
|
|
24
|
-
}
|
|
@@ -1,202 +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 { IsTaskPlugin, pluginGroups, RunStrategy, TaskInput, TaskOutput } from "@certd/pipeline";
|
|
11
|
-
import { CertReader } from "../cert-reader.js";
|
|
12
|
-
import { CertApplyBaseConvertPlugin } from "../base-convert.js";
|
|
13
|
-
import dayjs from "dayjs";
|
|
14
|
-
export { CertReader };
|
|
15
|
-
let CertApplyUploadPlugin = class CertApplyUploadPlugin extends CertApplyBaseConvertPlugin {
|
|
16
|
-
renewDays;
|
|
17
|
-
uploadCert;
|
|
18
|
-
certMd5;
|
|
19
|
-
async onInstance() {
|
|
20
|
-
this.accessService = this.ctx.accessService;
|
|
21
|
-
this.logger = this.ctx.logger;
|
|
22
|
-
this.userContext = this.ctx.userContext;
|
|
23
|
-
this.lastStatus = this.ctx.lastStatus;
|
|
24
|
-
}
|
|
25
|
-
async onInit() { }
|
|
26
|
-
async getCertFromStore() {
|
|
27
|
-
let certReader = null;
|
|
28
|
-
try {
|
|
29
|
-
this.logger.info("读取上次证书");
|
|
30
|
-
certReader = await this.readLastCert();
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
this.logger.warn("读取cert失败:", e);
|
|
34
|
-
}
|
|
35
|
-
return certReader;
|
|
36
|
-
}
|
|
37
|
-
checkExpires(certReader) {
|
|
38
|
-
const renewDays = (this.renewDays ?? 10) * 24 * 60 * 60 * 1000;
|
|
39
|
-
if (certReader.expires) {
|
|
40
|
-
if (certReader.expires < new Date().getTime()) {
|
|
41
|
-
throw new Error("证书已过期,停止部署,请尽快上传新证书");
|
|
42
|
-
}
|
|
43
|
-
if (certReader.expires < new Date().getTime() + renewDays) {
|
|
44
|
-
throw new Error("证书即将已过期,停止部署,请尽快上传新证书");
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
async execute() {
|
|
49
|
-
const oldCertReader = await this.getCertFromStore();
|
|
50
|
-
if (oldCertReader) {
|
|
51
|
-
const leftDays = dayjs(oldCertReader.expires).diff(dayjs(), "day");
|
|
52
|
-
this.logger.info(`证书过期时间${dayjs(oldCertReader.expires).format("YYYY-MM-DD HH:mm:ss")},剩余${leftDays}天`);
|
|
53
|
-
this.checkExpires(oldCertReader);
|
|
54
|
-
if (!this.ctx.inputChanged) {
|
|
55
|
-
this.logger.info("输入参数无变化");
|
|
56
|
-
const lastCrtMd5 = this.lastStatus?.status?.output?.certMd5;
|
|
57
|
-
const newCrtMd5 = this.ctx.utils.hash.md5(this.uploadCert.crt);
|
|
58
|
-
this.logger.info("证书MD5", newCrtMd5);
|
|
59
|
-
this.logger.info("上次证书MD5", lastCrtMd5);
|
|
60
|
-
if (lastCrtMd5 === newCrtMd5) {
|
|
61
|
-
this.logger.info("证书无变化,跳过");
|
|
62
|
-
//输出证书MD5
|
|
63
|
-
this.certMd5 = newCrtMd5;
|
|
64
|
-
await this.output(oldCertReader, false);
|
|
65
|
-
return "skip";
|
|
66
|
-
}
|
|
67
|
-
this.logger.info("证书有变化,重新部署");
|
|
68
|
-
}
|
|
69
|
-
else {
|
|
70
|
-
this.logger.info("输入参数有变化,重新部署");
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const newCertReader = new CertReader(this.uploadCert);
|
|
74
|
-
this.clearLastStatus();
|
|
75
|
-
//输出证书MD5
|
|
76
|
-
this.certMd5 = this.ctx.utils.hash.md5(newCertReader.cert.crt);
|
|
77
|
-
const newLeftDays = dayjs(newCertReader.expires).diff(dayjs(), "day");
|
|
78
|
-
this.logger.info(`新证书过期时间${dayjs(newCertReader.expires).format("YYYY-MM-DD HH:mm:ss")},剩余${newLeftDays}天`);
|
|
79
|
-
this.checkExpires(newCertReader);
|
|
80
|
-
await this.output(newCertReader, true);
|
|
81
|
-
//必须output之后执行
|
|
82
|
-
await this.emitCertApplySuccess();
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
async onCertUpdate(data) {
|
|
86
|
-
const certReader = new CertReader(data);
|
|
87
|
-
return {
|
|
88
|
-
input: {
|
|
89
|
-
uploadCert: {
|
|
90
|
-
crt: data.crt,
|
|
91
|
-
key: data.key,
|
|
92
|
-
},
|
|
93
|
-
domains: certReader.getAllDomains(),
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
};
|
|
98
|
-
__decorate([
|
|
99
|
-
TaskInput({
|
|
100
|
-
title: "过期前提醒",
|
|
101
|
-
value: 10,
|
|
102
|
-
component: {
|
|
103
|
-
name: "a-input-number",
|
|
104
|
-
vModel: "value",
|
|
105
|
-
},
|
|
106
|
-
required: true,
|
|
107
|
-
order: 100,
|
|
108
|
-
helper: "到期前多少天提醒",
|
|
109
|
-
}),
|
|
110
|
-
__metadata("design:type", Number)
|
|
111
|
-
], CertApplyUploadPlugin.prototype, "renewDays", void 0);
|
|
112
|
-
__decorate([
|
|
113
|
-
TaskInput({
|
|
114
|
-
title: "手动上传证书",
|
|
115
|
-
component: {
|
|
116
|
-
name: "cert-info-updater",
|
|
117
|
-
vModel: "modelValue",
|
|
118
|
-
},
|
|
119
|
-
helper: "手动上传证书",
|
|
120
|
-
order: -9999,
|
|
121
|
-
required: true,
|
|
122
|
-
mergeScript: `
|
|
123
|
-
return {
|
|
124
|
-
component:{
|
|
125
|
-
on:{
|
|
126
|
-
updated(scope){
|
|
127
|
-
scope.form.input.domains = scope.$event?.domains
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
`,
|
|
133
|
-
}),
|
|
134
|
-
__metadata("design:type", Object)
|
|
135
|
-
], CertApplyUploadPlugin.prototype, "uploadCert", void 0);
|
|
136
|
-
__decorate([
|
|
137
|
-
TaskOutput({
|
|
138
|
-
title: "证书MD5",
|
|
139
|
-
type: "certMd5",
|
|
140
|
-
}),
|
|
141
|
-
__metadata("design:type", String)
|
|
142
|
-
], CertApplyUploadPlugin.prototype, "certMd5", void 0);
|
|
143
|
-
CertApplyUploadPlugin = __decorate([
|
|
144
|
-
IsTaskPlugin({
|
|
145
|
-
name: "CertApplyUpload",
|
|
146
|
-
icon: "ph:certificate",
|
|
147
|
-
title: "商用证书托管",
|
|
148
|
-
group: pluginGroups.cert.key,
|
|
149
|
-
desc: "手动上传自定义证书后,自动部署(每次证书有更新,都需要手动上传一次)",
|
|
150
|
-
default: {
|
|
151
|
-
strategy: {
|
|
152
|
-
runStrategy: RunStrategy.AlwaysRun,
|
|
153
|
-
},
|
|
154
|
-
},
|
|
155
|
-
shortcut: {
|
|
156
|
-
certUpdate: {
|
|
157
|
-
title: "更新证书",
|
|
158
|
-
icon: "ion:upload",
|
|
159
|
-
action: "onCertUpdate",
|
|
160
|
-
form: {
|
|
161
|
-
columns: {
|
|
162
|
-
crt: {
|
|
163
|
-
title: "证书",
|
|
164
|
-
type: "text",
|
|
165
|
-
form: {
|
|
166
|
-
component: {
|
|
167
|
-
name: "pem-input",
|
|
168
|
-
vModel: "modelValue",
|
|
169
|
-
textarea: {
|
|
170
|
-
rows: 4,
|
|
171
|
-
placeholder: "-----BEGIN CERTIFICATE-----\n...\n...\n-----END CERTIFICATE-----",
|
|
172
|
-
},
|
|
173
|
-
},
|
|
174
|
-
rules: [{ required: true, message: "此项必填" }],
|
|
175
|
-
col: { span: 24 },
|
|
176
|
-
},
|
|
177
|
-
},
|
|
178
|
-
key: {
|
|
179
|
-
title: "私钥",
|
|
180
|
-
type: "text",
|
|
181
|
-
form: {
|
|
182
|
-
component: {
|
|
183
|
-
name: "pem-input",
|
|
184
|
-
vModel: "modelValue",
|
|
185
|
-
textarea: {
|
|
186
|
-
rows: 4,
|
|
187
|
-
placeholder: "-----BEGIN PRIVATE KEY-----\n...\n...\n-----END PRIVATE KEY----- ",
|
|
188
|
-
},
|
|
189
|
-
},
|
|
190
|
-
rules: [{ required: true, message: "此项必填" }],
|
|
191
|
-
col: { span: 24 },
|
|
192
|
-
},
|
|
193
|
-
},
|
|
194
|
-
},
|
|
195
|
-
},
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
})
|
|
199
|
-
], CertApplyUploadPlugin);
|
|
200
|
-
export { CertApplyUploadPlugin };
|
|
201
|
-
new CertApplyUploadPlugin();
|
|
202
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2N1c3RvbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQVEsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZHLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBMERmLElBQU0scUJBQXFCLEdBQTNCLE1BQU0scUJBQXNCLFNBQVEsMEJBQTBCO0lBWW5FLFNBQVMsQ0FBVTtJQXVCbkIsVUFBVSxDQUFZO0lBTXRCLE9BQU8sQ0FBVTtJQUVqQixLQUFLLENBQUMsVUFBVTtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7UUFDNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFrQixDQUFDO0lBQ2hELENBQUM7SUFFRCxLQUFLLENBQUMsTUFBTSxLQUFtQixDQUFDO0lBRWhDLEtBQUssQ0FBQyxnQkFBZ0I7UUFDcEIsSUFBSSxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQztZQUNILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzNCLFVBQVUsR0FBRyxNQUFN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
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { PageSearch } from "@certd/pipeline";
|
|
2
|
-
import type { CertInfo } from "../acme.js";
|
|
3
|
-
import { CertApplyBasePlugin } from "../base.js";
|
|
4
|
-
import { CertReader } from "../cert-reader.js";
|
|
5
|
-
export { CertReader };
|
|
6
|
-
export type { CertInfo };
|
|
7
|
-
export declare class CertApplyGetFormAliyunPlugin extends CertApplyBasePlugin {
|
|
8
|
-
accessId: string;
|
|
9
|
-
orderId: string;
|
|
10
|
-
onInit(): Promise<void>;
|
|
11
|
-
doCertApply(): Promise<CertReader>;
|
|
12
|
-
getCertDetail(client: any, certId: any): Promise<CertReader>;
|
|
13
|
-
getCertificateState(client: any, orderId: any): Promise<{
|
|
14
|
-
CertId: string;
|
|
15
|
-
Type: string;
|
|
16
|
-
Domain: string;
|
|
17
|
-
}>;
|
|
18
|
-
onGetOrderList(req: PageSearch): Promise<any>;
|
|
19
|
-
}
|