我正在使用 .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 和 leaf:
openssl s_client -showcerts -connect google.com:443
最佳答案
我最近遇到了这个问题,发现托管 Web 服务的服务器(在本例中为 debian)除了根证书之外还需要对中间证书的明确信任。如果没有这个,它只会发送主题证书,但是当我将中间证书直接添加到信任时,它开始正常工作。
关于c# - 在 Kestrel .NET Core 中加载由中间 CA 签名的 SSL 证书的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56463889/