客户端证书不使用密钥库

时间:2009-01-23 16:14:53

标签: c# .net ssl client-certificates

我正在试图弄清楚是否有任何方法让.NET客户端使用客户端证书而不涉及任何方式的Windows密钥库。

我有一个这样的代码段:

test1.Service s = new test1.Service();
X509Certificate c = X509Certificate.CreateFromCertFile(@"C:\test.pem");
s.ClientCertificates.Add(c);
int result = s.TestMethod();

但是,只有在我的证书库中安装了“test.pem”中引用的证书时,这才有效。我认为这是因为密钥是协商所必需的。如果我在商店中没有证书/密钥,则证书不会随请求一起发送。

我想要做的是能够从一个或多个文件提供证书和私钥,而不以任何方式涉及Windows证书存储。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

我将在自己的帖子上发布一个答案,但会保持开放,看看其他人是否可以解决不同的问题。

基本上,我正在撑船。如果您有一个PKCS12文件(其中包含密钥和证书),您可以使用X509Certificate2类加载该文件并使用它,它不会询问密钥库。

我找不到使用平面PEM密钥和证书文件的方法(比如你需要Python的东西)。