Elastic Beanstalk 将 http 重定向到 https 用于 iis 站点

Posted

技术标签:

【中文标题】Elastic Beanstalk 将 http 重定向到 https 用于 iis 站点【英文标题】:Elastic Beanstalk redirect http to https for iis site 【发布时间】:2020-02-08 20:30:13 【问题描述】:

我将 AWS 上的 Elastic Beanstalk 用于托管在 IIS 上的 .net 核心站点。

我不确定如何让 http 重定向到 https。接下来:

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https-httpredirect.html

我已经完成了第一步,但不确定第二步要做什么。我已经关注了 github 链接,但不知道如何处理该文件。

https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/security-configuration/https-redirect/dotnet/https-redirect-load-balanced-dotnet.config

说明不清楚。

我愿意接受其他让 http 重定向到 https 的方法的建议

【问题讨论】:

在 iis 中使用此 url 重写规则:<rule name="Rewrite HTTP to HTTPS" stopProcessing="true"><match url="^(.*)$"/> <conditions logicalGrouping="MatchAny"><add input="HTTP_X_FORWARDED_PROTO" pattern="^http$"/></conditions><action type="Redirect" url="https://HTTP_HOST/R:1"/></rule> 更多详细信息请参阅此链接:link1,link2 【参考方案1】:

我对所有提供重写规则代码的文档和答案感到困惑,我永远无法开始工作。我最终想通了如何通过 AWS Web 控制台做到这一点:

    确保您在应用程序环境中使用应用程序负载均衡器。

    为 https、端口 443 和您的证书添加一个侦听器(AWS 文档很好地涵盖了这一点)

    这是我花了几个小时才弄明白的部分:不能从 Elastic Beanstalk 的负载均衡器配置部分配置重定向。您必须转到Services -> EC2 -> Load balancers,然后选择为您的应用程序/环境创建的负载均衡器。如果您有多个负载均衡器,则很难确定哪一个是正确的。我必须参考“创建时间”时间戳才能知道选择哪一个。

    点击“监听器”标签

    单击 HTTP:80 侦听器上的查看/编辑规则链接 点击 + 图标添加新规则 添加“重定向到...”操作并为端口输入 443。其余输入默认为正确值。 添加“主机标头”条件并将值设置为您的主机 保存规则

【讨论】:

这应该是所有与 Elastic Beanstalk 上的 HTTPS 重定向相关的问题的答案!谢谢迈克! 这花了我几个小时!太感谢了。是否还需要为 www.domain.com 和 domain.com 设置主机值(无 www)?还是只是其中之一?【参考方案2】:

这对我有用 https://***.com/a/47806650/66975

<rewrite>
   <rules>
      <rule name="HTTPS Rule behind AWS Elastic Load Balancer Rule" stopProcessing="true">
         <match url="^(.*)$" ignoreCase="false" />
         <conditions>
            <add input="HTTP_X_FORWARDED_PROTO" pattern="^http$" ignoreCase="false" />
         </conditions>
         <action type="Redirect" url="https://SERVER_NAMEURL" redirectType="Found" />
      </rule>
   </rules>
</rewrite>

【讨论】:

以上是关于Elastic Beanstalk 将 http 重定向到 https 用于 iis 站点的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Beanstalk 将 http 重定向到 https 用于 iis 站点

Elastic Beanstalk 和 Spring Boot 将 HTTP 重定向到 HTTPS

使用 nginx 将 Elastic Beanstalk HTTP 请求重定向到 HTTPS

将 Http 重定向到 Elastic BeansTalk、Tomcat、Nginx 中的 Https

从 http 重定向到 https (Pencilblue Elastic Beanstalk)

为啥 Elastic Beanstalk 流量拆分部署策略忽略 HTTP 错误?