首页 文章

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

提问于
浏览
3

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

foo1.mydomain.com

foo2.mydomain.com

我有两个指向相应Azure App Service IP地址的子域的记录 .

我还为服务附加了通配符证书,如果我导航到https://foo1.mydomain.comhttps://foo2.mydomain.com,一切都很顺利 . 流量管理器 endpoints 监控将两个 endpoints 显示为联机并启用 .

现在,我想让客户端向虚荣 endpoints 发出请求: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 app not found"消息 . 同样,解析单个 endpoints 显式返回200预期 .

我的问题:如何使用我的SSL / TLS证书和虚URL来正确配置Azure Traffic Manager以对两个自定义域名进行优先级路由?

Dig output for reference:

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

4 回答

  • 0

    需要将虚荣域名分配给每个 endpoints 应用服务,并且证书需要绑定到各个 endpoints ,即foo1和foo2以及虚荣 endpoints . You need to bind the certificate to the vanity domain in all app services that are going to be used as endpoints .

    DNS配置需要如下:

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

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

  • 2

    请参阅https://azure.microsoft.com/en-gb/documentation/articles/traffic-manager-how-traffic-manager-works/

    由于Traffic Manager在DNS级别工作,因此您看到的证书(* .azurewebsites.net)必须来自App Service,而不是来自Traffic Manager . 您需要将App Service配置为使用正确的SSL证书 .

    我建议您尝试在没有Traffic Manager的情况下使一切正常工作,并将您的虚拟域foo.mydomain.com设置为您的某个 endpoints (foo1.mydomain.com)的CNAME . 然后切换CNAME以指向另一个 endpoints (foo2.mydomain.com)并再次确保一切正常 . 由于此时的任何问题都不涉及流量管理器,这使它们更容易调试 .

    一旦你有了工作,然后将流量管理器重新引入CNAME链 .

    问候,

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

  • 9

    我遇到了同样的问题,并且在应用以下Azure和DNS配置后能够最终解决问题 . 我失踪的那篇文章是在每个 endpoints 上注册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
    
  • 1

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

    将您的流量管理器 endpoints 重新定义为:

    foo.domain.com
    bar.domain.com
    

    而不是.azurewebsites.net域名 .

相关问题