将https与Microsoft.AspNetCore.Server.WebListener

时间:2016-09-14 13:51:14

标签: c# asp.net visual-studio asp.net-core

我需要使用WebListener配置Asp.net核心Web应用程序作为服务器和https procotols。我无法找到任何关于此的文档或常见问题。

我的Progam.cs是:

var host = new WebHostBuilder()
            .UseWebListener(options => {

             })                
            .UseContentRoot(Directory.GetCurrentDirectory())               
            .UseIISIntegration()
            .UseUrls("http://localhost:5001", "https://localhost:5002")                
            .UseStartup<Startup>()                
            .Build();

        host.Run();

如何在https?

中配置WebListener

提前全部谢谢!

1 个答案:

答案 0 :(得分:2)

一种方法是使用netsh命令将SSL证书绑定到WebListener正在侦听的特定端口。有关如何执行此操作的详细信息,请参阅How to: Configure a Port with an SSL Certificate。将证书绑定到端口后,您可以为WebListener指定https URL。您可以编写代码来为您执行netsh部分(在启动WebListener之前),但这可能超出了此问题的范围。

在Kestrel中启用https要简单得多 - 您想要使用WebListener的具体原因是什么?使用Kestrel时,您可以执行以下操作(还可以使用其他几个覆盖,例如使用商店中的cert):

new WebHostBuilder().UseKestrel(options => options.UseHttps(@"C:\MyCert.pfx"));

请记住在project.json文件中包含Microsoft.AspNetCore.Server.Kestrel.Https包。

我还在StackOverflow上发现了this问题,可能有助于指出正确的方向。