首页 文章

Azure - 在暂存部署中处理SSL

提问于
浏览
5

我有一个托管在Windows Azure中的Web应用程序 . 我们希望将SSL用于 生产环境 部署,并且我们为域提供了自定义域名和SSL证书,所有这些都在 生产环境 中设置并正常运行 .

Web角色当前同时具有HTTP和HTTPS endpoints ,但我们希望禁用HTTP endpoints 并在 生产环境 中使用HTTPS .

如果我们删除HTTP endpoints ,我的问题是:在Azure中处理Staging部署的HTTPS endpoints 的最佳方法是什么?每次在Azure中执行新的分段部署时,它都会为您提供服务的新临时域名 . 在暂存中,我们是否应该根本不使用SSL证书,只是跳过所有浏览器警告,或者当域名随每个部署发生变化时,是否有办法在登台时使用SSL?或者当我们交换到 生产环境 时,有没有办法在Azure部署中“关闭”(HTTP) endpoints ?

我最初的想法是创建两个具有不同 endpoints 的软件包,但是如果它们具有不同的 endpoints 配置,我不相信Azure会让您热插拔prod和staging deployments .

3 回答

  • 1

    对于我们的一个项目,我们使用的是URL rewrite module,它默认安装在Azure上 . 它很棒 . web.config中的一个部分使所有HTTP流量自动重定向到HTTPS:

    <rule name="HTTP to HTTPS redirect" stopProcessing="true">
      <match url="(.*)" />
        <conditions>
          <add input="{HTTPS}" pattern="off" ignoreCase="true" />
        </conditions>
      <action type="Redirect" redirectType="Found" url="https://{HTTP_HOST}/{R:1}" />
    </rule>
    

    对于登台环境,最好使用与 生产环境 相同的证书 . 这允许在 生产环境 和登台之间轻松进行热交换,您可以在浏览器中验证证书是否正确 . 缺点是您必须在测试分段部署时单击“继续访问网站” .

    请注意,虽然URL Rewrite模块始终在Azure中可用,但对于DevFabric,您必须下载并在开发框中安装它 . 该下载可在http://www.iis.com上找到 .

  • 1

    对于这种情况,我们所做的是在Azure中创建两个不同的服务部署,两者都有他们的Production \ Staging环境 . 因此,我们在两个服务中都使用了Production实例,这使得url保持静态 .
    服务部署之间没有热交换,但是当从一个服务部署升级构建时,它将安装在第二个服务上,暂存部署,然后完成热交换 . 希望我清楚自己 .

  • 9

    我们在 生产环境 和暂存部署时保持端口80和443处于打开状态,但我们使用custom HttpModule根据Azure配置设置将HTTP流量重定向到HTTPS . 如果配置值等于"Production",则通过HTTPS强制所有流量 . 否则,将处理HTTP和HTTPS流量 . 这对我们来说非常重要,因为我们不希望我们的用户在HTTP请求被拒绝时感到困惑只是因为他们忘记使用https://为URL添加前缀 . 是否有特殊原因需要禁用HTTP endpoints ?

相关问题