【发布时间】:2019-08-16 17:11:14
【问题描述】:
使用 .NET Core 2.1、C#、Kestrel。
这将是一个奇怪的请求,但是: 我有一个需要 HTTPS 的外部 URL 和一个仅限 HTTP 的内部 URL。
我想知道如何将端口 443 上的任何流量重定向到 HTTP 到 HTTPS(保持在同一个端口,443);目前它停留在 HTTP 上并死于可怕的死亡。
(注意:端口 888 保持为 HTTP,任何流向该端口的流量都需要保持为不安全的 HTTP。)
我在 Program.cs 中这样设置:
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.UseKestrel(options =>
{
options.Listen(IPAddress.Any, 443, opts=>
{
opts.UseHttps("mycert.pfx");
});
options.Listen(IPAddress.Any, 888);
})
.Build();
在启动时,我尝试使用 Configure(IApplicationBuilder app...) app.UseHttpsRedirection();
但这导致两个端口上的所有流量都被重定向到 HTTPS,这对于 888 来说是个问题,因为它没有 SSL 证书!
有什么方法可以根据我指定的端口从 HTTP 重定向到 HTTPS? 谢谢
【问题讨论】:
标签: c# asp.net-core .net-core kestrel-http-server kestrel