Я пытаюсь создать очень простое клиентское приложение WCF, которое будет отправлять SOAP-сообщения стороннему сервису. Все сообщения должны быть подписаны цифровой подписью. Это действительно подтверждение концепции, прежде чем я добавлю код в более крупное приложение.
У меня есть файл .cer, содержащий сертификат, и файл .pem, содержащий закрытый ключ. То, что я пытался сделать, это загрузить сертификат, используя файл .cer, а затем запустить сообщение. Но я получаю следующую ошибку «Закрытый ключ отсутствует в сертификате X.509».
Проблема, одна из проблем, в том, что я действительно почти ничего не знаю о WCF, цифровых сертификатах, закрытых ключах и всей этой болтовне. Я немного читал, я гуглил, пока мне не посинело, и я никуда не попал.
Если я открою файл .cert, появится раздел с надписью «НАЧИНАЕТСЯ ЗАПИСАННЫЙ ЧАСТНЫЙ КЛЮЧ», в котором говорится, что закрытый ключ включен в сертификат. Итак, почему я получаю сообщение о том, что его нет? Кроме того, если личный ключ нужно добавить в сертификат, как мне это сделать?
Вот в основном то, что я делаю. Это не мой настоящий код, но он включает в себя все соответствующие вещи:
MyWSClient c = new MyWSClient();
c.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(@"pathToFile.cer");
c.SomeValidCall();