不将 CERT 绑定到 Azure 流量管理器(在仅 HTTPS 应用程序服务之前)主机名是否安全?

Is it safe not bind CERT to azure traffic manager (in front of HTTPS only app service) host name?

说,我有两个应用程序服务(仅启用 HTTPS):

https://myapp1.azurewebsites.net
https://myapp2.azurewebsites.net

我可以使用 HTTPS 成功调用两个应用服务端点。

然后我创建了一个流量管理器并将以上两个端点添加到流量管理器,比如:

myapps.trafficmanager.net

创建流量管理器并添加端点后,流量管理器主机名myapps.trafficmanager.net也会自动添加到两个应用程序服务的自定义域中。但是没有 SSL 绑定到流量管理器主机名。

然后,如果我使用 HTTPS 调用流量管理器端点:https://myapps.trafficmanager.net,我将获得不受信任的 SSL 证书 error/warning。这是预期的。

由于流量管理器仅在 DNS 级别上工作,因此真正的请求实际上是发送到具有正确 SSL 证书绑定的应用服务端点。我的问题是:

从安全的角度来看,在我的代码中使用 HTTPS 调用非证书绑定流量管理器端点是否安全(例如,使用 .NET HttpClient) 但忽略证书错误?

我最近也设置了其中一个,并与它战斗了一会儿。简短的回答是它可能是安全的,但听起来您可能没有正确使用流量管理器。如果您想使用 SSL,则不应将流量管理器中的 URL 用作终点。而是使用 DNS CNAME 记录配置您的虚域名 mycoolsite.com 以指向 myapps.trafficmanager.net

如果您想使用 SSL 和单个 URL,您应该配置自定义 URL 并在服务级别安装 SSL 证书。两个应用程序服务上的自定义 URL 应该相同。这必须在应用程序服务中配置,not in Traffic Manager

我必须阅读 this 几遍才能理解其背后的工作原理,但很有帮助。

总而言之,要正确设置,步骤如下:

  1. 在两个应用程序服务上配置 custom/vanity 域
  2. 在两个应用程序服务上安装 SSL 证书
  3. 设置和配置流量管理器
  4. 使用 DNS CNAME 记录将 custom/vanity URL 指向流量管理器

不需要将证书与流量管理器绑定,因为在通过 HTTPS 使用流量管理器运行状况探测时,服务器证书未经过验证。此外,流量管理器在 DNS 级别工作。客户端直接连接到选定的终结点,而不是通过流量管理器。

在这种情况下,您可以对端点使用 HTTPS,并通过 HTTPS 使用运行状况探测。即使您无法将证书与流量管理器绑定,您也可以确保在流量管理器中正确配置了监控端口(例如 443 而不是 80),并且您的监控路径指向您的服务的有效页面。

explains this more details. If you still want to make this warning disappearing, you can get a free SSL from letsencrypt.org 并使用 *.trafficmanager.net.

将其添加到您的自定义域