通过指纹查找X.509证书

时间:2014-05-21 19:43:43

标签: asp.net .net web-services wcf x509certificate

我当前的项目涉及使用WCF访问Web服务。我在Web.config文件中配置服务身份验证所需的证书时遇到问题。具体来说,我在创建代理对象时继续收到以下消息:

使用以下搜索条件找不到X.509证书:StoreName'CertificateAuthority',StoreLocation'LocalMachine',FindType'FindByThumbprint',FindValue'df8bd67d2bbd4e337fef7403f776f40a892ade9c'。

我已搜索了几个小时,以确认我确定了正确的storeLocationstoreName,但未成功。在这个过程中,我已经了解了当你复制& amp;时,Windows的MMC控制台应用程序用于证书的不可见字符添加到指纹的开头。将其粘贴到Web.config中。我已经修好了。我还了解到,在Web.config文件中指定指纹时不包含空格。

所以我要确定正确的storeLocationstoreName有人可以提供或指出我在MMC中查看的证书位置与Web.config文件中可用选项之间的交叉步行吗?

以下是我的MMC证书控制台显示的内容: MMC Logical Store Names

以下是我在Web.config中storeLocation的选项: Web.config storeLocation options

以下是storeName的选项: Web.config storeName options

正如您所看到的,这些值并不一致,我怀疑这就是我的问题所在。

对于storeLocation,我相当肯定MMC的“当前用户”与Web.config的“CurrentUser”相匹配,并且MMC的“本地计算机”与“LocalMachine”匹配。

至于storeName,我只能猜测MMC的“个人”匹配Web.Config的“我的”。除此之外,微小的变化足以令我惊讶。到目前为止,我尝试的所有排列都没有允许WCF根据Web.config文件中的内容找到证书。

至于我的问题的细节,有一个服务器证书和一个客户端证书。服务器证书安装在本地计算机/受信任的根证书颁发机构中。客户端证书安装在本地计算机/个人中。正在Visual Studio 2008中进行开发,目标是.NET Framework 3.5版。

所以,为了重复我的问题,任何人都可以提供MMC和Web.config术语之间的人行横道,还是指向我的参考?

1 个答案:

答案 0 :(得分:1)

StoreName Enumeration的MSDN documentation似乎提供了一个相当不错的描述,应该支持enum和MMC Cert snapin之间的映射。

我尝试绘图:

AddressBook            Other People
AuthRoot               Third-Party Certification Authorities
CertificateAuthority   Intermediate Certification Authorities
Disallowed             Untrusted Certificates
My                     Personal
Root                   Trusted Root Certificate Authorities
TrustedPeople          Trusted People
TrustedPublisher       Trusted Publishers