在与 WCF 安全性进行残酷斗争之后,我认为我现在处于最后阶段并且可以看到曙光。
我已经在我的服务器上安装了一个客户端证书,现在,按照建议,在证书存储的 Trusted People 文件夹中。
但是,当我尝试读取证书申请 -> 服务时,出现此错误:
Cannot find the X.509 certificate using the following search criteria: StoreName 'My', StoreLocation 'CurrentUser', FindType 'FindBySubjectName', FindValue 'Forename Surname'.
“名字姓氏”是我证书的“颁发给”部分。在我看过的所有教程中,这只是一个词;这是问题吗?我从我的 CA 收到了我的证书,上面有这两个词,还有一个空格。
有没有人遇到过这个问题,有没有我公然做错了什么?
更新,证书可以在这里看到:
更新:
它变得更加奇怪:
我在我的网络服务器上安装了 Visual Studio,并使用以下代码通过指纹获取证书:
var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindByThumbprint, "71995159BFF803D25BFB691DEF7AF625D4EE6DFB", false);
这实际上返回了一个有效结果。但是,当我将此信息放入我的服务/客户端的 web.config 时,我仍然收到错误。
最佳答案
我认为..您在位置 Trusted People 安装证书并在商店名称 my 搜索
var store = new X509Store(StoreName.TrustedPeople, StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
var certs = store.Certificates.Find(X509FindType.FindBySubjectDistinguishedName, certificateSubject, false);
还有两个搜索词 FindBySubjectName
或 FindBySubjectDistinguishedName
,后者与关键字更相关,第一个将找到任何与搜索关键字相关的内容。
所以基本上你需要寻找主题,如果你使用上面的代码,那么你的搜索字符串将是.."CN=urs.microsoft.com, O=DO_NOT_TRUST, OU=Created by http://fiddler2.com "
关于wcf - "FindBySubjectName"找不到 X.509 证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13249041/