2009-01-23 101 views
2

我想知道是否有任何方法让.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

我打算发布一个答案给我自己的帖子,但会留下来看看其他人是否可以解决这个问题。

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

我无法找到一种方法来使用平坦的PEM密钥和证书文件(例如,您需要使用Python)。