【问题标题】:CertUtil Import pfx failed: NTE_NOT_SUPPORTEDCertUtil 导入 pfx 失败:NTE_NOT_SUPPORTED
【发布时间】:2022-03-12 06:15:55
【问题描述】:

我正在尝试在现有证书上设置 KeySpec 标志以用于 SQL 服务器加密角色。当前的 KeySpec 为 0,我需要它为 1。

执行此操作的方法是首先将证书、其私钥和密钥用法导出到 .pfx 文件中(使用密码,无论它声称什么)。然后,利用 certutil,运行 certutil -importpfx AT_KEYEXCHANGE。

这个“有效”,因为它提示输入密码(输入正确),但它失败并显示以下错误消息:

CertUtil:-importPFX 命令失败:0x80090029 (-2146893783 NTE_NOT_SUPPORTED) CertUtil:不支持请求的操作。

不幸的是,我在网上找不到太多 - 显然只有这个帖子:

https://anotherexchangeblog.wordpress.com/tag/importpfx-command-failed-0x80090029/

这似乎表明它是位于 C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys 的目录的权限问题。具体来说,那个“SYSTEM”对它有权限,他将其删除并让 certutil 工作。但是,我的该目录副本没有具有权限的 SYSTEM - 它看起来与他的图片相同。

没有更多的工作要做,这种 certutil 导入方法似乎是将 KeySpec 设置为 1 的唯一方法。从这里我可以做些什么来允许我使用正确的 KeySpec 标志导入该密钥?

【问题讨论】:

    标签: sql certificate pki certutil


    【解决方案1】:

    我在使用 Template = (No Template) CNG Key 生成我的私钥后遇到了这个问题

    要将 CNG 密钥转换回旧密钥,您可以使用 OpenSSL (https://www.google.com/search?q=Download+windows+OpenSSL) 重新编码证书

    1. 将您当前的证书导出到无密码 pem

      openssl pkcs12 -in mycert.pfx -out tmpmycert.pem -nodes

    2. 将 pem 文件转换为带有密码的新 pfx 文件:

      openssl pkcs12 -export -out mycert2.pfx -in tmpmycert.pem

    您可以通过使用 Template = (No Template) Legacy Key 生成 CSR 来避免此问题

    祝你好运!

    【讨论】:

    • 谢谢;这似乎是解决方案。在一台机器上使用 ACAS 插件发现 #35291 对其进行了测试,它似乎可以解决问题。
    【解决方案2】:

    我在微软工作。我的客户今天得到了这个,我们无法修复它。我们最终制定了新的 CSR。

    这是解释关键规范如何工作以及 CNG 与传统加密服务提供商的主要文章。

    https://docs.microsoft.com/en-us/windows-server/identity/ad-fs/technical-reference/ad-fs-and-keyspec-property

    您可以在 MMC 管理单元中获取证书。右键个人商店->所有任务->高级操作->创建自定义请求。

    在没有注册策略的情况下继续 -> 选择旧模板,-> PKCS #10 -> 下一步 -> 详细信息 -> 属性

    输入友好名称 -> 添加通用名称 -> 为您需要的任何 SAN 添加 DNS 名称 -> 在扩展密钥使用上选择服务器和客户端身份验证 -> 在私钥选项卡上 -> 选择 Microsoft 强加密提供程序 - > 对于您想要的密钥选项 2048 -> 使私钥可导出 -> 密钥类型选项卡 -> 选择交换

    这将生成一个 (CSR) 证书签名请求,然后让您的授权证书完整填写它。

    【讨论】:

      【解决方案3】:

      通过指定 -csp 参数,可以使 certutil 导入使用旧的强加密提供程序。

      certutil -csp "Microsoft Strong Cryptographic Provider" -importpfx -f -enterprise my mycert.pfx AT_KEYEXCHANGE
      

      【讨论】:

        猜你喜欢
        • 2018-10-12
        • 2014-12-23
        • 1970-01-01
        • 1970-01-01
        • 2018-10-08
        • 1970-01-01
        • 2016-04-07
        • 2018-03-17
        • 2020-03-04
        相关资源
        最近更新 更多