Deployment Azure-在临时部署中处理SSL

Deployment Azure-在临时部署中处理SSL,deployment,ssl,https,azure,Deployment,Ssl,Https,Azure,我有一个在WindowsAzure中托管的web应用程序。我们希望在生产部署中使用SSL,并且我们有一个自定义域名和域的SSL证书,所有这些都在生产中正确设置和工作 web角色当前既有HTTP端点,也有HTTPS端点,但我们希望禁用HTTP端点,只在生产中使用HTTPS 如果我们删除HTTP端点,我的问题是:对于Azure中的登台部署,处理HTTPS端点的最佳方法是什么?每次您在Azure中进行新的登台部署时,它都会为该服务提供一个新的临时域名。在登台过程中,我们是否应该根本不使用SSL证书,跳

我有一个在WindowsAzure中托管的web应用程序。我们希望在生产部署中使用SSL,并且我们有一个自定义域名和域的SSL证书,所有这些都在生产中正确设置和工作

web角色当前既有HTTP端点,也有HTTPS端点,但我们希望禁用HTTP端点,只在生产中使用HTTPS

如果我们删除HTTP端点,我的问题是:对于Azure中的登台部署,处理HTTPS端点的最佳方法是什么?每次您在Azure中进行新的登台部署时,它都会为该服务提供一个新的临时域名。在登台过程中,我们是否应该根本不使用SSL证书,跳过所有浏览器警告,或者在每次部署域名发生更改时,是否有方法在登台过程中使用SSL?或者,当我们切换到生产环境时,是否有一种方法可以“关闭”Azure部署中的(HTTP)端点


我最初的想法是创建两个具有不同端点的包,但我不相信Azure会允许您热交换prod和staging部署(如果它们具有不同的端点配置)。

对于此场景,我们所做的是在Azure中创建两个不同的服务部署,两者都有各自的生产\暂存环境。因此,我们在这两个服务中都使用了生产实例,使url保持静态。

服务部署之间没有热交换,但当从其中一个服务部署升级生成时,它将安装在第二个服务上,并进行临时部署,然后完成热交换。希望我说得清楚。

我们在生产和登台部署时保持端口80和443打开,但我们使用a将HTTP流量重定向到基于Azure配置设置的HTTPS。如果配置值等于“Production”,则所有流量都通过HTTPS强制传输。否则,将同时处理HTTP和HTTPS通信。这对我们来说很重要,因为我们不想让我们的用户在HTTP请求被拒绝时感到困惑,因为他们忘记在URL前面加上https://。您需要禁用HTTP端点有什么特别的原因吗?

对于我们正在使用的一个项目,它默认安装在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>


.

谢谢你的回答,听起来你所做的事情和你所期望的一样好。希望微软能改进部署功能。我认为你所做的可能就是我们最终要做的,而不是做两个单独的实例。我们不一定需要禁用HTTP,而且我认为如果HTTP端点根本不存在,您对用户体验的评论是有效的。我们只是想确保所有HTTP流量都被重定向到HTTPS。另一种可能是基于域名重定向。例如,如果一个请求来自yourapp.com,执行重定向并忽略所有其他请求(yourapp.cloudapp.net、tempstagingurl等)。