Windows CertUtil ImportFX密钥集不存在

Windows CertUtil ImportFX密钥集不存在,windows,x509certificate,bouncycastle,certutil,Windows,X509certificate,Bouncycastle,Certutil,我有一个p12文件test.p12,它有一个证书、CA证书(自签名)和证书的私钥。p12文件是使用BouncyCastle的C#API生成的 当尝试使用“CertUtil”(即“CertUtil-f-p password-importpfx test.p12”)导入证书时,CertUtil生成以下错误: CertUtil: -importPFX command FAILED: 0x80090016 (-2146893802 NTE_BAD_KEYSET) CertUtil: Keyset doe

我有一个p12文件test.p12,它有一个证书、CA证书(自签名)和证书的私钥。p12文件是使用BouncyCastle的C#API生成的

当尝试使用“CertUtil”(即“CertUtil-f-p password-importpfx test.p12”)导入证书时,CertUtil生成以下错误:

CertUtil: -importPFX command FAILED: 0x80090016 (-2146893802 NTE_BAD_KEYSET)
CertUtil: Keyset does not exist
有什么线索可以说明可能出了什么问题吗?(我正在使用Windows 10)

使用openssl,我可以看到“test.p12”确实包含证书、CA证书和私钥。证书使用的是EC密钥对,但我怀疑这是个问题,因为我有一个引用p12文件,该文件使用相同的算法,由CertUtil导入,没有问题。不幸的是,我没有关于如何生成引用文件的详细信息

在我的谷歌搜索中,许多人似乎认为这可能是一个权限问题,但我怀疑情况是否如此,因为我以管理员身份运行CertUtil

当使用带有证书管理单元的“MMC”导入同一文件时,如果我强制MMC将其存储在特定存储中(例如个人存储),则证书“成功”导入;否则,它会提示为证书选择智能卡。这可能是一个相关的问题吗

谢谢,
--Hyong

我建议使用
导入PfxCertificate
PowerShell cmdlet导入PFX。根据您的需要,您应该将其安装到
cert:\localmacine\my
(用于设备证书)或
cert:\currentuser\my
(用于用户证书)存储。似乎我生成p12文件的方式错误,并导致CertUtil失败。具体来说,我使用BouncyCastle的PEMWriter创建的PEM文件包含EC私钥,但不包含EC参数,而openssl创建的文件包含这两个参数。我用带有私钥的openssl创建的p12 PEM可以很好地与CertUtil一起工作。。。