【问题标题】:Getting single Azure WebRole to support multiple domains on seperate SSL certificates获取单个 Azure Web 角色以支持不同 SSL 证书上的多个域
【发布时间】:2013-09-23 17:44:12
【问题描述】:

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

为此,我认为我需要运行 Web 角色的单独角色实例,这样我就不会与端口/证书绑定发生冲突。除了域名和 SSL 证书之外,项目是相同的。谁能告诉我一个有效的方法来完成这个?

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

【问题讨论】:

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


    【解决方案1】:

    正如您所说,单个 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>
    

    【讨论】:

    • 这在本地工作,但每次我通过门户部署它时都会收到错误 A generated setting in one of the roles you did not intend to upgrade has changed 并且部署失败
    • 最后,我必须删除所有已部署的实例才能部署此更改。 Azure 支持的最佳猜测是,由于绑定数量的变化,这会阻止就地升级,但由于这是一个多角色部署,所以我提供的上一条消息隐藏了真正的底层错误消息。感谢您的帮助。
    猜你喜欢
    • 2011-05-26
    • 2011-09-04
    • 1970-01-01
    • 2015-06-21
    • 2018-04-04
    • 1970-01-01
    • 2017-04-19
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多