红隼和自签名证书。内网桌面应用

Kestrel and self signed certificate. The desktop application in the intranet

我想在本地 WebApi 和桌面应用程序之间的 Intranet 环境中保护连接。我不能使用官方证书,我不会使用特定域名,它不会在线使用。

我使用 OpenSSL 创建了自签名证书并像这样使用它:Kestrel and self signed certificate error during startup application

Kestrel 播放效果不佳,仍然没有使用我提供的证书,而是使用默认证书。

为了缓解,您需要伪造 Kestrel 正在等待的默认证书。我不确定这是为什么?即使我将我的证书添加到本地计算机上的受信任根,Kestrel 也不会打扰并等待“特殊证书”。

你是怎么处理这样的问题的?如果我想保护连接并使用自签名证书,我有什么选择?

这是我如何 运行 kestrel 与证书“.pfx”文件的示例。

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
      .UseSerilog()
      .ConfigureWebHostDefaults(webBuilder =>
        {
          webBuilder.UseKestrel(webOptions =>
          {
            var port = 8000;
            webOptions.Listen(IPAddress.Any, port, listenOptions =>
              {
                listenOptions.UseHttps(GetCertificatePath(), GetCertificatePassword());
              });
          });
          webBuilder.UseStartup<Startup>();
        });

我已经在 github/aspnetcore 上发布了这个问题并得到了答案。 https://github.com/dotnet/aspnetcore/issues/36204#event-5293269898

问题是因为我在 appsettings.json 和 Program.cs public static IHostBuilder CreateHostBuilder(string[] args) =>... 中都有 Kestrel 设置,最后只采用了 appsettings.json 中的设置,不幸的是不包含证书详细信息。