如何在 Pivotal Cloud Foundry 中使用证书启动 HTTPS Node JS Server?
How can I start HTTPS Node JS Server with certificates in Pivotal Cloud Foundry?
是否可以在 Cloud Foundry 上部署一个 node.js 应用程序来侦听端口 443 上的 HTTPS 请求?
好吧,好消息是您不必这样做。 Cloud Foundry 平台会为您处理。
您需要做的就是推送您的应用并为该应用分配路由。您的平台运营团队已经设置好所有内容,以便 HTTP 和 HTTPS 的流量路由到您的应用程序。
您可能唯一想在应用程序中做的就是查看 x-forwarded-proto
(应该是 http 或 https)或 x-forwarded-port
(80 或 443)header。您可以使用它来确定客户端的连接是通过 HTTP 还是 HTTPS,如果是 HTTP,则发出重定向以要求客户端通过 HTTPS 进行连接(这会强制客户端使用 HTTPS)。
您可以在以下文档中阅读更多相关信息 link:
https://docs.cloudfoundry.org/adminguide/securing-traffic.html
话虽如此,如果您出于某种原因真的想控制证书,您可以这样做。您需要 map a TCP route to your application。这将使 TCP 流量能够直接流向您的应用程序。然后您可以将您的应用程序配置为映射的 TCP 路由和端口上的 HTTPS 端点。
关于此的一些说明:
- 你几乎肯定会得到一些高编号端口,而不是 443。平台将有一个可用端口池,由你的运营团队配置,你只能使用这些端口。
- 平台和 buildpack 不会帮助设置 TLS,您需要自己处理所有这些。 The good news is that it should work exactly the same as if your app were running on a VM or your local laptop.
- 您需要创建自己的 TLS 证书并将其与应用程序一起推送。您可能可以使用 Let's Encrypt,但如果您在一家大公司工作,则可能需要通过您的雇主获得这些。
是否可以在 Cloud Foundry 上部署一个 node.js 应用程序来侦听端口 443 上的 HTTPS 请求?
好吧,好消息是您不必这样做。 Cloud Foundry 平台会为您处理。
您需要做的就是推送您的应用并为该应用分配路由。您的平台运营团队已经设置好所有内容,以便 HTTP 和 HTTPS 的流量路由到您的应用程序。
您可能唯一想在应用程序中做的就是查看 x-forwarded-proto
(应该是 http 或 https)或 x-forwarded-port
(80 或 443)header。您可以使用它来确定客户端的连接是通过 HTTP 还是 HTTPS,如果是 HTTP,则发出重定向以要求客户端通过 HTTPS 进行连接(这会强制客户端使用 HTTPS)。
您可以在以下文档中阅读更多相关信息 link:
https://docs.cloudfoundry.org/adminguide/securing-traffic.html
话虽如此,如果您出于某种原因真的想控制证书,您可以这样做。您需要 map a TCP route to your application。这将使 TCP 流量能够直接流向您的应用程序。然后您可以将您的应用程序配置为映射的 TCP 路由和端口上的 HTTPS 端点。
关于此的一些说明:
- 你几乎肯定会得到一些高编号端口,而不是 443。平台将有一个可用端口池,由你的运营团队配置,你只能使用这些端口。
- 平台和 buildpack 不会帮助设置 TLS,您需要自己处理所有这些。 The good news is that it should work exactly the same as if your app were running on a VM or your local laptop.
- 您需要创建自己的 TLS 证书并将其与应用程序一起推送。您可能可以使用 Let's Encrypt,但如果您在一家大公司工作,则可能需要通过您的雇主获得这些。