Azure 网站和通配符域

本文章由 Azure 网站团队软件开发工程师 Michael Candido 撰写

一些 Web 应用程序需要使用多个子域,在某些情况下还需要动态添加新的子域。例如,一个多租户 Web 应用程序可使每个用户拥有自己的域, 用于表达属于个人的内容流或仪表板。

许多用户认为此过程非常复杂,因为用户需要通过门户、PowerShell cmdlet,或者直接调用 API(一种更实际的操作)分别添加每个子域。如果需要 SSL,则情况会更加复杂,因为每个子域都需要单独的 SSL 绑定。

为了解决这个问题,我们最近引入了通配符域的使用。有了它,您可以添加通配符域,例如 *.contoso.com,这样用户就可以使用任何子域(www.contoso.com admin.contoso.com 等)访问此网站。

向网站添加通配符域的过程与添加常规域的过程几乎完全相同。为了说明这一点,我们将演示向网站 myazureblog 添加通配符域 *.lovelyazuresky.com 的过程。

1. 第一步是通过域提供商创建 CNAME 记录,这会将用户键入的 URL 解析为 Azure 网站,Azure 网站也可以使用此记录来验证域所有权 (***)。为此,请通过 DNS 提供商编辑您的 DNS 区域,并为您的域 (lovelyazuresky.com) 创建 * 记录,以将该域解析为 myazureblog.azurewebsites.net 的 Azure 网站 URL。不同域提供商使用的管理界面有所不同,以下是GoDaddy 域管理系统的界面:

2. 在继续下一个步骤前,请使用 NSLOOKUP 实用程序或 PING 来确认通配符域是否已正确解析到 Azure(例如,lovelyazuresky.com 下的任何子域将解析为类似于下面的 Azure URL)。如果没有,请稍等片刻,然后再试一次。在记录正确解析前,您将无法继续操作。

3. 下一步是在 Azure 网站配置中添加域,如下所示:

由于您已经配置了 CNAME 记录,验证应该会成功,右侧会显示选中标记予以确认。如果您收到一个错误消息,请稍等片刻 - 通过某些域提供商创建 DNS 记录可能需要几个小时的时间。如果几个小时过后仍无法添加域,请联系 Microsoft 支持获取帮助。

保存配置后,域即已准备就绪,lovelyazuresky.com 的所有第一级子域将指向该网站。

添加 SSL

如果您还想向通配符域添加 SSL 绑定,对于常规的证书配置,还有一些额外的要求。首先,该证书必须是一个通配符证书,以涵盖通配符域中的所有域名。其次,绑定必须是 SNI SSL 绑定(当前不支持 IP SSL 支持)。完成所有操作后,SSL 配置将如下图所示。

如果我们想要对一个或多个子域使用不同的绑定和证书,情况会怎样?可以在网站上添加 payments.lovelyazuresky.com(示例)并创建 SSL 绑定,此子域上的绑定将覆盖 *.lovelyazuresky.com 上的通配符绑定,这一操作便自然完成了。将来,此功能甚至会扩展到多个网站,允许特定子域访问各个使用不同 SSL 绑定的网站。

本文翻译自:https://blogs.msdn.com/b/windowsazure/archive/2014/04/23/azure-websites-and-wildcard-domains.aspx