mirror of https://github.com/certd/certd
perf: 优化上传到主机插 路径选择,根据证书格式显示
parent
b66542cb40
commit
8c3f86c690
|
@ -26,10 +26,10 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ant-design/colors": "^7.0.2",
|
"@ant-design/colors": "^7.0.2",
|
||||||
"@ant-design/icons-vue": "^6.1.0",
|
"@ant-design/icons-vue": "^6.1.0",
|
||||||
"@fast-crud/fast-crud": "^1.22.3",
|
"@fast-crud/fast-crud": "^1.23.1",
|
||||||
"@fast-crud/fast-extends": "^1.22.3",
|
"@fast-crud/fast-extends": "^1.23.1",
|
||||||
"@fast-crud/ui-antdv4": "^1.22.3",
|
"@fast-crud/ui-antdv4": "^1.23.1",
|
||||||
"@fast-crud/ui-interface": "^1.22.3",
|
"@fast-crud/ui-interface": "^1.23.1",
|
||||||
"@iconify/vue": "^4.1.1",
|
"@iconify/vue": "^4.1.1",
|
||||||
"@soerenmartius/vue3-clipboard": "^0.1.2",
|
"@soerenmartius/vue3-clipboard": "^0.1.2",
|
||||||
"@vue-js-cron/light": "^4.0.5",
|
"@vue-js-cron/light": "^4.0.5",
|
||||||
|
|
|
@ -348,6 +348,7 @@ export default function ({ crudExpose, context: { certdFormRef } }: CreateCrudOp
|
||||||
type: "link",
|
type: "link",
|
||||||
search: {
|
search: {
|
||||||
show: true,
|
show: true,
|
||||||
|
title: "关键字",
|
||||||
component: {
|
component: {
|
||||||
name: "a-input"
|
name: "a-input"
|
||||||
}
|
}
|
||||||
|
|
|
@ -230,7 +230,7 @@ export default {
|
||||||
}
|
}
|
||||||
const { doComputed } = useCompute();
|
const { doComputed } = useCompute();
|
||||||
const currentPlugin = doComputed(() => {
|
const currentPlugin = doComputed(() => {
|
||||||
return currentPluginDefine.value;
|
return currentPluginDefine.value || {};
|
||||||
}, getContext);
|
}, getContext);
|
||||||
const changeCurrentPlugin = async (step: any) => {
|
const changeCurrentPlugin = async (step: any) => {
|
||||||
const stepType = step.type;
|
const stepType = step.type;
|
||||||
|
|
|
@ -17,12 +17,47 @@ import path from 'path';
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
|
@TaskInput({
|
||||||
|
title: '域名证书',
|
||||||
|
helper: '请选择前置任务输出的域名证书',
|
||||||
|
component: {
|
||||||
|
name: 'output-selector',
|
||||||
|
from: ['CertApply', 'CertApplyLego'],
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
})
|
||||||
|
cert!: CertInfo;
|
||||||
|
|
||||||
|
@TaskInput({
|
||||||
|
title: '证书类型',
|
||||||
|
helper: '支持pem、pfx、der、jks格式',
|
||||||
|
component: {
|
||||||
|
name: 'a-select',
|
||||||
|
options: [
|
||||||
|
{ value: 'pem', label: 'pem,用于Nginx等大部分应用' },
|
||||||
|
{ value: 'pfx', label: 'pfx,一般用于IIS' },
|
||||||
|
{ value: 'der', label: 'der,一般用于Apache' },
|
||||||
|
{ value: 'jks', label: 'jks,一般用于JAVA应用' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
})
|
||||||
|
certType!: string;
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: '证书保存路径',
|
title: '证书保存路径',
|
||||||
helper: '全链证书,路径要包含文件名' + '\n推荐使用相对路径,将写入与数据库同级目录,无需映射,例如:tmp/cert.pem',
|
helper: '全链证书,路径要包含文件名' + '\n推荐使用相对路径,将写入与数据库同级目录,无需映射,例如:tmp/cert.pem',
|
||||||
component: {
|
component: {
|
||||||
placeholder: 'tmp/full_chain.pem',
|
placeholder: 'tmp/full_chain.pem',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
crtPath!: string;
|
crtPath!: string;
|
||||||
|
@ -32,6 +67,14 @@ export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: 'tmp/cert.key',
|
placeholder: 'tmp/cert.key',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
keyPath!: string;
|
keyPath!: string;
|
||||||
|
@ -42,6 +85,13 @@ export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/intermediate.pem',
|
placeholder: '/root/deploy/nginx/intermediate.pem',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
icPath!: string;
|
icPath!: string;
|
||||||
|
@ -52,6 +102,14 @@ export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: 'tmp/cert.pfx',
|
placeholder: 'tmp/cert.pfx',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pfx';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
pfxPath!: string;
|
pfxPath!: string;
|
||||||
|
@ -63,6 +121,14 @@ export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: 'tmp/cert.der 或 tmp/cert.cer',
|
placeholder: 'tmp/cert.der 或 tmp/cert.cer',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'der';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
derPath!: string;
|
derPath!: string;
|
||||||
|
@ -73,21 +139,18 @@ export class CopyCertToLocalPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: 'tmp/cert.jks',
|
placeholder: 'tmp/cert.jks',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'jks';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
jksPath!: string;
|
jksPath!: string;
|
||||||
|
|
||||||
@TaskInput({
|
|
||||||
title: '域名证书',
|
|
||||||
helper: '请选择前置任务输出的域名证书',
|
|
||||||
component: {
|
|
||||||
name: 'output-selector',
|
|
||||||
from: ['CertApply', 'CertApplyLego'],
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
})
|
|
||||||
cert!: CertInfo;
|
|
||||||
|
|
||||||
@TaskOutput({
|
@TaskOutput({
|
||||||
title: '证书保存路径',
|
title: '证书保存路径',
|
||||||
type: 'HostCrtPath',
|
type: 'HostCrtPath',
|
||||||
|
|
|
@ -18,12 +18,47 @@ import dayjs from 'dayjs';
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
export class UploadCertToHostPlugin extends AbstractTaskPlugin {
|
export class UploadCertToHostPlugin extends AbstractTaskPlugin {
|
||||||
|
@TaskInput({
|
||||||
|
title: '域名证书',
|
||||||
|
helper: '请选择前置任务输出的域名证书',
|
||||||
|
component: {
|
||||||
|
name: 'output-selector',
|
||||||
|
from: ['CertApply', 'CertApplyLego'],
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
})
|
||||||
|
cert!: CertInfo;
|
||||||
|
|
||||||
|
@TaskInput({
|
||||||
|
title: '证书格式',
|
||||||
|
helper: '支持pem、pfx、der、jks格式',
|
||||||
|
component: {
|
||||||
|
name: 'a-select',
|
||||||
|
options: [
|
||||||
|
{ value: 'pem', label: 'pem,Nginx等大部分应用' },
|
||||||
|
{ value: 'pfx', label: 'pfx,一般用于IIS' },
|
||||||
|
{ value: 'der', label: 'der,一般用于Apache' },
|
||||||
|
{ value: 'jks', label: 'jks,一般用于JAVA应用' },
|
||||||
|
],
|
||||||
|
},
|
||||||
|
required: true,
|
||||||
|
})
|
||||||
|
certType!: string;
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: '证书保存路径',
|
title: '证书保存路径',
|
||||||
helper: '全链证书,需要有写入权限,路径要包含证书文件名,例如:/tmp/cert.pem',
|
helper: '填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.pem',
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/full_chain.pem',
|
placeholder: '/root/deploy/nginx/full_chain.pem',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
crtPath!: string;
|
crtPath!: string;
|
||||||
|
@ -33,6 +68,14 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/cert.key',
|
placeholder: '/root/deploy/nginx/cert.key',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
keyPath!: string;
|
keyPath!: string;
|
||||||
|
@ -43,51 +86,71 @@ export class UploadCertToHostPlugin extends AbstractTaskPlugin {
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/intermediate.pem',
|
placeholder: '/root/deploy/nginx/intermediate.pem',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pem';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
icPath!: string;
|
icPath!: string;
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: 'PFX证书保存路径',
|
title: 'PFX证书保存路径',
|
||||||
helper: '用于IIS证书部署,需要有写入权限,路径要包含证书文件名,例如:/tmp/cert.pfx',
|
helper: '填写应用原本的证书保存路径,路径要包含证书文件名,例如:D:\\iis\\cert.pfx',
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/cert.pfx',
|
placeholder: 'D:\\iis\\cert.pfx',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'pfx';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
pfxPath!: string;
|
pfxPath!: string;
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: 'DER证书保存路径',
|
title: 'DER证书保存路径',
|
||||||
helper: '用于Apache证书部署,需要有写入权限,路径要包含证书文件名,例如:/tmp/cert.der',
|
helper: '填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.der',
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/cert.der',
|
placeholder: '/root/deploy/apache/cert.der',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'der';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
derPath!: string;
|
derPath!: string;
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: 'jks证书保存路径',
|
title: 'jks证书保存路径',
|
||||||
helper: '需要有写入权限,路径要包含证书文件名,例如:/tmp/cert.jks',
|
helper: '填写应用原本的证书保存路径,路径要包含证书文件名,例如:/tmp/cert.jks',
|
||||||
component: {
|
component: {
|
||||||
placeholder: '/root/deploy/nginx/cert.jks',
|
placeholder: '/root/deploy/java_app/cert.jks',
|
||||||
},
|
},
|
||||||
|
mergeScript: `
|
||||||
|
return {
|
||||||
|
show: ctx.compute(({form})=>{
|
||||||
|
return form.certType === 'jks';
|
||||||
|
})
|
||||||
|
}
|
||||||
|
`,
|
||||||
|
required: true,
|
||||||
rules: [{ type: 'filepath' }],
|
rules: [{ type: 'filepath' }],
|
||||||
})
|
})
|
||||||
jksPath!: string;
|
jksPath!: string;
|
||||||
|
|
||||||
@TaskInput({
|
|
||||||
title: '域名证书',
|
|
||||||
helper: '请选择前置任务输出的域名证书',
|
|
||||||
component: {
|
|
||||||
name: 'output-selector',
|
|
||||||
from: ['CertApply', 'CertApplyLego'],
|
|
||||||
},
|
|
||||||
required: true,
|
|
||||||
})
|
|
||||||
cert!: CertInfo;
|
|
||||||
|
|
||||||
@TaskInput({
|
@TaskInput({
|
||||||
title: '主机登录配置',
|
title: '主机登录配置',
|
||||||
helper: 'access授权',
|
helper: 'access授权',
|
||||||
|
|
Loading…
Reference in New Issue