[英]Cant access certificates in X509Store from asp.net core 2.1 with thumbprints
从 IIS 访问 X509Store 时遇到奇怪的问题。 我无法查找它们。
如果我从 powershell 访问 rp cert 和 ca cert 都在那里,
dir cert: -Recurse | Where-Object { $_.Thumbprint -like " thumprintstring " }
我已经检查过指纹在指纹的开头没有隐藏的字符
我已设置证书在安装时可导出
我暂时将它设置为每个人都可以访问(它是测试服务器的证书)在证书存储中
这是我使用的代码
StoreLocation location = certificateConfig.UseCurrentUserStoreLocation ? StoreLocation.CurrentUser : StoreLocation.LocalMachine;
using (var clientCertStore = new X509Store(StoreName.My, location))
{
clientCertStore.Open(OpenFlags.ReadOnly);
//Search for the client cert
X509Certificate2 rpCert = GetCertByThumbprint(clientCertStore, certificateConfig.RpCertThumbprint);
if (rpCert == null)
{
throw new InvalidOperationException("No rp cert found for specified thumbprint #" + certificateConfig.RpCertThumbprint +"# "+location);
}
ClientCertificates.Add(rpCert);
}
<snip>
private X509Certificate2 GetCertByThumbprint(X509Store certStore, string thumbprint)
{
var certs = certStore.Certificates.Find(X509FindType.FindByThumbprint, thumbprint, false);
return certs.Count > 0 ? certs[0] : null;
}
无论我尝试什么,rpcert 始终为空。
我是否需要另一种方式从 IIS 打开商店?
有什么想法或建议吗? 我错过了什么?
问题出乎我的意料。 配置从已删除的环境变量中读取,因此它们没有显示在环境变量中并且服务器没有重新启动。 而被删除的很可能是指纹前面的坏字符。 重新启动 iis 不能解决这个问题,因为网络服务帐户在已经登录时不会重新读取这些。
追问:是否可以在不重启服务器的情况下重新登录网络服务帐户?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.