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