2009-08-16 145 views
1

我必须从Web应用程序建立一个XMLRPC站点的连接,该应用程序使用X.509证书进行身份验证。在我的开发机器(Vista)上,我的密钥安装在我的用户下,并位于我的个人证书存储器中;如果我跑我的代码,它工作得很好(加载该文件中的键):IIS7&X.509证书:从asp.net连接到Web服务 - 在哪里存储证书?

X509Certificate clientcert = new X509Certificate(this.certFile, this.password); 
request.ClientCertificates.Add(clientcert); 

但我需要一个Windows 2008 Web服务器上安装该应用程序,我没能找出如何使它到使用这个证书文件。

我想我需要导入所有对应的“父”键,所以我做到了。 我尝试将它们全部导入到受信任的根证书存储区,但没有运气:它仍然表示它不正常。

我应该使用一个模拟帐户,并拥有所有证书吗? IIS7应该配置为无论如何与这个用户/证书商店?

回答

0

唯一的解决办法是

1)导入根钥匙插入LOCAL_MACHINE \根证书存储

2)导入根密钥到(用户)\根证书存储

3)在asp.net代码,使用模拟像:

<identity impersonate="true" userName="(your user)" password="(your password)" />

出于某种原因,但是IIS7的所有的p正在NT_AUTHORITY \ NETWORK用户下运行程序,将证书安装到NETWORK用户的存储没有任何用处。

0

我相信有两个证书存储,IIS可以访问:机器商店和它的服务商店。在mmc.exe中,打开证书管理单元,并连接到本地计算机的商店。在Personal \ Certificates中,您应该找到服务器证书。尝试将您的证书和私钥放在它旁边。或者,连接到服务商店(万维网发布服务),然后将证书放入个人。

+0

谢谢你,我试过了 - 但没有运气还:( – balint 2009-08-17 12:19:14