diff --git a/packages-legacy/serverless-app/src/framework.ts b/packages-legacy/serverless-app/src/framework.ts index 332b618b7bbd..48772c1fae8e 100644 --- a/packages-legacy/serverless-app/src/framework.ts +++ b/packages-legacy/serverless-app/src/framework.ts @@ -4,6 +4,7 @@ import { IMidwayContext, MidwayCommonError, MidwayFrameworkType, + PathFileUtil, } from '@midwayjs/core'; import { Application, IServerlessAppOptions } from './interface'; import { Server } from 'net'; @@ -304,11 +305,26 @@ export class ServerlessAppFramework extends BaseFramework< process.env.MIDWAY_HTTP_PORT ?? this.configurationOptions.port; if (customPort) { if (this.configurationOptions.ssl) { + let key = readFileSync(join(__dirname, '../ssl/ssl.key'), 'utf8'); + let cert = readFileSync(join(__dirname, '../ssl/ssl.pem'), 'utf8'); + + if ( + this.configurationOptions.https && + this.configurationOptions.https.key && + this.configurationOptions.https.cert + ) { + key = PathFileUtil.getFileContentSync( + this.configurationOptions.https.key, + 'utf8' + ); + cert = PathFileUtil.getFileContentSync( + this.configurationOptions.https.cert, + 'utf8' + ); + } + this.server = require('https').createServer( - { - key: readFileSync(join(__dirname, '../ssl/ssl.key'), 'utf8'), - cert: readFileSync(join(__dirname, '../ssl/ssl.pem'), 'utf8'), - }, + { key, cert }, this.httpServerApp ); } else { diff --git a/packages-legacy/serverless-app/src/interface.ts b/packages-legacy/serverless-app/src/interface.ts index 4f73eff2668a..280a277bb679 100644 --- a/packages-legacy/serverless-app/src/interface.ts +++ b/packages-legacy/serverless-app/src/interface.ts @@ -11,6 +11,7 @@ export interface Application extends FaaSApplication { export interface IServerlessAppOptions extends IConfigurationOptions { port?: string | number; ssl?: boolean; + https?: { key: string; cert: string }; initContext?: any; bodyParserLimit?: string; }