在为Azure API管理创建CNAME时是否可以使用多个子域级别?
我在Azure中设置了一个域,如下所示;
mydomain.com <- main web site as an Azure web app
api.mydomain.com <- API managed by Azure API Mgmt
portal.mydomain.com <- Portal managed by Azure API Mgmt
这很好,但是我们想要建立一个结构化的测试子域,如下所示;
test.mydomain.com <- main web site as an Azure web app
api.test.mydomain.com <- API managed by Azure API Mgmt
portal.test.mydomain.com <- Portal managed by Azure API Mgmt
我们已经创建了test.mydomain.com Web应用程序,但Azure API管理不允许我们使用子域api.test或portal.test。
它产生的错误是;
{“code”:“InvalidOperation”,“message”:“证书'933EDADD0C4037F6A0C02D38DFD5AF4A76FXXXXX'无效。域名:api.test.mydomain.com”,“details”:null,“innerError”:null}
如果我们使用单个主机(例如,apitest没有点而不是api.test),则会消失。
我们的CNAMES设置如下。
api mydomainapi.azure-api.net
api.test mydomaintestapi.azure-api.net
portal.test mydomaintestapi.azure-api.net
我已经尝试了各种各样的jiggery pokery,我们已经能够使用这些自定义域来托管Web应用程序,而不是Azure API端点。
答案 0 :(得分:4)
看起来您正在尝试使用主题名称为* .mydomain.com的SSL证书?如果是,则错误是预期的,因为* .mydomain.com的SSL通配符证书将与apitest.mydomain.com匹配,但与api.test.mydomain.com不匹配。这与APIM没有任何关系,这就是如何定义/实现证书主题名称匹配规则。
以下是关于同一wildcard ssl on sub-subdomain
的一个解释您可以获取新证书或在SAN中添加* .test.mydomain.com获取相同的证书,然后相同的SSL证书将适用于您的所有3个网址。