指定要使用的SslProtocols时,SslStream AuthenticateAsClient仅在Windows 7上失败

时间:2018-09-08 17:08:34

标签: c# ssl sslstream

好,所以我有以下代码,该代码在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”,但绝不会全部使用,但是如果我遇到使用假设仅设置TLS1.0-> 1.3时Ssl3会导致连接失败,因此希望它能工作,我手动设置了所有SslProtocols,并且在Windows 10上工作出色(未在Windows 8或8.1上进行测试)。 / p>

发生这种情况是因为Windows 7不支持一组SslProtocol(就像TLS 1.3相对较新,对吧?)

如果是这样,如果我最终只能获得一个TLS 1.3流,那我该怎么办?


根据https://blogs.msdn.microsoft.com/kaushal/2011/10/02/support-for-ssltls-protocols-on-windows/ Windows 7支持SSL2 / 3和TLS1.0 / 1.1 / 1.2,但是在TLS1.3上没有显示任何信息,所以也许我设置TLS 1.3会导致此问题?


奇怪的是,在Windows 10上的“ TLS 1.3”的“ Internet选项”->“高级”中也没有看到任何选项...

0 个答案:

没有答案