【发布时间】:2011-12-01 03:54:20
【问题描述】:
我有一个.p12 文件供我的 ASP.NET 应用程序通过 HTTPS 连接到 Web 服务。
我正在尝试将.p12 文件导入本地机器/我的商店。 .p12 文件包含多个证书。一个包含私钥,另一个是完成链的 CA 证书。
目前我正在使用 `System.Security.Cryptography.X509Certificates.X509Certificate2 对象的 Import 方法将此文件导入商店。今天我注意到 CA 证书没有被导入,只有包含私钥的主证书使用这种方法被导入。在进一步查看 MSDN 后,我发现有关 Import 方法的以下规则:
请注意,PFX/PKCS12 证书可以包含多个证书。在这种情况下,使用与私钥关联的第一个证书,或者,如果没有找到私钥,则使用第一个证书。
谁能向我建议另一种以编程方式导入.p12 文件的方法,该方法实际上会导入文件中的所有证书?我正在使用 PowerShell 来执行此功能。
【问题讨论】:
-
您能更准确地了解您想要做什么。您的 .P12 文件包含一个公钥、一个私钥和一个 CA 链。是否要安装 CA 公钥?
-
我想安装 .p12 文件中包含的所有证书,包括公钥、私钥和 CA 公钥。一些额外的研究使我相信,由于我在 PowerShell 中执行此操作,因此我应该使用带有 -importpfx 标志的 certutil 命令。
-
据了解,CA 公钥不是 .P12 经典导入的一部分。当您在 Windows 上双击 P12 文件时,它不会在根 CA 证书存储中导入 CA 公钥。
-
我同意,CA 公钥不是 .P12 文件的经典导入的一部分,当您双击 p12 文件时,您是对的 Windows 不会导入 CA 公钥。但是,如果您使用 MMC 导入文件而不是双击它,它会导入 CA 公钥和其他证书。
-
我还打算用
-importPFX标志来建议CERTUTIL.EXE...但我看到你已经提到了。
标签: c# wcf powershell x509certificate2