Двусторонняя аутентификация для связи SSL - PullRequest
4 голосов
/ 21 апреля 2011

Я пытаюсь отправить информацию (в виде файла MIME) на сторонний хост-сервер, который использует двухстороннюю аутентификацию.После долгих разговоров я получил достаточно информации от их сотрудников службы технической поддержки, чтобы понять, что это, скорее всего, тип связи TLS / SSL.Они используют клиентские и серверные рукопожатия.Я нашел следующий пример: sslstream пример .Но у меня возникают проблемы с его использованием (TcpClient отказывается видеть адрес хоста).

Прежде чем я зайду слишком далеко, я надеялся, что кто-нибудь может указать мне некоторые хорошие примеры или дополнительную информацию об этом процессе.Я чувствую себя довольно потерянным.

1 Ответ

3 голосов
/ 21 апреля 2011

Двусторонняя аутентификация, вероятно, означает, что им требуется сертификат клиента. Это означает, что во время рукопожатия клиентская сторона также должна представить сертификат серверу. Наиболее распространенным поведением SSL является то, что только серверная часть представляет сертификат, например, когда вы переходите на обычный сайт, использующий HTTPS.

Что касается SslStream, он довольно прост в использовании. Чтобы иметь возможность представить сертификат клиента, вам необходимо иметь сертификат в хранилище сертификатов или файл pfx, который вы можете загрузить в память во время выполнения.

Я нашел этот образец , который кажется достаточно хорошим. Вот еще один . Второй не использует клиентские сертификаты, но вы можете добавить их в качестве параметра к вызову AuthenticateAsClient.

Если TcpClient отказывается видеть адрес хоста, то это, скорее всего, какая-то проблема с подключением, не связанная с фактической реализацией SSL.

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