Elastic Beanstalk 将 http 重定向到 https for IIS 站点



我正在使用 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

我对所有为重写规则提供代码的文档和答案感到困惑,我永远无法工作。我最终想出了如何通过 AWS Web 控制台执行此操作:

  1. 确保您为应用程序的环境使用应用程序负载均衡器。

  2. 为 https、端口 443 和您的证书添加侦听器(AWS 文档对此进行了很好的介绍(

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

  4. 点击"侦听器"标签

  5. 单击 HTTP:80 侦听器上的查看/编辑规则链接
  6. 单击 + 图标以添加新规则
  7. 添加"重定向到...",然后输入 443 作为端口。
    其余输入默认为正确的值。
  8. 添加"主机标头"条件并将值设置为主机
  9. 保存规则

这就是对我有用的 https://stackoverflow.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_NAME}{URL}" redirectType="Found" />
</rule>
</rules>
</rewrite>

最新更新