Question

J'essaie de déterminer s'il est possible qu'un client .NET utilise un certificat client sans impliquer le magasin de clés Windows.

J'ai un extrait de code comme celui-ci:

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

Toutefois, cela ne fonctionne que si le certificat est également 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 le certificat / clé dans le magasin, le certificat n'est pas envoyé avec la demande.

Ce que je veux faire, c'est pouvoir fournir à la fois le certificat et la clé privée à partir d'un fichier ou de fichiers et ne pas impliquer le magasin de certificats Windows de quelque manière que ce soit.

Y a-t-il un moyen de le faire?

Était-ce utile?

La solution

Je vais poster une réponse à mon propre message, mais je vais le laisser ouverte pour voir si les autres peuvent le résoudre différemment.

En gros, je pagaie. Si vous avez un fichier PKCS12 (contenant à la fois la clé et le cert), vous pouvez utiliser la classe X509Certificate2 pour charger ce fichier et l'utiliser, sans interroger le magasin de clés.

Je ne pouvais pas trouver un moyen de faire cela avec des fichiers de clés PEM et de certificats (comme ce dont vous auriez besoin avec Python, par exemple).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top