@certd/plugin-cert 1.22.5 → 1.22.6

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.
@@ -1,171 +1,171 @@
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, sp, TaskInput } from "@certd/pipeline";
11
- import { CertReader } from "../cert-reader.js";
12
- import { CertApplyBasePlugin } from "../base.js";
13
- import fs from "fs";
14
- import path from "path";
15
- export { CertReader };
16
- let CertApplyLegoPlugin = class CertApplyLegoPlugin extends CertApplyBasePlugin {
17
- // @TaskInput({
18
- // title: "ACME服务端点",
19
- // default: "https://acme-v02.api.letsencrypt.org/directory",
20
- // component: {
21
- // name: "a-select",
22
- // vModel: "value",
23
- // options: [
24
- // { value: "https://acme-v02.api.letsencrypt.org/directory", label: "Let's Encrypt" },
25
- // { value: "https://letsencrypt.proxy.handsfree.work/directory", label: "Let's Encrypt代理,letsencrypt.org无法访问时使用" },
26
- // ],
27
- // },
28
- // required: true,
29
- // })
30
- acmeServer;
31
- dnsType;
32
- environment;
33
- legoEabAccessId;
34
- customArgs = "";
35
- eab;
36
- async onInstance() {
37
- this.accessService = this.ctx.accessService;
38
- this.logger = this.ctx.logger;
39
- this.userContext = this.ctx.userContext;
40
- this.http = this.ctx.http;
41
- this.lastStatus = this.ctx.lastStatus;
42
- if (this.legoEabAccessId) {
43
- this.eab = await this.ctx.accessService.getById(this.legoEabAccessId);
44
- }
45
- }
46
- async onInit() { }
47
- async doCertApply() {
48
- const env = {};
49
- const env_lines = this.environment.split("\n");
50
- for (const line of env_lines) {
51
- const [key, value] = line.trim().split("=");
52
- env[key] = value.trim();
53
- }
54
- let domainArgs = "";
55
- for (const domain of this.domains) {
56
- domainArgs += ` -d "${domain}"`;
57
- }
58
- this.logger.info(`环境变量:${JSON.stringify(env)}`);
59
- let eabArgs = "";
60
- if (this.eab) {
61
- eabArgs = ` --eab "${this.eab.kid}" --kid "${this.eab.kid}" --hmac "${this.eab.hmacKey}"`;
62
- }
63
- const keyType = "-k rsa2048";
64
- const saveDir = `./data/.lego/pipeline_${this.pipeline.id}/`;
65
- const savePathArgs = `--path "${saveDir}"`;
66
- const os_type = process.platform === "win32" ? "windows" : "linux";
67
- const legoPath = path.resolve("./tools", os_type, "lego");
68
- let serverArgs = "";
69
- if (this.acmeServer) {
70
- serverArgs = ` --server ${this.acmeServer}`;
71
- }
72
- const cmds = [
73
- `${legoPath} -a --email "${this.email}" --dns ${this.dnsType} ${keyType} ${domainArgs} ${serverArgs} ${eabArgs} ${savePathArgs} ${this.customArgs || ""} run`,
74
- ];
75
- await sp.spawn({
76
- cmd: cmds,
77
- logger: this.logger,
78
- env,
79
- });
80
- //读取证书文件
81
- // example.com.crt
82
- // example.com.issuer.crt
83
- // example.com.json
84
- // example.com.key
85
- let domain1 = this.domains[0];
86
- domain1 = domain1.replaceAll("*", "_");
87
- const crtPath = path.resolve(saveDir, "certificates", `${domain1}.crt`);
88
- if (fs.existsSync(crtPath) === false) {
89
- throw new Error(`证书文件不存在,证书申请失败:${crtPath}`);
90
- }
91
- const crt = fs.readFileSync(crtPath, "utf8");
92
- const keyPath = path.resolve(saveDir, "certificates", `${domain1}.key`);
93
- const key = fs.readFileSync(keyPath, "utf8");
94
- const csr = "";
95
- const cert = { crt, key, csr };
96
- const certInfo = this.formatCerts(cert);
97
- return new CertReader(certInfo);
98
- }
99
- };
100
- __decorate([
101
- TaskInput({
102
- title: "DNS类型",
103
- component: {
104
- name: "a-input",
105
- vModel: "value",
106
- placeholder: "alidns",
107
- },
108
- helper: "你的域名是通过哪家提供商进行解析的,具体应该配置什么请参考lego文档:https://go-acme.github.io/lego/dns/",
109
- required: true,
110
- }),
111
- __metadata("design:type", String)
112
- ], CertApplyLegoPlugin.prototype, "dnsType", void 0);
113
- __decorate([
114
- TaskInput({
115
- title: "环境变量",
116
- component: {
117
- name: "a-textarea",
118
- vModel: "value",
119
- rows: 4,
120
- placeholder: "ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx\nALICLOUD_SECRET_KEY=your-secret-key",
121
- },
122
- required: true,
123
- helper: "一行一条,例如 appKeyId=xxxxx,具体配置请参考lego文档:https://go-acme.github.io/lego/dns/",
124
- }),
125
- __metadata("design:type", String)
126
- ], CertApplyLegoPlugin.prototype, "environment", void 0);
127
- __decorate([
128
- TaskInput({
129
- title: "EAB授权",
130
- component: {
131
- name: "pi-access-selector",
132
- type: "eab",
133
- },
134
- maybeNeed: true,
135
- helper: "如果需要提供EAB授权",
136
- }),
137
- __metadata("design:type", Number)
138
- ], CertApplyLegoPlugin.prototype, "legoEabAccessId", void 0);
139
- __decorate([
140
- TaskInput({
141
- title: "自定义LEGO参数",
142
- component: {
143
- name: "a-input",
144
- vModel: "value",
145
- placeholder: "--dns-timeout 30",
146
- },
147
- helper: "额外的lego命令行参数,参考文档:https://go-acme.github.io/lego/usage/cli/options/",
148
- maybeNeed: true,
149
- }),
150
- __metadata("design:type", Object)
151
- ], CertApplyLegoPlugin.prototype, "customArgs", void 0);
152
- CertApplyLegoPlugin = __decorate([
153
- IsTaskPlugin({
154
- name: "CertApplyLego",
155
- title: "证书申请(Lego)",
156
- group: pluginGroups.cert.key,
157
- desc: "支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上",
158
- default: {
159
- input: {
160
- renewDays: 20,
161
- forceUpdate: false,
162
- },
163
- strategy: {
164
- runStrategy: RunStrategy.AlwaysRun,
165
- },
166
- },
167
- })
168
- ], CertApplyLegoPlugin);
169
- export { CertApplyLegoPlugin };
170
- new CertApplyLegoPlugin();
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2xlZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBUSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBa0JmLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsbUJBQW1CO0lBQzFELGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsK0RBQStEO0lBQy9ELGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQiw2RkFBNkY7SUFDN0YsMEhBQTBIO0lBQzFILFNBQVM7SUFDVCxPQUFPO0lBQ1Asb0JBQW9CO0lBQ3BCLEtBQUs7SUFDTCxVQUFVLENBQVU7SUFZcEIsT0FBTyxDQUFVO0lBYWpCLFdBQVcsQ0FBVTtJQVdyQixlQUFlLENBQVU7SUFZekIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVoQixHQUFHLENBQWE7SUFFaEIsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FB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
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, sp, TaskInput } from "@certd/pipeline";
11
+ import { CertReader } from "../cert-reader.js";
12
+ import { CertApplyBasePlugin } from "../base.js";
13
+ import fs from "fs";
14
+ import path from "path";
15
+ export { CertReader };
16
+ let CertApplyLegoPlugin = class CertApplyLegoPlugin extends CertApplyBasePlugin {
17
+ // @TaskInput({
18
+ // title: "ACME服务端点",
19
+ // default: "https://acme-v02.api.letsencrypt.org/directory",
20
+ // component: {
21
+ // name: "a-select",
22
+ // vModel: "value",
23
+ // options: [
24
+ // { value: "https://acme-v02.api.letsencrypt.org/directory", label: "Let's Encrypt" },
25
+ // { value: "https://letsencrypt.proxy.handsfree.work/directory", label: "Let's Encrypt代理,letsencrypt.org无法访问时使用" },
26
+ // ],
27
+ // },
28
+ // required: true,
29
+ // })
30
+ acmeServer;
31
+ dnsType;
32
+ environment;
33
+ legoEabAccessId;
34
+ customArgs = "";
35
+ eab;
36
+ async onInstance() {
37
+ this.accessService = this.ctx.accessService;
38
+ this.logger = this.ctx.logger;
39
+ this.userContext = this.ctx.userContext;
40
+ this.http = this.ctx.http;
41
+ this.lastStatus = this.ctx.lastStatus;
42
+ if (this.legoEabAccessId) {
43
+ this.eab = await this.ctx.accessService.getById(this.legoEabAccessId);
44
+ }
45
+ }
46
+ async onInit() { }
47
+ async doCertApply() {
48
+ const env = {};
49
+ const env_lines = this.environment.split("\n");
50
+ for (const line of env_lines) {
51
+ const [key, value] = line.trim().split("=");
52
+ env[key] = value.trim();
53
+ }
54
+ let domainArgs = "";
55
+ for (const domain of this.domains) {
56
+ domainArgs += ` -d "${domain}"`;
57
+ }
58
+ this.logger.info(`环境变量:${JSON.stringify(env)}`);
59
+ let eabArgs = "";
60
+ if (this.eab) {
61
+ eabArgs = ` --eab "${this.eab.kid}" --kid "${this.eab.kid}" --hmac "${this.eab.hmacKey}"`;
62
+ }
63
+ const keyType = "-k rsa2048";
64
+ const saveDir = `./data/.lego/pipeline_${this.pipeline.id}/`;
65
+ const savePathArgs = `--path "${saveDir}"`;
66
+ const os_type = process.platform === "win32" ? "windows" : "linux";
67
+ const legoPath = path.resolve("./tools", os_type, "lego");
68
+ let serverArgs = "";
69
+ if (this.acmeServer) {
70
+ serverArgs = ` --server ${this.acmeServer}`;
71
+ }
72
+ const cmds = [
73
+ `${legoPath} -a --email "${this.email}" --dns ${this.dnsType} ${keyType} ${domainArgs} ${serverArgs} ${eabArgs} ${savePathArgs} ${this.customArgs || ""} run`,
74
+ ];
75
+ await sp.spawn({
76
+ cmd: cmds,
77
+ logger: this.logger,
78
+ env,
79
+ });
80
+ //读取证书文件
81
+ // example.com.crt
82
+ // example.com.issuer.crt
83
+ // example.com.json
84
+ // example.com.key
85
+ let domain1 = this.domains[0];
86
+ domain1 = domain1.replaceAll("*", "_");
87
+ const crtPath = path.resolve(saveDir, "certificates", `${domain1}.crt`);
88
+ if (fs.existsSync(crtPath) === false) {
89
+ throw new Error(`证书文件不存在,证书申请失败:${crtPath}`);
90
+ }
91
+ const crt = fs.readFileSync(crtPath, "utf8");
92
+ const keyPath = path.resolve(saveDir, "certificates", `${domain1}.key`);
93
+ const key = fs.readFileSync(keyPath, "utf8");
94
+ const csr = "";
95
+ const cert = { crt, key, csr };
96
+ const certInfo = this.formatCerts(cert);
97
+ return new CertReader(certInfo);
98
+ }
99
+ };
100
+ __decorate([
101
+ TaskInput({
102
+ title: "DNS类型",
103
+ component: {
104
+ name: "a-input",
105
+ vModel: "value",
106
+ placeholder: "alidns",
107
+ },
108
+ helper: "你的域名是通过哪家提供商进行解析的,具体应该配置什么请参考lego文档:https://go-acme.github.io/lego/dns/",
109
+ required: true,
110
+ }),
111
+ __metadata("design:type", String)
112
+ ], CertApplyLegoPlugin.prototype, "dnsType", void 0);
113
+ __decorate([
114
+ TaskInput({
115
+ title: "环境变量",
116
+ component: {
117
+ name: "a-textarea",
118
+ vModel: "value",
119
+ rows: 4,
120
+ placeholder: "ALICLOUD_ACCESS_KEY=abcdefghijklmnopqrstuvwx\nALICLOUD_SECRET_KEY=your-secret-key",
121
+ },
122
+ required: true,
123
+ helper: "一行一条,例如 appKeyId=xxxxx,具体配置请参考lego文档:https://go-acme.github.io/lego/dns/",
124
+ }),
125
+ __metadata("design:type", String)
126
+ ], CertApplyLegoPlugin.prototype, "environment", void 0);
127
+ __decorate([
128
+ TaskInput({
129
+ title: "EAB授权",
130
+ component: {
131
+ name: "pi-access-selector",
132
+ type: "eab",
133
+ },
134
+ maybeNeed: true,
135
+ helper: "如果需要提供EAB授权",
136
+ }),
137
+ __metadata("design:type", Number)
138
+ ], CertApplyLegoPlugin.prototype, "legoEabAccessId", void 0);
139
+ __decorate([
140
+ TaskInput({
141
+ title: "自定义LEGO参数",
142
+ component: {
143
+ name: "a-input",
144
+ vModel: "value",
145
+ placeholder: "--dns-timeout 30",
146
+ },
147
+ helper: "额外的lego命令行参数,参考文档:https://go-acme.github.io/lego/usage/cli/options/",
148
+ maybeNeed: true,
149
+ }),
150
+ __metadata("design:type", Object)
151
+ ], CertApplyLegoPlugin.prototype, "customArgs", void 0);
152
+ CertApplyLegoPlugin = __decorate([
153
+ IsTaskPlugin({
154
+ name: "CertApplyLego",
155
+ title: "证书申请(Lego)",
156
+ group: pluginGroups.cert.key,
157
+ desc: "支持海量DNS解析提供商,推荐使用,一样的免费通配符域名证书申请,支持多个域名打到同一个证书上",
158
+ default: {
159
+ input: {
160
+ renewDays: 20,
161
+ forceUpdate: false,
162
+ },
163
+ strategy: {
164
+ runStrategy: RunStrategy.AlwaysRun,
165
+ },
166
+ },
167
+ })
168
+ ], CertApplyLegoPlugin);
169
+ export { CertApplyLegoPlugin };
170
+ new CertApplyLegoPlugin();
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcGx1Z2luL2NlcnQtcGx1Z2luL2xlZ28vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBUSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUVwQixPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBa0JmLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW9CLFNBQVEsbUJBQW1CO0lBQzFELGVBQWU7SUFDZix1QkFBdUI7SUFDdkIsK0RBQStEO0lBQy9ELGlCQUFpQjtJQUNqQix3QkFBd0I7SUFDeEIsdUJBQXVCO0lBQ3ZCLGlCQUFpQjtJQUNqQiw2RkFBNkY7SUFDN0YsMEhBQTBIO0lBQzFILFNBQVM7SUFDVCxPQUFPO0lBQ1Asb0JBQW9CO0lBQ3BCLEtBQUs7SUFDTCxVQUFVLENBQVU7SUFZcEIsT0FBTyxDQUFVO0lBYWpCLFdBQVcsQ0FBVTtJQVdyQixlQUFlLENBQVU7SUFZekIsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUVoQixHQUFHLENBQWE7SUFFaEIsS0FBSyxDQUFDLFVBQVU7UUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUM7UUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FB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
@@ -1,2 +1,2 @@
1
- export * from "./cert-plugin/index.js";
2
- export * from "./cert-plugin/lego/index.js";
1
+ export * from "./cert-plugin/index.js";
2
+ export * from "./cert-plugin/lego/index.js";
@@ -1,3 +1,3 @@
1
- export * from "./cert-plugin/index.js";
2
- export * from "./cert-plugin/lego/index.js";
1
+ export * from "./cert-plugin/index.js";
2
+ export * from "./cert-plugin/lego/index.js";
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGx1Z2luL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsd0JBQXdCLENBQUM7QUFDdkMsY0FBYyw2QkFBNkIsQ0FBQyJ9
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@certd/plugin-cert",
3
3
  "private": false,
4
- "version": "1.22.5",
4
+ "version": "1.22.6",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
7
7
  "types": "./dist/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "preview": "vite preview"
14
14
  },
15
15
  "dependencies": {
16
- "@certd/acme-client": "^1.22.4",
17
- "@certd/pipeline": "^1.22.5",
16
+ "@certd/acme-client": "^1.22.6",
17
+ "@certd/pipeline": "^1.22.6",
18
18
  "jszip": "^3.10.1",
19
19
  "node-forge": "^0.10.0",
20
20
  "psl": "^1.9.0"
@@ -53,5 +53,5 @@
53
53
  "vite": "^3.1.0",
54
54
  "vue-tsc": "^0.38.9"
55
55
  },
56
- "gitHead": "3d8f329e2db3b30253bab7515f4de14cfee869d7"
56
+ "gitHead": "3bbbc41062efb116c0af0bcfc41f9933ce918202"
57
57
  }