运行 firebase 在本地运行时如何使 https 工作并添加自签名 SSL 证书?
How to make https work and add a self-signed SSL certificate when running firebase function locally?
我正在 运行从单个 firebase 函数中嵌套 api,由于 OAuth 的原因,我的控制器中的许多端点都需要 SSL 才能工作,因为它们会发回 https-只有签名的 cookie。
因此,我需要能够 运行 使用 SSL 在本地提供 firebase 功能。我已经生成并注册了证书,并且之前曾将其用于 React/Angular 和独立的 Node + Nest 项目。
这是专门关于让它与 firebase 函数一起工作的。
目前,在我的索引中有:
export const API = functions
.region("europe-west2")
.https.onRequest(nestApp);
nestApp 是
const server = express();
现在在普通的 Node + Nest 应用程序中,我所要做的就是:
app = await NestFactory.create(AppModule, {
httpsOptions: {
key: keyFile,
cert: certFile,
},
});
使它适应上面的 firebase 函数不起作用,因为我必须改为传递 express 实例。我到处查看文档和类型,对象嵌套在带有密钥和证书的 http 选项所在的位置,但运气不好。
@nestjs/common
中的 HttpOptions 接口确实具有这两个属性,但是表达式 adapter.options() 采用请求处理程序而不是选项对象。
我认为你想做的事情是不可能的...你想要它做的方式。
运行 本地 Cloud Function 的目标是用于代码测试目的,但 Google 仍将管理背后的基础设施(SSL、身份验证等),即使在本地环境中也是如此。
为什么不模拟 一个小型服务器,而不是用 Function 来管理它?我可以想到一个简单的 NGINX as a Reverse proxy(您可以为此使用任何您想要的服务)。这将使您能够以更友好的方式管理 SSL 证书。
这样想:在您的工作流中,您调用 NGINX 而不是直接调用 Function。 NGINX 将在内部调用 Cloud Function,该函数将完成其工作,响应将返回到 NGINX,然后从 NGINX 返回到您的工作流程,https-signed 为下一步做好准备.
希望对您有所帮助! :)
我正在 运行从单个 firebase 函数中嵌套 api,由于 OAuth 的原因,我的控制器中的许多端点都需要 SSL 才能工作,因为它们会发回 https-只有签名的 cookie。
因此,我需要能够 运行 使用 SSL 在本地提供 firebase 功能。我已经生成并注册了证书,并且之前曾将其用于 React/Angular 和独立的 Node + Nest 项目。
这是专门关于让它与 firebase 函数一起工作的。
目前,在我的索引中有:
export const API = functions
.region("europe-west2")
.https.onRequest(nestApp);
nestApp 是
const server = express();
现在在普通的 Node + Nest 应用程序中,我所要做的就是:
app = await NestFactory.create(AppModule, {
httpsOptions: {
key: keyFile,
cert: certFile,
},
});
使它适应上面的 firebase 函数不起作用,因为我必须改为传递 express 实例。我到处查看文档和类型,对象嵌套在带有密钥和证书的 http 选项所在的位置,但运气不好。
@nestjs/common
中的 HttpOptions 接口确实具有这两个属性,但是表达式 adapter.options() 采用请求处理程序而不是选项对象。
我认为你想做的事情是不可能的...你想要它做的方式。
运行 本地 Cloud Function 的目标是用于代码测试目的,但 Google 仍将管理背后的基础设施(SSL、身份验证等),即使在本地环境中也是如此。
为什么不模拟 一个小型服务器,而不是用 Function 来管理它?我可以想到一个简单的 NGINX as a Reverse proxy(您可以为此使用任何您想要的服务)。这将使您能够以更友好的方式管理 SSL 证书。
这样想:在您的工作流中,您调用 NGINX 而不是直接调用 Function。 NGINX 将在内部调用 Cloud Function,该函数将完成其工作,响应将返回到 NGINX,然后从 NGINX 返回到您的工作流程,https-signed 为下一步做好准备.
希望对您有所帮助! :)