导入包含在.p12文件中的所有证书

4
我有一个.p12文件,用于我的ASP.NET应用程序通过HTTPS连接到Web服务。我试图将.p12文件导入到本地机器/我的存储库中。该.p12文件包含多个证书。其中一个包含私钥,另一个是CA证书以完成链路。目前,我正在使用System.Security.Cryptography.X509Certificates.X509Certificate2对象的导入方法将此文件导入存储库。今天我注意到,CA证书没有被导入,只有包含私钥的主要证书才会被导入。在进一步审查MSDN后,我发现了关于导入方法的以下规则:
请注意,PFX/PKCS12证书可以包含多个证书。在这种情况下,将使用与私钥相关联的第一个证书;如果未找到私钥,则使用第一个证书。
有人能向我建议另一种以编程方式导入.p12文件的方法吗? 我正在使用PowerShell执行此功能。

你能否更准确地表达你想做什么?你的.P12文件包含公钥、私钥和CA链。你想安装CA公钥吗? - JPBlanc
我想安装包含公钥、私钥和CA公钥在内的.p12文件中的所有证书。进一步的研究让我相信,由于我是在PowerShell中执行此操作,所以应该使用带有-importpfx标志的certutil命令。 - Tyler
据我所知,CA公钥不是.P12文件的经典导入部分。当您在Windows上双击P12文件时,它不会将CA公钥导入根CA证书存储中。 - JPBlanc
我同意,CA公钥不是.P12文件经典导入的一部分。当您双击p12文件时,Windows不会导入CA公钥,这一点您是正确的。但是,如果您使用MMC导入文件而不是双击它,则会将CA公钥与其他证书一起导入。 - Tyler
我也想建议使用带有“-importPFX”标志的CERTUTIL.EXE,但我看到你已经提到了它。 - ewall
1个回答

4

使用X509Certificate2Collection.Import方法代替X509Certificate2.Import方法。这将使您可以从.p12文件获取所有证书。

然后,您可以将每个证书添加到其相应的存储区中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接