SslStream AuthenticateAsClient Ошибка только в Windows 7 при указании SslProtocols для использования - PullRequest
0 голосов
/ 08 сентября 2018

Хорошо, поэтому у меня есть следующий код, который отлично работает на Windows 10 (возможно, 8 и 8.1 тоже), но он никогда не работает на Windows 7 (W7 и / или W7 + ServicePack1).

sslStream.AuthenticateAsClient(url.Host, new X509CertificateCollection(), SslProtocols.Ssl2 | SslProtocols.Ssl3 | SslProtocols.Tls | SslProtocols.Tls11 | SslProtocols.Tls12, false);

Тем не менее, следующий код работает на Windows 7

sslStream.AuthenticateAsClient(url.Host, null, false);

По сути, делает то же самое без указания SslProtocol. Причина, по которой я его вообще указываю, заключается в том, что он будет аутентифицировать любой возможный тип потока SSL / TLS, с которым я могу столкнуться.

Не цитируйте меня, но я уверен, что по умолчанию он использует либо "SslProtocols.Ssl2 | SslProtocols.Ssl3", либо "SslProtocols.Tls .. 1-> 1.3", но не все, но если бы я столкнулся с потоком, который использовал скажем, Ssl3, когда был установлен только TLS1.0-> 1.3, в итоге я не смог установить соединение, поэтому, надеясь, что это сработает, я установил все SslProtocols вручную, и это работало великолепно в Windows 10 (не тестировалось в Windows 8 или 8.1).

Это происходит из-за того, что Windows 7 не поддерживает набор SslProtocol (как TLS 1.3, который является относительно новым, верно?)

Если это так, как я должен обрабатывать поток TLS 1.3, если я когда-нибудь получу его?


Согласно https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/ SSL2 / 3 и TLS1.0 / 1.1 / 1.2 поддерживаются в Windows 7, но они не показывают никакой информации о TLS1.3, так что, возможно, установка TLS 1.3 вызвала эту проблему?


Странно, я не вижу никаких опций в "Свойствах обозревателя" -> Дополнительно для TLS1.3 в Windows 10, либо ...

...