OpenSSL и s_client — почему от клиента требуется закрытый ключ?

Мне нужно настроить двусторонний канал связи SSL между приложением .NET/WCF и сторонним веб-сервером. Прямо сейчас я пытаюсь получить успешное рукопожатие с хостом, чтобы убедиться, что все элементы настроены правильно (сертификат клиента, центр сертификации сервера, сетевая связь...). Я использую инструмент командной строки openSSL, чтобы проверить это, используя команду s_client.

Вот что меня останавливает и чего я не понимаю:

  • что бы я ни делал, openSSL ожидает найти закрытый ключ для клиентсертификат
  • сертификат клиента был предоставлен мне третьей стороной, но он не содержит закрытого ключа
  • , если я просто сгенерирую свой собственный файл закрытого ключа с помощью openSSL, я получаю ошибка несоответствия ключевых значений

Имейте в виду, что я только начал заниматься SSL, поэтому у меня есть очень базовое понимание всего протокола. Из того, что я читал, кажется, что и серверу, и клиенту нужен свой закрытый ключ в двухсторонней настройке SSL. Однако я не могу понять, как получить работающий закрытый ключ на моем клиенте (работающем с сертификатом клиента, который мне дали). Я был бы очень признателен, если бы кто-нибудь мог пролить свет на закрытые ключи клиентского сертификата, так как это вызывает у меня серьезную головную боль.

Спасибо!

27
задан Aerendel 27 June 2012 в 23:43
поделиться