【问题标题】:ASP.NET Core redirect http to https but I don't want to do it in localhost also I use a different portASP.NET Core 将 http 重定向到 https,但我不想在 localhost 中执行此操作,我也使用不同的端口
【发布时间】:2020-09-04 12:29:07
【问题描述】:

在 ,net core 2.1 中,我想从 http 重定向到 https。

services.AddHttpsRedirection(options =>
   {
    options.RedirectStatusCode = StatusCodes.Status301MovedPermanently;
    options.HttpsPort = 5001;
    });

但是在 localhost 我不使用 https,我只使用 http。我也使用不同的端口。

"MyProject": {
  "commandName": "Project",
  "launchBrowser": true,
  "applicationUrl": "http://localhost:50642",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }

除非我在 launchSettings.json 中将端口更改为 5001,否则它在 localhost 中不起作用。如何让它发挥作用?

【问题讨论】:

  • 也许这可以解决您的问题stackoverflow.com/questions/38755516/…
  • 这方面已经有重复了,但为什么不在 localhost 中也使用 HTTPS 呢?如果您不这样做,则必须等到生产才能找到有关重定向错误的信息。您可能遇到的任何证书问题都可以通过信任 ASP.NET Core 创建的开发证书或使用有效证书来解决
  • @PanagiotisKanavos,我可以在 localhost 中使用 https,但我只是不想为 loalhost 创建 ssl 认证。
  • 您使用的是 Linux 还是 Mac?有一个 OpenSSL 错误需要自签名证书的额外属性,该错误已于今年 7 月修复,显然尚未应用于所有发行版。也有指南显示如何克服这个问题
  • @你好,为什么?在 Windows 中,它开箱即用,证书由 .NE Core 本身生成,您无需执行任何操作。 部署后解决 HTTPS 问题要困难得多

标签: asp.net asp.net-core ssl redirect


【解决方案1】:

如果您不想在开发中重定向 http > https,那么在您的 Configure 方法中使用 app.UseHttpsRedirection(); 附近的 if

if (appSettings.HttpsPort.HasValue)
{
    app.UseHttpsRedirection();
}

【讨论】:

    【解决方案2】:

    只需将端口更改为

    "applicationUrl": "https://localhost:5001",
    

    当您单击 F5 进行调试时,Visual Studio 2017 会要求您自动为您安装证书。您不必手动执行此操作。

    【讨论】:

      猜你喜欢
      • 2017-06-29
      • 2017-09-05
      • 1970-01-01
      • 2020-04-21
      • 2015-09-30
      • 2012-06-19
      • 1970-01-01
      • 2018-05-08
      • 1970-01-01
      相关资源
      最近更新 更多