gpt4 book ai didi

c# - .NET Core - RequireHttpsAttribute 在带有 Apache2 的 Ubuntu 上导致 ERR_TOO_MANY_REDIRECTS

转载 作者:太空宇宙 更新时间:2023-11-03 18:54:00 25 4
gpt4 key购买 nike

使用 .NET Core 2.0 如果我按照官方文档强制执行 HTTPS,网站将无法加载并出现错误 ERR_TOO_MANY_REDIRECTS。

重现步骤:

  1. 创建新的 .NET Razor 应用程序:dotnet new razor -o aspnetcoreapp
  2. 从此处详述的文档中添加两个代码片段: https://learn.microsoft.com/en-us/aspnet/core/security/enforcing-ssl?view=aspnetcore-2.0
  3. 部署到在 Ubuntu 17.10 上运行的 Apache2(未在旧版本上测试),其中 conf 使用此代码将连接传递到 Kestrel 服务器:

ProxyPreserveHost 打开
代理通行证/http://127.0.0.1:5001/
ProxyPassReverse/http://127.0.0.1:5001/

如果删除步骤 2 中的代码,则该网站可以在 HTTP 或 HTTPS 上正常工作(但显然不会重定向),但如果添加此代码,该网站将无法通过 HTTP 或 HTTPS 加载 ERR_TOO_MANY_REDIRECTS。.NET Core 2.1 似乎改变了方法,但尚未发布。

最佳答案

您已将直通设置为 http,而不是 https。此处的 Apache 作为反向代理运行,因此它只是将请求转发到您的直通服务器上,它始终会根据您在此处的配置通过 http 执行此操作。然后,由于 ASP.NET Core 应用被配置为需要 HTTPS,它会重定向,导致新请求到达 Apache,然后它再次通过 http 转发该请求。

总而言之,您需要传递到https,而不是http。或者,您可以从 ASP.NET Core 应用程序中删除仅限 HTTPS 的要求,而是在 Apache 中强制执行 HTTPS。

关于c# - .NET Core - RequireHttpsAttribute 在带有 Apache2 的 Ubuntu 上导致 ERR_TOO_MANY_REDIRECTS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50028531/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com