Hendrik Vis Ответов: 1

Как подключиться к серверу openssl с помощью оболочки openssl C#


Мне дали сертификат, ключ и файл цепочки (.crt, .key и .pem), который я должен использовать для подключения к серверу. Я пробовал использовать openssl для создания файла. pfx и использовал его с TcpClient / SslStream / authenticate в качестве клиента. Это не сработало. Теперь я понимаю, что если сервер использует openssl, то и клиент должен (или мучительно учиться тому, как openssl делает свое дело, и писать много кода). Я включил доступную оболочку openssl C# в проект, но понятия не имею, как подключиться к серверу с ее помощью. Работает командная строка openssl...
openssl s_client-key provided.key-cert provided.crt-CAfile providedChain.pem-connect 127.0.0.1:12345
Это утверждение работает, но как я могу использовать оболочку, чтобы сделать то же самое в C#?

Что я уже пробовал:

Я попробовал стандартный TcpClient и в обратном вызове соединения создал SslStream и попытался аутентифицироваться как клиент. Вызов принимает сертификат, но, насколько я понимаю, это один файл, который содержит информацию о сертификате, а также ключ. Я использовал openssl, чтобы объединить их, но это не сработало. Сервер выгоняет меня, потому что начальное рукопожатие не работает (не переходите к части аутентификации).

1 Ответов

Рейтинг:
0

Graeme_Grant

Поиск в Google - ваш лучший друг.

Я сделал быстрый поиск с помощью: c# ssl - поиск в Google[^] который затем имел следующее предложение в нижней части страницы: пример ssl-клиента c# - поиск в Google[^] который затем имел это в качестве первого результата: Класс SslStream (System. Net. Security) - MSDN[^] который имеет рабочий пример.

Если вам нужны другие примеры, то в приведенных выше двух поисках есть тонны полезного материала для вас.


Hendrik Vis

К сожалению, этот пример не содержит генерации сертификата клиента для применения при вызове Authenticate As Client. Моя проблема заключается в том, что у меня есть файл сертификата клиента (.crt), файл закрытого ключа (.key) и файл цепочки (.pem), но я не могу сгенерировать из них X509Certificate для предоставления моего сервера. Закрытый ключ - AES 256 CBC, если это поможет.