Hosting many SSL sites on Azure using a wildcard certificate with MVC
The following application currently runs on a Windows 2008 R2 server that I'm attempting to migrate to Azure:
Part 1
First I have the following ASP.NET MVC site that routes customers based on the first part of the DNS name:
https://customer1.myAzureSite.com
https://customer2.myAzureSite.com
https://customer3.myAzureSite.com
...
https://customerN.myAzureSite.com
Part 2
Then, I also have a different IIS website that is used for enrolling/signing up only
https://enroll.myAzureSite.com
Part 3
This application uses SOA, and there is another site for the businesslayer:
https://BusinessLayer.myAzureSite.com
Work done so far
I'm planning on using the "sites" tag in the config file to set up two sites. I plan on using IIS host headers to catch the "enroll" and "businesslayer" subdomains. I have a certificate with the following subject name *.myAzureSite.com
Question:
How do I properly configure my deployment (from an Azure perspective) so that all host headers go to my MVC application, and only one goes to "enroll", and another to "businesslayer"
Question:
Will this wor开发者_StackOverflow社区k correctly over SSL?
What comparable configuration needs to be done?
I'll start with the easy part, your wildcard SSL certificate should be fine for these sites. You'll just need to make sure that you add a https endpoint to your role and select the appropriate certificate.
From what I can see, you'll need three sites defined in your service definition. First the default one while will be your MVC site. Then one each for your business and enroll sites. Your sites section might look something like this:
<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>
It's worth mentioning that deploying multiple sites to a web role has recently been made much easier with the help of the Windows Azure Accelerator for web roles - more info at http://waawebroles.codeplex.com/
精彩评论