我当前的项目涉及使用WCF访问Web服务。我在Web.config文件中配置服务身份验证所需的证书时遇到问题。具体来说,我在创建代理对象时继续收到以下消息:
使用以下搜索条件找不到X.509证书:StoreName'CertificateAuthority',StoreLocation'LocalMachine',FindType'FindByThumbprint',FindValue'df8bd67d2bbd4e337fef7403f776f40a892ade9c'。
我已搜索了几个小时,以确认我确定了正确的storeLocation
和storeName
,但未成功。在这个过程中,我已经了解了当你复制& amp;时,Windows的MMC控制台应用程序用于证书的不可见字符添加到指纹的开头。将其粘贴到Web.config中。我已经修好了。我还了解到,在Web.config文件中指定指纹时不包含空格。
所以我要确定正确的storeLocation
和storeName
。 有人可以提供或指出我在MMC中查看的证书位置与Web.config文件中可用选项之间的交叉步行吗?
以下是我的MMC证书控制台显示的内容:
以下是我在Web.config中storeLocation
的选项:
以下是storeName
的选项:
正如您所看到的,这些值并不一致,我怀疑这就是我的问题所在。
对于storeLocation
,我相当肯定MMC的“当前用户”与Web.config的“CurrentUser”相匹配,并且MMC的“本地计算机”与“LocalMachine”匹配。
至于storeName
,我只能猜测MMC的“个人”匹配Web.Config的“我的”。除此之外,微小的变化足以令我惊讶。到目前为止,我尝试的所有排列都没有允许WCF根据Web.config文件中的内容找到证书。
至于我的问题的细节,有一个服务器证书和一个客户端证书。服务器证书安装在本地计算机/受信任的根证书颁发机构中。客户端证书安装在本地计算机/个人中。正在Visual Studio 2008中进行开发,目标是.NET Framework 3.5版。
所以,为了重复我的问题,任何人都可以提供MMC和Web.config术语之间的人行横道,还是指向我的参考?
答案 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