C# kestrel https 在 windows 上工作,但不在 mac 上工作

C# kestrel https working on windows but not on mac

我有以下代码:

var host = new WebHostBuilder()
   .UseKestrel()
   .UseUrls("https://*:" + port)
   .Configure(Configure)
   .Build();

在 windows 上运行得非常好 - 我可以使用 https://127.0.0.1:1111 访问它并且运行良好。当我在 mac 上尝试它时 - 它会运行,但是当我尝试连接到它时,它会立即变为“连接已关闭”

我谷歌了一下,发现在usekestrel中,你应该可以添加

   .UseKestrel( options => options.UseHttps...

记录在案 here:

然而,当我尝试它时,我只发现 .UseSystemd 作为一个选项 - 没有 .useHttps - 即使我正在引用 Microsoft.AspNetCore.Server.Kestrel.Https.

我做错了什么?为什么它在 mac 和 windows 上的表现不同,我该如何修复它以便它也适用于 mac?

所以对于 运行 遇到过这个的任何人 - 我发现我猜到了一个答案: 你需要在终端中 运行:

dotnet dev-certs https

然后要求你运行一个非常奇怪的命令:

sudo security set-key-partition-list -D localhost ...

它神奇地修复了问题。