【问题标题】:Error: 'ID1039: The certificate's private key could not be accessed错误:'ID1039:无法访问证书的私钥
【发布时间】:2015-04-18 03:20:16
【问题描述】:

我在 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>

【问题讨论】:

  • 您使用的是 Microsoft Azure 虚拟机吗?
  • 管理私钥仅在本地计算机商店可用,当前用户不可用?

标签: c# azure ssl


【解决方案1】:

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

  • 通过运行 mmc.exe 打开 MMC 管理单元。
  • 选择文件 -> 添加/删除管理单元。选择证书并点击“添加”。
  • 选择“计算机帐户”。单击完成。点击下一步。
  • 深入到个人 -> 证书。
  • 右键单击您的证书并选择所有任务 -> 管理私钥。
  • 添加 NETWORK SERVICE 并赋予其“读取”权限。

谢谢, 嘘

【讨论】:

  • 在我的情况下 IIS_IUSRS 是正确的帐户。网络服务不起作用。
  • 我尝试使用 NETWORK SERVICE 帐户,但它不起作用。 IIS_IUSRS 为我工作。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

    在 Windows 7 上

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

    这让我的本地网站正常工作,而我用 Google 搜索的其他方法都没有。

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-09
      • 1970-01-01
      相关资源
      最近更新 更多