@certd/plugin-cert 1.41.2 → 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.
Files changed (47) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/package.json +6 -6
  3. package/dist/access/eab-access.d.ts +0 -6
  4. package/dist/access/eab-access.js +0 -62
  5. package/dist/access/google-access.d.ts +0 -8
  6. package/dist/access/google-access.js +0 -119
  7. package/dist/access/index.d.ts +0 -2
  8. package/dist/access/index.js +0 -3
  9. package/dist/dns-provider/api.d.ts +0 -76
  10. package/dist/dns-provider/api.js +0 -2
  11. package/dist/dns-provider/base.d.ts +0 -27
  12. package/dist/dns-provider/base.js +0 -49
  13. package/dist/dns-provider/decorator.d.ts +0 -3
  14. package/dist/dns-provider/decorator.js +0 -18
  15. package/dist/dns-provider/domain-parser.d.ts +0 -9
  16. package/dist/dns-provider/domain-parser.js +0 -64
  17. package/dist/dns-provider/index.d.ts +0 -5
  18. package/dist/dns-provider/index.js +0 -6
  19. package/dist/dns-provider/registry.d.ts +0 -1
  20. package/dist/dns-provider/registry.js +0 -3
  21. package/dist/libs/google.d.ts +0 -11
  22. package/dist/libs/google.js +0 -59
  23. package/dist/plugin/cert-plugin/acme.d.ts +0 -123
  24. package/dist/plugin/cert-plugin/acme.js +0 -362
  25. package/dist/plugin/cert-plugin/base-convert.d.ts +0 -25
  26. package/dist/plugin/cert-plugin/base-convert.js +0 -210
  27. package/dist/plugin/cert-plugin/base.d.ts +0 -27
  28. package/dist/plugin/cert-plugin/base.js +0 -175
  29. package/dist/plugin/cert-plugin/cert-reader.d.ts +0 -51
  30. package/dist/plugin/cert-plugin/cert-reader.js +0 -206
  31. package/dist/plugin/cert-plugin/convert.d.ts +0 -26
  32. package/dist/plugin/cert-plugin/convert.js +0 -124
  33. package/dist/plugin/cert-plugin/custom/index.d.ts +0 -24
  34. package/dist/plugin/cert-plugin/custom/index.js +0 -202
  35. package/dist/plugin/cert-plugin/getter/aliyun.d.ts +0 -19
  36. package/dist/plugin/cert-plugin/getter/aliyun.js +0 -165
  37. package/dist/plugin/cert-plugin/index.d.ts +0 -62
  38. package/dist/plugin/cert-plugin/index.js +0 -672
  39. package/dist/plugin/cert-plugin/lego/dns.d.ts +0 -1
  40. package/dist/plugin/cert-plugin/lego/dns.js +0 -2
  41. package/dist/plugin/cert-plugin/lego/index.d.ts +0 -21
  42. package/dist/plugin/cert-plugin/lego/index.js +0 -256
  43. package/dist/plugin/index.d.ts +0 -6
  44. package/dist/plugin/index.js +0 -7
  45. package/stats.html +0 -6177
  46. package/test/dist/cert-plugin.test.js +0 -14
  47. 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
- }