代码之家  ›  专栏  ›  技术社区  ›  balint

iis7&x.509证书:从ASP.NET连接到Web服务-在哪里存储证书?

  •  1
  • balint  · 技术社区  · 15 年前

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

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

    但我需要在Windows2008 Web服务器上安装此应用程序,但我未能找到如何使其使用此证书文件。

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

    我应该使用一个模拟帐户,并拥有所有证书吗? iis7是否应配置为如何使用此用户/证书存储?

    2 回复  |  直到 14 年前
        1
  •  0
  •   Martin v. Löwis    15 年前

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

        2
  •  0
  •   balint    15 年前

    唯一的解决办法是

    1)将根密钥导入本地\u计算机\根证书存储

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

    3)在ASP.NET代码中,使用如下模拟:

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

    但是,由于某种原因,iis7的所有进程都是在NT U授权\网络用户下运行的,将证书安装到网络用户的存储中毫无用处。