本地计算机证书 (certlm.msc) - 在导入时选择“Microsoft Software Key Storage Provider”

tb1*_*tb1 1 windows certificate

通过 CERTLM 导入设备证书/私钥时,GUI 似乎选择了一个已弃用的加密服务提供商 (CSP),称为“Microsoft Strong Cryptographic Provider”;我想知道是否有办法通过向导或组策略或(其他方式)将其更改为“Microsoft Software Key Storage Provider”。

更多详细信息:供应商要求我通过以下行命令语法将 PFX 导入 Windows 11 本地计算机证书存储:

certutil -csp "Microsoft Software Key Storage Provider" -importpfx MyPathToCertificate.pfx NoExport

这与他们的软件配合得很好,但是当我之前尝试导入相同的 PFX 时,我使用 CERTLM (GUI) 将证书导入到同一位置(本地计算机/个人存储)。这在当时似乎有效(证书出现在那里),但导致了解密错误,如供应商日志中所示。

以下是我通过 CERTLM 导入的方式:

  1. 我通过 UAC / 选择证书启动命令提示符(本地计算机)
  2. 我使用默认选项将 PFX 导入到个人商店

运行以下命令后: Certutil -store My

我注意到证书有以下行: Provider = Microsoft Strong Cryptographic Provider

而 certutil 命令明确选择“Microsoft Software Key Storage Provider”

根据https://www.pkisolutions.com/understanding-microsoft-crypto-providers/,“Microsoft Strong Cryptographic Provider”是一个已弃用的旧提供程序,而“Microsoft Software Key Storage Provider”是使用新密钥的现代首选。

不同的 CSP 解释了为什么供应商的应用程序在原始导入后无法工作,我理解为什么 MS 会选择“旧”提供程序作为向后兼容性的默认提供程序,但我很好奇是否有方法在执行时指定 CSP今后将通过 CERTLM 进行导入。

Cry*_*t32 5

对您问题的简短回答:不,您无法在 MMC GUI 中导入期间指定提供程序,您必须使用 certutil。

证书 MMC(certmgr.msccertlm.msc)尝试将密钥导入到 PKCS#12 文件中指定的同一提供程序作为属性(Windows 计算机在证书导出到 PFX 期间设置此属性,并且导入逻辑遵循此属性)。如果提供商未指定或不可用,密钥将导入到旧版 CSP 中。原因是,2023 年有许多应用程序不支持 CNG 提供商,而 CERTLM 使用最兼容的提供商。

如果你想使用不同的提供者,你必须使用certutil -importPFXwith-csp参数。