使单个Azure WebRole在单独的SSL证书上支持多个域

Joe*_*eky 3 ssl https certificate azure azure-web-roles

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

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

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

blu*_*ing 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-云服务/

MSDN文章:为多个Web站点配置 Web角色中描述了一个Web角色中多个Web站点的配置选项

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

<InputEndpoint name="HttpsIn2" protocol="https" port="444" certificate="foo.com" />
<InputEndpoint name="HttpsIn3" protocol="https" port="445" certificate="bar.com" />
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)