错误:' ID1039:无法访问证书的私钥

时间:2015-02-17 12:20:28

标签: c# azure ssl

我正在使用azure实现ADFS身份验证,但我面临以下问题:

  

类型的例外   ' System.Configuration.ConfigurationErrorsException'发生在   System.IdentityModel.Services.dll但未在用户代码中处理

其他信息:ID1024:配置属性值无效。

物业名称:serviceCertificate

  

错误:' ID1039:无法访问证书的私钥。   确保证书的私钥上的访问控制列表(ACL)   授予对应用程序池用户的访问权限。

指纹:' df113454dsf1321(此处的值我更改了值)''

当我右键单击证书然后单击所有任务时,它不显示管理私钥的选项并授予IIS用户访问权限。 我是如何解决这个问题的。 web.config文件内容:

<serviceCertificate>
        <certificateReference x509FindType="FindByThumbprint" findValue="dfdsfdfdf(here I changed the value)" storeLocation="LocalMachine" storeName="My" />
</serviceCertificate>

3 个答案:

答案 0 :(得分:9)

我遇到了同样的问题。修复方法是,允许AppPool用户(NETWORK SERVICE)读取证书私钥。

  • 通过运行mmc.exe打开MMC管理单元。
  • 选择文件 - &gt;添加/删除管理单元。选择证书,然后单击“添加”。
  • 选择“计算机帐户”。单击完成。单击“下一步”。
  • 深入了解个人 - &gt;证书。
  • 右键单击您的证书,然后选择所有任务 - &gt;管理私钥。
  • 添加网络服务并赋予其“读取”权限。

谢谢, Shivesh

答案 1 :(得分:0)

请检查特定应用程序的“应用程序池”设置。 在应用程序池高级设置中:标识应为NetworkService。

答案 2 :(得分:-1)

即使您拥有证书,也可能没有在正确的位置安装私钥。我得到了同样的错误,但添加正确的用户(IIS AppPool \ DefaultAppPool)是不够的。我也导入了.pfx:

在Windows 7上

- 打开MMC
- 添加证书管理单元以管理本地计算机
- 右键单击​​个人存储,所有任务 - >导入
- 选择.pfx文件(不是默认的.crt / .cer)
- 输入密码,完成向导

这让我的本地网站正常工作,而Google Googled没有其他工作。