使用带MVC的通配符证书在Azure上托管许多SSL站点

时间:2011-03-25 14:01:20

标签: ssl asp.net-mvc-3 azure wildcard-subdomain hostheaders

以下应用程序当前在我尝试迁移到Azure的Windows 2008 R2服务器上运行:

第1部分

首先,我有以下ASP.NET MVC站点,它根据DNS名称的第一部分路由客户:

https://customer1.myAzureSite.com

https://customer2.myAzureSite.com

https://customer3.myAzureSite.com

...

https://customerN.myAzureSite.com

第2部分

然后,我还有一个不同的IIS网站,仅用于注册/注册

https://enroll.myAzureSite.com

第3部分

此应用程序使用SOA,并且业务层还有另一个站点:

https://BusinessLayer.myAzureSite.com

到目前为止已完成的工作

我打算在配置文件中使用“sites”标签来设置两个站点。我计划使用IIS主机头来捕获“enroll”和“businesslayer”子域。我有一个证书,其主题名称为*.myAzureSite.com

问题:

如何正确配置我的部署(从Azure角度来看),以便所有主机标头都转到我的MVC应用程序,只有一个转到“注册”,另一个转到“businesslayer”

问题:

这可以通过SSL正常工作吗?

需要做什么comparable配置?

2 个答案:

答案 0 :(得分:4)

我将从简单的部分开始,您的通配符SSL证书应该适用于这些网站。您只需确保向角色添加https端点并选择相应的证书。

从我所看到的,您需要在服务定义中定义三个站点。首先是默认值,然后是您的MVC站点。然后为您的企业和注册网站各一个。您的网站部分可能如下所示:

 <Sites>
  <Site name="Web">
    <Bindings>
      <Binding name="mvchttp" endpointName="http" />
      <Binding name="mvchttps" endpointName="https" />
    </Bindings>
  </Site>
  <Site name="Enroll" physicalDirectory="\enroll...">
    <Bindings>
      <Binding name="mvchttp" endpointName="http" hostHeader = "enroll.MyAzureSite.Com" />
      <Binding name="mvchttps" endpointName="https" hostHeader = "enroll.MyAzureSite.Com" />
    </Bindings>
  </Site>
  <Site name="BusinessLayer" physicalDirectory="\BusinessLayer...">
    <Bindings>
      <Binding name="mvchttp" endpointName="http" hostHeader = "BusinessLayer.MyAzureSite.Com" />
      <Binding name="mvchttps" endpointName="https" hostHeader = "BusinessLayer.MyAzureSite.Com" />
    </Bindings>
  </Site>
</Sites>

答案 1 :(得分:0)

值得一提的是,借助Windows Azure Accelerator for web角色,最近将多个站点部署到Web角色变得更加轻松 - 更多信息请http://waawebroles.codeplex.com/