From be2f0aa435153419f35781e310d22d8b2356f769 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Sat, 26 Oct 2024 18:01:06 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96https=20server?= =?UTF-8?q?=E9=87=8D=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/guide/use/https/images/3.png | Bin 36437 -> 33971 bytes docs/guide/use/https/images/ok.png | Bin 13854 -> 14689 bytes docs/guide/use/https/index.md | 16 ++-- packages/core/basic/src/utils/util.request.ts | 4 +- .../certd-server/src/modules/auto/auto-z.ts | 4 +- .../src/modules/auto/https/server.ts | 87 ++++++++++++------ .../plugin-other/plugins/plugin-restart.ts | 25 ++--- 7 files changed, 78 insertions(+), 58 deletions(-) diff --git a/docs/guide/use/https/images/3.png b/docs/guide/use/https/images/3.png index 3e25793fde5dd364f5c089dffe8fd264fd428db7..a4a42b1b9d2b01c2ba470ffe4b8ee2013cb12ad5 100644 GIT binary patch literal 33971 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ⅆ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 G`~LtFAL&>C literal 36437 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 W=PDYi_!oqceAy>Tk8>pSeEtu_W%>jF diff --git a/docs/guide/use/https/index.md b/docs/guide/use/https/index.md index d6b18e710..5205f988f 100644 --- a/docs/guide/use/https/index.md +++ b/docs/guide/use/https/index.md @@ -17,20 +17,22 @@ CERTD_HTTPS_port=7002 参考Certd顶部的创建证书流水线教程 ### 2、配置复制到本机任务 +将证书复制到certd的证书安装位置 + ![](./images/1.png) ![](./images/2.png) ### 3、配置重启Certd任务 -:::warning -1. 重启Certd插件,并不具备重启自己的能力,而是`杀死自己`,然后靠`Docker`来重启自己 -2. 源码部署情况下,需要通过`执行主机脚本`插件来自己写脚本重启`certd` -3. 建议将本流水线的触发时间与其他流水线时间错开,避免重启时影响其他流水线的执行 -::: - +重启certd的https server,让证书生效 ![img.png](./images/3.png) + ### 4、配置定时任务 每天定时执行,最终效果如下 -![](./images/ok.png) \ No newline at end of file +![](./images/ok.png) + +:::warning +建议将本流水线的触发时间与其他流水线时间错开,避免重启时影响其他流水线的执行 +::: \ No newline at end of file diff --git a/packages/core/basic/src/utils/util.request.ts b/packages/core/basic/src/utils/util.request.ts index 305037716..9810e7f7e 100644 --- a/packages/core/basic/src/utils/util.request.ts +++ b/packages/core/basic/src/utils/util.request.ts @@ -86,7 +86,7 @@ export function createAxiosService({ logger }: { logger: Logger }) { service.interceptors.request.use( (config: any) => { logger.info(`http request:${config.url},method:${config.method}`); - if (config.logParams !== false) { + if (config.logParams !== false && config.params) { logger.info(`params:${JSON.stringify(config.params)}`); } if (config.timeout == null) { @@ -182,7 +182,7 @@ export function createAxiosService({ logger }: { logger: Logger }) { export const http = createAxiosService({ logger }) as HttpClient; export type HttpClientResponse = any; -export type HttpRequestConfig = { +export type HttpRequestConfig = { skipSslVerify?: boolean; skipCheckRes?: boolean; logParams?: boolean; diff --git a/packages/ui/certd-server/src/modules/auto/auto-z.ts b/packages/ui/certd-server/src/modules/auto/auto-z.ts index 9a222cfa8..d064211bb 100644 --- a/packages/ui/certd-server/src/modules/auto/auto-z.ts +++ b/packages/ui/certd-server/src/modules/auto/auto-z.ts @@ -4,7 +4,7 @@ import { SysInstallInfo, SysSettingsService } from '@certd/lib-server'; import { getVersion } from '../../utils/version.js'; import dayjs from 'dayjs'; import { Application } from '@midwayjs/koa'; -import { HttpsServerOptions, startHttpsServer } from './https/server.js'; +import { httpsServer, HttpsServerOptions } from './https/server.js'; @Autoload() @Scope(ScopeEnum.Singleton) @@ -41,7 +41,7 @@ export class AutoZPrint { logger.info('Https server is not enabled'); return; } - await startHttpsServer({ + httpsServer.start({ ...this.httpsConfig, app: this.app, }); diff --git a/packages/ui/certd-server/src/modules/auto/https/server.ts b/packages/ui/certd-server/src/modules/auto/https/server.ts index 8a4954bae..f654c6395 100644 --- a/packages/ui/certd-server/src/modules/auto/https/server.ts +++ b/packages/ui/certd-server/src/modules/auto/https/server.ts @@ -12,38 +12,67 @@ export type HttpsServerOptions = { cert: string; }; -export async function startHttpsServer(opts: HttpsServerOptions) { - logger.info('========================================='); - if (!opts.key || !opts.cert) { - logger.error('证书路径未配置,无法启动https服务,请先配置:koa.https.key和koa.https.cert'); - return; +export class HttpsServer { + server: https.Server; + opts: HttpsServerOptions; + constructor() {} + + async restart() { + await this.close(); + return this.start(this.opts); } - if (!fs.existsSync(opts.key) || !fs.existsSync(opts.cert)) { - logger.info('证书文件不存在,将生成自签名证书'); - createSelfCertificate({ - crtPath: opts.cert, - keyPath: opts.key, + async close() { + return new Promise((resolve, reject) => { + this.server.close(() => { + resolve(true); + }); }); } - logger.info('准备启动https服务'); - const httpServer = https.createServer( - { - cert: fs.readFileSync(opts.cert), - key: fs.readFileSync(opts.key), - }, - opts.app.callback() - ); - const hostname = '0.0.0.0'; - // A function that runs in the context of the http server - // and reports what type of server listens on which port - function listeningReporter() { - // `this` refers to the http server here - logger.info(`Https server is listening on https://${hostname}:${opts.port}`); - } - try { - httpServer.listen(opts.port, hostname, listeningReporter); - } catch (e) { - logger.error('启动https服务失败', e); + + start(opts: HttpsServerOptions) { + if (!opts) { + logger.error('https配置不能为空'); + return; + } + this.opts = opts; + logger.info('========================================='); + if (!opts.key || !opts.cert) { + logger.error('证书路径未配置,无法启动https服务,请先配置:koa.https.key和koa.https.cert'); + return; + } + + if (!fs.existsSync(opts.key) || !fs.existsSync(opts.cert)) { + logger.info('证书文件不存在,将生成自签名证书'); + createSelfCertificate({ + crtPath: opts.cert, + keyPath: opts.key, + }); + } + logger.info('准备启动https服务'); + const httpServer = https.createServer( + { + cert: fs.readFileSync(opts.cert), + key: fs.readFileSync(opts.key), + }, + opts.app.callback() + ); + this.server = httpServer; + const hostname = '0.0.0.0'; + // A function that runs in the context of the http server + // and reports what type of server listens on which port + function listeningReporter() { + // `this` refers to the http server here + logger.info(`Https server is listening on https://${hostname}:${opts.port}`); + } + + try { + httpServer.listen(opts.port, hostname, listeningReporter); + return httpServer; + } catch (e) { + logger.error('启动https服务失败', e); + } } } + +export const httpsServer = new HttpsServer(); diff --git a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-restart.ts b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-restart.ts index 41cb5456b..1813eab8c 100644 --- a/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-restart.ts +++ b/packages/ui/certd-server/src/plugins/plugin-other/plugins/plugin-restart.ts @@ -1,10 +1,11 @@ -import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput } from '@certd/pipeline'; +import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy } from '@certd/pipeline'; +import { httpsServer } from '../../../modules/auto/https/server.js'; @IsTaskPlugin({ name: 'RestartCertd', - title: '重启Certd', + title: '重启 Certd', icon: 'mdi:restart', - desc: '【仅管理员】延迟一定时间后自动杀死自己,然后通过Docker来自动重启', + desc: '【仅管理员可用】 重启 certd的https服务,用于更新 Certd 的 ssl 证书', group: pluginGroups.other.key, default: { strategy: { @@ -13,26 +14,14 @@ import { AbstractTaskPlugin, IsTaskPlugin, pluginGroups, RunStrategy, TaskInput }, }) export class RestartCertdPlugin extends AbstractTaskPlugin { - @TaskInput({ - title: '延迟时间', - value: 30, - component: { - placeholder: '30', - }, - helper: '延迟多少秒后执行', - required: true, - }) - delay = 30; async onInstance() {} async execute(): Promise { if (!this.isAdmin()) { throw new Error('只有管理员才能运行此任务'); } - this.logger.info(`Certd 将在 ${this.delay} 秒后关闭`); - setTimeout(() => { - this.logger.info('关闭 Certd'); - process.exit(1); - }, this.delay * 1000); + this.logger.info('Certd https server 将在 3 秒后重启'); + await this.ctx.utils.sleep(3000); + await httpsServer.restart(); } } new RestartCertdPlugin();