说,我有两个应用程序服务(仅启用HTTPS):
https://myapp1.azurewebsites.net
https://myapp2.azurewebsites.net
我可以使用HTTPS成功调用两个应用程序服务端点。
然后,我创建了一个流量管理器,并将以上两个端点添加到流量管理器中,例如:
myapps.trafficmanager.net
创建流量管理器并添加端点后,trafficanger主机名 myapps.trafficmanager.net 也会自动添加到两个应用程序服务的自定义域中。但是没有SSL绑定到流量管理器主机名。
然后,如果我使用HTTPS呼叫流量管理器端点:https://myapps.trafficmanager.net,则会收到不受信任的SSL证书错误/警告。这是预期的。
由于流量管理器仅在DNS级别上运行,因此实际请求实际上已发送到具有正确SSL证书绑定的应用程序服务端点。我的问题是:
从安全角度来看,在我的代码中使用HTTPS(例如,使用.NET HttpClient)调用非证书绑定的流量管理器endpopint是否安全,但是忽略证书错误?< / p>
答案 0 :(得分:0)
我最近也设置了其中一个,并与之抗争了一段时间。简短的答案是,它可能是安全的,但听起来您使用的流量管理器可能不正确。如果要使用SSL,则不应将流量管理器中的URL用作终点。而是使用DNS CNAME记录将虚荣域名mycoolsite.com
配置为指向myapps.trafficmanager.net
。
如果要使用SSL和单个URL,则应配置自定义URL并在服务级别安装SSL证书。两个应用程序服务上的自定义URL应该相同。必须在应用程序服务not in Traffic Manager中进行配置。
我不得不读this几次,以了解它是如何工作的,但这很有帮助。
因此,总而言之,要正确设置,步骤如下:
答案 1 :(得分:0)
由于通过HTTPS使用流量管理器运行状况探针时,服务器证书未通过验证,因此无需将证书与流量管理器绑定。此外,流量管理器在DNS级别工作。客户端直接连接到选定的终结点,而不通过流量管理器。
在这种情况下,您可以将HTTPS用于终结点,并通过HTTPS使用运行状况探针。即使您无法将证书与流量管理器绑定,也可以确保在流量管理器中正确配置了监视端口(例如443而不是80),并且监视路径也指向服务的有效页面。
Another SO answer解释了更多详细信息。如果您仍想使此警告消失,则可以从letsencrypt.org获取免费的SSL,然后使用*.trafficmanager.net
将其添加到自定义域中。