获取单个Azure Web角色以在单独的SSL证书上支持多个域

时间:2013-09-18 19:52:58

标签: azure ssl https certificate azure-web-roles

我有一个Azure Cloud项目,其中包含缓存角色,辅助角色和Web角色。我有一个新的要求,即让Web角色服务有两个独立的域,每个域都有不同的SSL证书。它们还需要绑定到同一个端口。我没有多域证书,因为它们归不同的人所有。

为此,我认为我需要运行Web角色的单独角色实例,因此我没有与port / cert绑定冲突。除了域名和SSL证书之外,项目是相同的。谁能告诉我一个有效的方法来实现这一目标?

在短期内,我愿意在不同的端口上运行,但也无法让它工作。

1 个答案:

答案 0 :(得分:6)

正如您所说,单个WebRole只有一个外部IP,因此我认为通过在服务定义(.csdef)文件中使用,您只能在端口443上拥有一个https端点证书。如果您拥有多个证书SAN可能可以在同一个端口上为不同的站点提供服务。

此博客文章描述了您要查找的内容(设置IIS 8.0支持的SNI SSL扩展): http://www.vic.ms/microsoft/windows-azure/multiples-ssl-certificates-on-windows-azure-cloud-services/

MSDN文章中描述了一个Web角色中多个网站的配置选项:Configure a Web Role for Multiple Web Sites

作为短期解决方案,您可以尝试使用其他终点:

<InputEndpoint name="HttpsIn2" protocol="https" port="444" certificate="foo.com" />
<InputEndpoint name="HttpsIn3" protocol="https" port="445" certificate="bar.com" />

并在其他网站中使用它们:

<WebRole name="Web" vmsize="Small">
<Sites>
  <Site name="Web"> ... </Site>
  <Site name="foo" physicalDirectory="..\..\..\Web\Content">
    <Bindings>
      <Binding hostHeader="www.foo.com" name="HttpsBindingA" endpointName="HttpsIn2" />
    </Bindings>
  </Site>
  <Site name="bar" physicalDirectory="..\..\..\Web\Content">
    <Bindings>
      <Binding hostHeader="www.bar.com" name="HttpsBindingB" endpointName="HttpsIn3" />
    </Bindings>
  </Site>