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

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

许多用户认为此过程非常复杂,因为用户需要通过门户、PowerShellcmdlet,或者直接调用
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 绑定的网站。

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

Azure 网站和通配符域的更多相关文章

  1. Windows Azure 网站的 IP 和域限制

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. 配置 Azure 网站 (WAWS) 的 IP 和域限制一直是用户最迫切希望我们提供 ...

  2. 比较Windows Azure 网站(Web Sites), 云服务(Cloud Services)and 虚机(Virtual Machines)

    Windows Azure提供了几个部署web应用程序的方法,比如Windows Azure网站.云服务和虚拟机.你可能无法确定哪一个最适合您的需要,或者你可能清楚的概念,比如IaaS vs PaaS ...

  3. Windows Azure -Azure 网站、云服务和虚拟机的对比

    Azure 网站.云服务和虚拟机对比 概述 Azure提供了几种方法来承载网站: Azure网站.云服务和虚拟机.本文帮助您了解选项和为您的Web应用程序做出正确选择. Azure网站是大多数web应 ...

  4. Windows Azure 网站上的 WebSocket 简介

    编辑人员注释:本文章由 Windows Azure 网站团队的首席项目经理 Stefan Schackow 撰写. Windows Azure 网站最近新增了对 WebSocket 协议的支持..NE ...

  5. 通过 HTTPS 和 SSL 确保 Windows Azure 网站 (WAWS) 安全

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Erez Benari 撰写. 随着身份盗窃和各种形式的网络犯罪迅速增多,使用安全套接字层 (SSL) 对网站进行保护变得越来越 ...

  6. Azure 网站、云服务和虚拟机比较

    最后更新时间(英文版):09/24/2014 最后更新时间(中文版):04/11/2015 Azure 提供几种方式托管 web 应用程序,如 Azure 网站.云服务和虚拟机.查看这些不同的选项后, ...

  7. Microsoft Azure Web Sites应用与实践【4】—— Microsoft Azure网站的“后门”

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  8. Microsoft Azure Web Sites应用与实践【3】—— 通过Visual Studio Online在线编辑Microsoft Azure 网站

    Microsoft Azure Web Sites应用与实践 系列: [1]—— 打造你的第一个Microsoft Azure Website [2]—— 通过本地IIS 远程管理Microsoft ...

  9. 在 Windows Azure 网站中进行纵向扩展和横向扩展

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...

随机推荐

  1. 用CodeBlocks构建C项目时候出现的问题

    后缀名为depend的文件 是makefile 编译产生的文件 是生成一种依赖关系 帮助程序编译的   那为什么有时候会生成而有时候又不会呢?   看你makefile 自己的编写 写了就有 没写就没 ...

  2. QF——iOS第三方登录和社会化分享

    QQ登录的流程: 1.下载SDK,并添加到项目中: 2.添加SDK需要的依赖库,以及配置文件: 3.重写APPDelegate的方法handleOpenURL和openURL: 4.实现Tencent ...

  3. C++ 获取UUID

    #include <string> #include <stdio.h> #if defined(WIN32)||defined(WINCE)||defined(WIN64) ...

  4. css 里层元素撑不开外层元素

    一般是,里面那层做了高度设置,如:height, overflow等 另外可以让里面元素清楚浮动,如:clear:both

  5. Vim配置 终端背景色配置

    在终端下使用vim进行编辑时,默认情况下,编辑的界面上是没有显示行号.语法高亮度显示.智能缩进 等功能的.为了更好的在vim下进行工作,需要手动设置一个配置文件:.vimrc.在启动vim时,当前用户 ...

  6. 对原生js的一些小尝试

    意图仿造JQ操作以及弄个个人工具箱,不断完善中,代码均为个人摸索,所以肯定会有不少不足的地方,希望读者们能提出来. var xzhUtils = { //-----DOM对象添加类----- //-- ...

  7. Case when 的用法,简单Case函数

    Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...

  8. hdu 1210_(逻辑训练)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1210 #include<stdio.h> int main() { int n,t,sum ...

  9. poj1663---纯粹找规律

    #include <stdio.h> #include <stdlib.h> int main() { int n; scanf("%d",&n); ...

  10. 剑指offer 25 二叉树中和为某一值的路径

    非递归方法: class Solution { public: vector<vector<int>> FindPath(TreeNode* root,int expectNu ...