您需要将 Asp.net Core 服务切换到 https 协议。我在 Startup 中写了以下内容:
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpsRedirection(options =>
{
options.RedirectStatusCode = StatusCodes.Status307TemporaryRedirect;
options.HttpsPort = 58580;
});
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseHttpsRedirection();
}
程序有:
public static IWebHostBuilder CreateWebHostBuilder(string[] args)
=>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseUrls("http://localhost:58580/", "http://10.5.10.20:58580", "http://v00iurt:58580")
.UseKestrel(options =>
{
options.Listen(IPAddress.Parse("10.5.10.20"), 58580);
options.Limits.MaxRequestBodySize = null;
})
告诉我,谁有经验?
首先您需要了解:这是一个生产应用程序还是只是玩玩,因为 kestrel 供应商通常不建议在生产环境中安装 ( 1 , 2 ):
你可以安装IIS,你可以在nginx后面安装你的kestrel,通过http在nginx和kestrel之间进行交换,nginx会提供Https客户端...
但这就是通常为这种特定环境配置 Program.cs 的方式……通常它都在 Startup.cs 中,而且你可能需要 AddCors,因为你有一个 api。总的来说,我们在工作室查看了典型的解决方案示例,那里有现成的示例。
另请查看供应商网站上部署 asp.net 核心应用程序的选项:
HTTPS 为每个端点单独配置:
并且 Https Redirection 仅在您同时拥有两个端点(HTTP 和 HTTPS)并且您希望将用户从第一个重定向到第二个时才需要配置。