获取当前请求使用的服务器证书

问题描述 投票:0回答:1

Kestrel 服务器配置有多个端点,每个端点上都有不同的证书。我可以通过

在调试器中找到当前使用的证书
var f = HttpContext.Features.Get<ITlsConnectionFeature>();
((Microsoft.AspNetCore.Server.Kestrel.Core.Internal.TlsConnectionFeature)f)
   ._sslStream.LocalCertificate;

但我对无反射方法感兴趣。

c# .net asp.net-core kestrel-http-server
1个回答
0
投票

NET 8
使用新的

context.Features.Get<ISslStreamFeature>()

适用于 NET 8 之前的版本
在https选项中添加

ServerCertificateSelector
然后就可以
context.Features.Get<SslStream>()
。请参阅https://github.com/dotnet/aspnetcore/issues/46442#issuecomment-1420150725

© www.soinside.com 2019 - 2024. All rights reserved.