我在 Azure 中有 2 个 VMSS,它们前面有一个内部 LB。LB 有一个 443 规则和一个探测器,用于执行 https 请求,其请求路径指向规模集上部署的应用程序的健康检查端点。所有都是标准的东西,但这里的问题是,我们使用的是来自 Hashicorp Vault 实例的自签名证书。我已经在规模集的所有虚拟机上安装并信任了根 CA 证书。但是,探测器无法命中请求路径,并将实例标记为不健康。我怀疑探测器无法执行 https 请求,因为证书是自签名的。
经过一番研究,我发现我可以使用应用程序网关而不是 LB 来启用端到端加密,因为 AG 在第 7 层工作并允许 SSL 卸载。但是,我似乎找不到有关如何使用“AG 探测”进行自动实例修复的任何文档。
一种解决方案是在 LB 规则、NSG 规则和每个虚拟机上的 nginx 反向代理上启用端口 80(当前仅配置了 listen 443)。然后探测器可以执行 http/80/requestpath,我希望它能正常工作。然而,这是不安全的,并且会使外部流量通过 80 端口到达 Web 应用程序。这不是一个选择。
这里是否有一个万能的解决方案,允许我仅使用自签名证书运行 HTTPS 并启用自动实例修复?我可以将探测器切换为使用 TCP/443 而不是 HTTPS/443/requestpath,但由于应用程序可能会崩溃,因此感觉不够,但端口 443 流量绝对可以正常工作。