如何让 "HTTPS" / SSL 工作 - Azure WAF(应用程序网关)在 Linux 上有 2 个网站

How to get "HTTPS" / SSL Working - Azure WAF (application gateway) with 2 Websites on Linux

我无法让 SSL/HTTPS 在 Azure WAF (ApplicationGateway) 上工作(http / port:80 工作正常)

我会尽可能简单地解释场景:

开发者制作了两个网站(对于这个例子:假设X.comY.com)都在 AZURE 中的 Linux 前端服务器上,位于 NSGAzure 应用程序网关 WAF[=13= 后面]

开发者将X.com和Y.com的DNS记录指向WAF的单一IP(appGatewayFrontendIP)

用户可以毫无问题地浏览到两个网站 http / port:80。


现在的问题在于如何让 SSL 工作,到目前为止:

开发人员已将 SSL 证书应用到 Azure Linux Web 服务器上的两个网站


如何让 SSL 在 WAF 上工作?
我整天都在浏览 MS 文档,但不确定如何让它工作 (https://docs.microsoft.com/en-us/azure/application-gateway/create-ssl-portal)

我看到我们需要在里面放一个 PFX 证书 - 我假设自签名证书不是可行的方法。但是,我对在这种情况下所做的事情并不了解 -

我如何获得 PFX 证书以及当您在一个前端 Linux 服务器上有 2 个网站时它如何工作 -

我是否需要取消前端 Linux 服务器上的 SSL 证书,而不是 .cert 获取 .PFX 证书并通过 Azure 门户上传?

真诚欢迎任何帮助! :)

谢谢

如果您希望前端(即 public IP)提供 HTTPS,您需要将 PFX 证书分配给相应后端站点的侦听器。

例如: XPfxCert 应分配给将流量定向到 X.com 应用程序的侦听器 YPfxCert 应分配给将流量定向到 Y.com 应用的侦听器

这将加密您的客户与 WAF 之间的流量。您需要从证书颁发机构(例如 comodoca.com)获得一个,以确保您的最终用户不会遇到这些错误之一,就像您在使用自签名时在此处看到的那样:https://self-signed.badssl.com/

此外,您还需要不同的后端证书。这将加密 WAF 和您的应用程序之间的流量(即使它们都在 Azure 中,您仍然需要它)。它在 HTTPSettings 中分配。您可以在这里进行自签名;然而,在我们的工作中,我们使用 CA 为两者提供的证书。

最后,如果目标是在同一个 VM 上同时托管 X.com 和 Y.com,您应该能够配置基于路径的规则来适当地引导流量。作为替代方案,您可以在 VM 上拥有多个 NIC,并配置多个后端池以将流量定向到适当的站点。

参考文献:

假设您有两个不同的 X.com 和 Y.com 证书,那么您应该将这些证书与相应的多站点侦听器相关联,这些侦听器是您在端口 443 上创建的侦听器。您应该创建两个新规则,使用 HTTP 设置将这些侦听器关联到相应的后端池。请记住删除除 4 条规则之外的任何其他规则(2 条用于 HTTPS 侦听器,2 条用于 HTTP 侦听器)。

此时您应该能够向这些侦听器发送流量,这将终止 SSL 和 运行 WAF 规则。由于您的后端已配置为侦听端口 80,因此它应该与现有的 HTTP 设置一样工作。后端通信通过 HTTP。

如果您想启用端到端 SSL - 即重新加密到后端的流量,那么您应该按照有关在上述设置中启用 end to end SSL 的文档进行操作。