Клиент сертифицирует без использования хранилища ключей - PullRequest
2 голосов
/ 23 января 2009

Я пытаюсь выяснить, есть ли способ, чтобы клиент .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 Ответ

1 голос
/ 23 января 2009

Я собираюсь опубликовать ответ на свой пост, но оставлю его открытым, чтобы посмотреть, могут ли другие решить его по-другому.

По сути, я поношу. Если у вас есть файл PKCS12 (с ключом и сертификатом в нем), вы можете использовать класс X509Certificate2, чтобы загрузить этот файл и использовать его, и он не будет запрашивать хранилище ключей.

Я не смог найти способ сделать это с помощью плоского ключа PEM и файлов сертификатов (например, то, что вам нужно для Python).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...