2009-01-23 8 views
2

J'essaie de déterminer si un client .NET peut utiliser un certificat client sans impliquer le fichier de clés Windows de quelque manière que ce soit.Certs client sans utiliser le keystore

J'ai un extrait de code comme ceci:

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

Cependant, cela ne fonctionne que si j'ai aussi le certificat référencé dans « test.pem » installé dans mon magasin de certificats. Je suppose que c'est parce que la clé est nécessaire pour la négociation. Si je n'ai pas la clé CERT dans le magasin, le CERT n'est pas envoyé avec la demande. Ce que je veux faire est de pouvoir fournir à la fois le certificat et la clé privée d'un fichier ou de fichiers et ne pas impliquer le magasin de certificats Windows de quelque manière que ce soit.

Y at-il un moyen de le faire?

Répondre

1

Je vais poster une réponse à mon propre message, mais je le laisserai ouvert pour voir si d'autres peuvent le résoudre différemment.

Fondamentalement, je pique. Si vous avez un fichier PKCS12 (avec à la fois la clé et le certificat), vous pouvez utiliser la classe X509Certificate2 pour charger ce fichier et l'utiliser, sans interroger le fichier de clés.

Je ne pouvais pas trouver un moyen de le faire avec la clé plate PEM et les fichiers cert (comme ce dont vous auriez besoin avec Python, par exemple).

Questions connexes