azure - 如何让“HTTPS”/SSL 工作 - 在 Linux 上带有 2 个网站的 Azure WAF(应用程序网关)
问题描述
我无法让 SSL/HTTPS 在 Azure WAF(ApplicationGateway)上工作(http / port:80 工作正常)
我将尽可能基本地解释这个场景:
开发人员在 AZURE 的 Linux 前端服务器上创建了两个网站(例如:X.com和Y.com ),位于NSG和Azure 应用程序网关 WAF后面
开发者将X.com和Y.com的DNS记录指向WAF的单一IP(appGatewayFrontendIP)
用户可以毫无问题地浏览两个网站 http / port:80。
现在的问题在于如何让 SSL 工作,到目前为止:
开发人员已将 SSL 证书应用于 Azure 中 Linux Web 服务器上的两个网站
如何让 SSL 在 WAF 上工作?
我整天都在浏览 MS Docs,但不确定如何让它工作(https://docs.microsoft.com/en-us/azure/application-gateway/create-ssl-portal)
我看到我们需要在里面放一个 PFX 证书 - 我假设自签名证书不是要走的路。但是,我对在这种情况下所做的事情并不明智-
当您在单个前端 Linux 服务器上有 2 个网站时,我如何获得 PFX 证书以及它如何工作 -
我是否需要取消前端 Linux 服务器上的 SSL 证书,而不是 .cert 获取 .PFX 证书并通过 Azure 门户上传?
真正欢迎任何帮助!:)
谢谢
解决方案
如果您希望前端(即公共 IP)提供 HTTPS,则需要将 PFX 证书分配给相应后端站点的侦听器。
例如: X PfxCert 应分配给将流量定向到 X.com 应用程序 的侦听器Y PfxCert 应分配给将流量定向到 Y.com 应用程序的侦听器
这将加密您的客户和 WAF 之间的流量。您需要从证书颁发机构(例如 comodoca.com)获得一个,以确保您的最终用户不会遇到像您在使用自签名时会在此处看到的错误之一:https://self-signed .badssl.com/
此外,后端需要不同的证书。这将加密 WAF 和您的应用程序之间的流量(即使它们都在 Azure 中,您仍然需要它)。它在 HTTPSettings 中分配。您也许可以在这里自签名而逃脱;但是,在我们的工作中,我们使用 CA 为两者提供的证书。
最后,如果目标是将 X.com 和 Y.com 托管在同一个 VM 上,您应该能够配置基于路径的规则来适当地引导流量。作为替代方案,您可以在 VM 上拥有多个 NIC,并配置多个后端池以将流量引导到适当的站点。
参考:
推荐阅读
- android - toJson 和 fromJson 跨平台支持
- python - 如何将值动态添加到 python dict 中,然后添加到 JSON 文件中?
- spring - spring-jpa:PropertyReferenceException:没有找到类型 [PerfectionTask] 的属性 [保存]
- firebase - firebase 功能的问题:模拟器模式和部署模式的不同输出
- javascript - 从零开始写compose,参数怎么传下来?
- html - 如何在 VUE 项目中使用导入的字体?
- amazon-web-services - 对第三方平台的每次 api 调用的 AWS ec2 实例成本
- mongodb - Morphia 2.0 中的原生 MongoDB 查询
- c++ - 在 Pytorch C++ 中将 Tensor 转换为 CUDA,但内容发生了变化
- database - 无法从 Firebase 检索数据库实例