在Kestrel .NET Core中加载由中间CA签名的SSL证书的正确方法



我正在使用.NET Core 2.1.1在我的Kestrel Linux服务器上设置SSL。

SSL 证书由中间 CA 签名。

PFX 包含中间和根 CA 证书。

我将 pfx 文件作为 X509Certificate2 对象加载,并将其用于服务器证书。

似乎是我设置的方式,中间 CA 不是作为握手的一部分发送的,而是只发送叶子(这很顽皮(。

return WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>()
            .UseKestrel(options =>
            {
                options.Listen(IPAddress.Any,443, listenOptions =>
                {
                    listenOptions.UseHttps("ssl.pfx", "password123");
                });
            }
            )
        .Build();

所以我执行这个命令,它只显示叶子,而不显示中间

openssl s_client -showcerts -connect myserver:443

我希望它包括中间的ca和叶子,就像人们期望的那样:

openssl s_client -showcerts -connect google.com:443

我最近遇到了这个问题,发现托管 Web 服务的服务器(在本例中为 debian(除了根证书之外,还需要对中间证书的明确信任。 如果没有这个,它只会发送主题证书,但是当我将中间人直接添加到信任中时,它开始正常工作。

相关内容

  • 没有找到相关文章

最新更新