Azure流量管理器SSL设置(非经典)



我有一个Azure API应用程序服务,我想配置"优先级"流量管理(这是新的流量管理器,而不是经典的)。我已经将服务部署到两个独立的Azure区域,并配置了一个流量管理器实例来执行到这两个服务实例的优先级路由。这些服务具有以下自定义域配置:

foo1.mydomain.com

foo2.mydomain.com

我有两个子域的A记录指向各自的Azure应用程序服务IP地址。

我还附加了一个通配符证书的服务,一切工作顺利,如果我导航到https://foo1.mydomain.com或https://foo2.mydomain.com。流量管理器端点监控显示两个端点都处于在线状态并已启用。

现在,我想让客户端请求虚荣端点:foo.mydomain.com,我已经为它创建了一个CNAME。CNAME指向流量管理器实例URL myapi.trafficmanager.net。

当我尝试使用SSL/TLS解析虚荣URL时,即https://foo.mydomain.com,我得到证书错误,因为流量管理器正在附加*.azurewebsited.net证书。如果我试图在没有SSL/TLS的情况下解析虚URL,即http://foo.mydomain.com,我将收到404和"未找到Web应用程序"消息。同样,解析单个端点显式返回预期的200。

我的问题:我如何正确配置Azure流量管理器,以使用我的SSL/TLS证书和虚荣URL为两个自定义域名做优先路由?

挖掘输出供参考:

my-machine:~ jtw$ dig foo.mydomain.com
; <<>> DiG 9.8.3-P1 <<>> foo.mydomain.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4088
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;foo.mydomain.com.      IN  A
;; ANSWER SECTION:
foo.mydomain.com.   299 IN  CNAME   myapi.trafficmanager.net.
myapi.trafficmanager.net. 299 IN    CNAME   foo1.mydomain.com.
foo1.mydomain.com.  299 IN  A   192.168.1.1 //the actual IP of my first priority endpoint is returned here
;; Query time: 369 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Jul  3 11:13:59 2016
;; MSG SIZE  rcvd: 112

请参阅https://learn.microsoft.com/en-us/azure/traffic-manager/traffic-manager-how-it-works

由于流量管理器在DNS级别工作,因此您看到的证书(*.azurewebsites.net)必须来自应用程序服务,而不是流量管理器。你需要配置你的应用服务来使用正确的SSL证书。

我建议你尝试在没有流量管理器的情况下让一切工作,将你的虚荣域名foo.mydomain.com设置为一个CNAME到你的一个端点(foo1.mydomain.com)。然后切换CNAME指向另一个端点(foo2.mydomain.com),再次确保一切正常。因为在这一点上,任何问题都不会涉及流量管理器,这使得它们更容易调试。

一旦你的工作,然后重新引入流量管理器到CNAME链。

问候,

Jonathan Tuliani, Azure网络项目经理- DNS和流量管理

虚荣域名需要分配给每个端点应用程序服务,证书需要绑定到单个端点,即foo1和foo2以及虚荣端点。您需要将证书绑定到所有将用作端点的应用程序服务中的虚域

DNS配置要求如下:

每个应用服务端点域的A记录,指向Azure为应用服务分配的IP地址。

从虚域指向*.trafficmanager.net域的CNAME

我遇到了同样的问题,并在应用以下Azure和DNS配置后最终解决了这个问题。我遗漏的部分是在每个端点上注册foo.mydomain.com。唯一域必须在api域之前绑定,否则由api域管辖。

Traffic Manager Endpoints
foo1.mydomain.com
foo2.mydomain.com
Endpoint 1 App Service SSL Bindings:
foo1.mydomain.com (Must Be Added First)
foo.mydomain.com
Endpoint 2 App Service SSL Bindings:
foo2.mydomain.com (Must Be Added First)
foo.mydomain.com
mydomain.com DNS Records
CNAME Host: foo, Value: myapi.trafficmanager.net
CNAME Host: foo1, Value: endpoint1.azurewebsites.net
CNAME Host: foo2, Value: endpoint2.azurewebsites.net

流量管理器没有附加任何东西,因为它不是一个web服务器,它只是一个比你的平均水平更聪明的名称服务器。

将流量管理器端点重新定义为:

foo.domain.com
bar.domain.com

代替。azurewebsites.net域名。

最新更新