【发布时间】:2012-02-26 19:28:38
【问题描述】:
我正在尝试以编程方式将 X509 证书 (pfx / PKCS#12) 导入本地计算机的证书存储区。这个特定的证书有一个证书链,证书路径看起来像这样:
- 根证书 CA
- 组织证书CA
- 组织 2 证书 CA
- 我的证书
- 组织 2 证书 CA
- 组织证书CA
我使用的代码如下所示:
cert = new X509Certificate2(pathToCert, password);
if (cert != null)
{
var store = new X509Store(StoreName.My, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
if (!store.Certificates.Contains(cert))
{
store.Add(cert);
}
}
此代码确实导入了证书,但它似乎忽略了链。如果我在商店里查看证书,证书路径只显示:
- 我的证书
但是,当我手动导入 pfx 时,它确实显示了完整路径。 我是在这里跳过一步,还是缺少一些参数?有人可以对此有所了解吗?
【问题讨论】:
-
A PFX 通常与 PKCS#12 混淆,在您的情况下,您只需要一个证书链,您可以轻松地使用 PEM 文件进行操作。但是..你有自己的私钥文件吗?在这种情况下,您确实需要 PKCS#12
-
@IanNorton:它实际上是一个 PKCS#12 证书。这不像我有任何选择。
-
在这种情况下,您想读取this about pkcs#12 您有一个包含 x509 对象的 p12 文件。
-
有没有办法将该存储用作存储来验证 SOAP 调用上的证书??
标签: c# pfx x509certificate2 pkcs#12