Мне дали серверное приложение, которое прослушивает клиентское соединение. Следующая команда openssl подключается ...
openssl s_client -key provided.key -cert provided.crt -CAfile provided.pem -connect 127.0.0.1:59123
У меня есть приложение C #, которое создает TcpClient и пытается аутентифицировать SslStream. BeginAuthenticateAsClient требует сертификата. Очевидно, что предоставленный файл .crt недостаточно хорош, поскольку должен быть задействован предоставленный .key. Я попытался использовать openssl для создания файла .pfx из файлов .crt и .key, но это не сработало (файл создан, но сервер закрыл соединение). Это не может быть слишком сложно имитировать команду open ssl в .net, но я не нашел в сети ничего, что работало бы или хотя бы приближалось к тому, что я пытаюсь сделать. Кто-нибудь знает, как это сделать, или я должен использовать другой подход? P.S. Стороннее программное обеспечение на самом деле не вариант.
RemoteCertificateValidationCallback
, чтобы он всегда возвращал истину. Очевидно, это не правильный способ для производства, но поможет в целях тестирования. Я опубликую свое решение ниже, возможно, это не решение вашей проблемы, но, надеюсь, это поможет. - person M0rty   schedule 12.09.2017