未使用内部负载均衡器和应用服务环境将应用程序网关的后端服务器证书加入允许列表。

本文排查以下问题:在 Azure 中使用端到端 SSL 期间,在后端结合使用内部负载均衡器 (ILB) 和应用服务环境 (ASE) 创建应用程序网关时,证书未加入允许列表。

症状

在后端使用 ILB 和 ASE 创建应用程序网关时,后端服务器可能不正常。 如果应用程序网关的身份验证证书与后端服务器上配置的证书不匹配,则会出现此问题。 以下面的场景为例:

应用程序网关配置:

  • 侦听器: 多站点
  • 端口: 443
  • 主机名: test.appgwtestase.com
  • SSL 证书: CN=test.appgwtestase.com
  • 后端池: IP 地址或 FQDN
  • IP 地址: 10.1.5.11
  • HTTP 设置: HTTPS
  • 端口: 443
  • 自定义探测: 主机名 - test.appgwtestase.com
  • 身份验证证书: test.appgwtestase.com 的 .cer 证书
  • 后端运行状况: 不正常 - 未将应用程序网关的后端服务器证书加入允许列表。

ASE 配置:

  • ILB IP: 10.1.5.11
  • 域名: appgwtestase.com
  • 应用服务: test.appgwtestase.com
  • SSL 绑定: SNI SSL - CN=test.appgwtestase.com

访问应用程序网关时,会收到以下错误消息,因为后端服务器不正常:

502 - Web 服务器在充当网关或代理服务器时收到了无效响应。

解决方案

如果不使用主机名来访问 HTTPS 网站,后端服务器将在默认网站上返回配置的证书。 对于 ILB ASE,默认证书来自 ILB 证书。 如果没有为 ILB 配置证书,则证书来自 ASE 应用证书。

如果使用完全限定的域名 (FQDN) 来访问 ILB,则后端服务器将返回 HTTP 设置中上传的正确证书。 在此情况下,请考虑以下选项:

  • 使用应用程序网关的后端池中的 FQDN 指向 ILB 的 IP 地址。 仅当已配置专用 DNS 区域或自定义 DNS 时,此选项才可用。 否则,必须为公共 DNS 创建“A”记录。

  • 使用 ILB 中上传的证书,或 HTTP 设置中的默认证书。 应用程序网关在访问用于探测的 ILB IP 时会获取该证书。

  • 在 ILB 和后端服务器上使用通配符证书。

  • 对应用程序网关清除“用于应用服务”选项。

若要降低开销,可在 HTTP 设置中上传 ILB 证书,使探测路径正常工作。 (此步骤仅适用于允许列表操作, 不可用于 SSL 通信。)可以通过在 HTTPS 中使用 ILB 的 IP 地址来访问 ILB,然后以 Base-64 编码的 CER 格式导出 SSL 证书,并在相应 HTTP 设置中上传该证书,来检索 ILB 证书。

需要帮助? 联系支持人员

如果仍需要帮助,可 联系支持人员 来快速解决问题。