【发布时间】:2015-07-19 02:41:14
【问题描述】:
我正在尝试获取这个需要服务器端证书和私钥的外部 REST Web 服务(我从发布者那里获得了该服务的 *.pem 文件)。
为了我的测试,我在谷歌上搜索并找到了一种将这两个部分组合成一个 *.pfx 文件的方法 - 并从磁盘上的二进制文件加载一个 X509Certificate2 实例就可以了。
现在我正试图将它放入我的生产 Windows Server 2008 上的 Cert Store。
我可以从我的 C# 代码中的证书存储区获取 X509Certificate2 - 没问题:
X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadOnly);
X509Certificate2Collection certs = store.Certificates.Find(X509FindType.FindBySerialNumber, "serial-number-here", false);
if (certs.Count > 0)
{
X509Certificate2 cert = certs[0];
// set the certificate on the RestClient to call my REST service
_restClient.ClientCertificates.Add(cert);
}
store.Close();
但是当我这样做时,Web 服务会向我吐槽,声称它需要“SSL 证书”......
另外:当我从磁盘加载X509Certificate2 时,从那个*.pfx 文件中,我必须提供密码 - 从证书存储加载时,这里不需要提供任何内容......奇怪...... ..
似乎即使我导入了包含服务器端证书和我们的私钥的*.pfx,但不知何故我无法从证书存储中取回两者...
知道如何让它工作吗?我是否需要在第二步中从证书存储中加载私钥?如何?
这些证书对我来说仍然主要是一个像巫毒一样的大谜.....谁能启发我?
【问题讨论】:
标签: certificate x509certificate certificate-store