我有一个Azure Cloud项目,其中包含缓存角色,辅助角色和Web角色。我有一个新的要求,即让Web角色服务有两个独立的域,每个域都有不同的SSL证书。它们还需要绑定到同一个端口。我没有多域证书,因为它们归不同的人所有。
为此,我认为我需要运行Web角色的单独角色实例,因此我没有与port / cert绑定冲突。除了域名和SSL证书之外,项目是相同的。谁能告诉我一个有效的方法来实现这一目标?
在短期内,我愿意在不同的端口上运行,但也无法让它工作。
答案 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>