Kestrel 服务器配置有多个端点,每个端点上都有不同的证书。我可以通过
在调试器中找到当前使用的证书var f = HttpContext.Features.Get<ITlsConnectionFeature>();
((Microsoft.AspNetCore.Server.Kestrel.Core.Internal.TlsConnectionFeature)f)
._sslStream.LocalCertificate;
但我对无反射方法感兴趣。
NET 8
使用新的
context.Features.Get<ISslStreamFeature>()
。
适用于 NET 8 之前的版本
在https选项中添加
ServerCertificateSelector
然后就可以context.Features.Get<SslStream>()
。请参阅https://github.com/dotnet/aspnetcore/issues/46442#issuecomment-1420150725