1

我必须从使用 X.509 证书进行身份验证的 Web 应用程序连接到 XMLRPC 站点。在我的开发机器(Vista)上,我在我的用户下安装了密钥,它在我的个人证书存储中;如果我运行我的代码,它运行良好(从文件加载密钥):

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

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

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

我应该使用模拟帐户并拥有所有证书吗?是否应该配置 IIS7 以使用此用户/证书存储?

4

2 回答 2

0

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

于 2009-08-17T06:29:33.423 回答
0

唯一的解决办法是

1) 将根密钥导入 LOCAL_MACHINE\Root Certificates 存储

2)将根密钥导入(您的用户)\根证书存储

3) 在 asp.net 代码中,使用如下模拟:

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

出于某种原因,但是 IIS7 的所有进程都在 NT_AUTHORITY\NETWORK 用户下运行,将证书安装到 NETWORK 用户的商店没有任何用处。

于 2009-08-24T20:56:05.783 回答