Как создать SSLStream, который использует Ssl3 вместо Tls
Я пытаюсь установить TCP-соединение, которое зашифровано с помощью Ssl3.
По сути, я просто создаю TCP-соединение, а затем создаю SSLStream:
var ss = new SslStream(poolItem.SecureConnection, false, remoteCertificateValidationCallback);
ss.ReadTimeout = ss.WriteTimeout = timeout;
ss.AuthenticateAsClient(host);
var pp = ss.SslProtocol;
Моя проблема в том, что по умолчанию SslStream использует TLS. Я хочу, чтобы это был Ssl3.
В HttpWebRequest вы можете использовать следующий код для изменения протокола:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
Я проверил это, и это не влияет на SslStream.
Как мне изменить протокол SslStream на Ssl3?
1 ответ
Решение
Вы просто должны использовать AuthenticateAsClient
перегрузка, позволяющая указать, какие протоколы должны быть разрешены:
AuthenticateAsClient
(host, new X509CertificateCollection(), SslProtocols.Ssl3, false);