Azure Web角色 - 指向单个端点的多个ssl证书

时间:2010-12-16 13:34:59

标签: ssl azure ssl-certificate

有没有办法让多个ssl证书指向服务定义中的单个inputendpoint?例如,假设我有两个网址。

service.foo.net/Service.svc

service.doo.net/Service.svc

我希望这两个地址都能解析为我的windows azure服务,但我不知道如何在服务定义中配置它。

<Certificates>
   <Certificate name="service.foo.net" storeLocation="LocalMachine" storeName="My" />
   <Certificate name="service.doo.net" storeLocation="LocalMachine" storeName="My" />
  </Certificates>
  <Endpoints>
   <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="service.foo.net" />
  </Endpoints>

根据这篇MSDN文章,每个输入端点必须具有唯一的端口。有没有办法为此端点指定多个证书?

3 个答案:

答案 0 :(得分:8)

不幸的是,这是不可能的。 Azure正在重新暴露SSL限制。 SSL限制很有趣,也是您无法通过SSL使用v-hosts的原因。让我们来看一个例子:

  1. 您已连接到https://ig2600.blogspot.com
  2. 解析为某个IP地址 - 比如说8.8.8.8
  3. 您的浏览器现已连接到8.8.8.8
  4. 8.8.8.8必须在浏览器发送任何数据之前预设证书
  5. 浏览器验证所提供的证书是否适用于ig2600.blogspot.com
  6. 您发送包含您的域名的http请求。
  7. 由于服务器需要在之前提供证书,您告诉它要与之通信的主机名,如果存在多个证书,服务器无法知道要使用哪个证书,因此您只能有一个证书。

答案 1 :(得分:5)

“Oliver Bock”的回答可能对您有用,而且“Igor Dvorkin”的答案已经无效了,因为带有Windows Server 2012的IIS 8支持SNI,这使您能够在HTTPS绑定中添加“hostheader”并拥有多个SSL证书到不同的域,侦听同一个HTTPS端口。

您需要自动执行在计算机上安装证书的过程,并将HTTPS绑定添加到IIS。

我是微软技术推广人员,我在以下网址发布了详细解释和示例“即插即用”源代码: http://www.vic.ms/microsoft/windows-azure/multiples-ssl-certificates-on-windows-azure-cloud-services/

答案 2 :(得分:4)

This post表示您需要一个“多域证书”,它似乎是一个可以在Igor的答案的第5步中匹配多个DNS名称的证书。我没有尝试过,但推测这个证书可能是uploaded to Azure in the usual way