如何获得“ HTTPS” / SSL的工作-在Linux上具有2个网站的Azure WAF(应用程序网关)

时间:2018-07-18 08:43:13

标签: azure ssl https azure-application-gateway web-application-firewall

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

我将尽可能简单地解释这种情况:

开发人员已经在位于AZURE的Linux前端服务器上建立了两个网站(例如: X.com Y.com )。 NSG 以及 Azure Application Gateway WAF

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

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


到目前为止,问题在于如何使SSL正常工作:

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


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

我看到我们需要在内部放一个PFX证书-我假设没有一个自签名证书。但是,对于这种情况下的操作我并不明智-

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

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

任何帮助都非常欢迎! :)

谢谢

2 个答案:

答案 0 :(得分:2)

如果您希望前端(即公共IP)提供HTTPS服务,则需要将PFX证书分配给适当的后端站点的侦听器。

例如: 应该将 X PfxCert分配给将流量定向到X.com应用的侦听器 Y PfxCert应该分配给将流量定向到Y.com应用的侦听器

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

此外,您还需要后端使用不同的证书。这将对WAF和您的应用程序之间的通信进行加密(即使它们都在Azure中,您仍然需要它)。它在HTTPSettings中分配。您也许可以在这里摆脱自我签名;但是,在我们的工作中,我们都使用了CA提供的证书。

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

参考文献:

答案 1 :(得分:0)

假设您有两个分别用于X.com和Y.com的证书,则应将这些证书与您将在端口443上创建监听的相应多站点监听器相关联。您应创建两个新规则来关联这些侦听器使用HTTP设置访问相应的后端池。请记住删除4条规则之外的所有其他规则(2条用于HTTPS侦听器,2条用于HTTP侦听器)。

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

如果您要启用端到端SSL(即将流量重新加密为后端),则应遵循上述设置中启用end to end SSL的文档。