HttpWebRequest失败,TLS 1.2

Sim*_*ine 5 .net c# ssl tls1.2

.NET 4.6.1下的最小,可复制的工作示例,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
WebRequest.Create("https://ir.netflix.com/").GetResponse();
Run Code Online (Sandbox Code Playgroud)

产生以下WebException,

请求已中止:无法创建SSL/TLS安全通道.

只是自己访问该页面,运行openssl s_client -connect ir.netflix.com:443 -tls1_2或浏览SSL实验室分析摘要表明该服务器正在运行正确的TLS 1.2.HttpWebRequest似乎确实在某些时候适用于TLS 1.2(如此处所示),

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
WebRequest.Create("https://www.ssllabs.com:10303").GetResponse();
Run Code Online (Sandbox Code Playgroud)

使用ServerCertificateValidationCallback(请求对象的全局或本地)禁用证书验证永远不会调用回调; 我想它永远不会达到这个目的,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.ServerCertificateValidationCallback =
    (sender, cert, chain, sslPolicyErrors) => true;

HttpWebRequest request = WebRequest.Create("https://ir.netflix.com/") as HttpWebRequest;
request.ServerCertificateValidationCallback =
    (sender, cert, chain, sslPolicyErrors) => true;
request.GetResponse();
Run Code Online (Sandbox Code Playgroud)

更新:继续使用Wireshark转储建议使用常见的签名哈希算法(带有RSA的SHA256,带有RSA的SHA1)和一个通用密码套件TLS_RSA_WITH_3DES_EDE_CBC_SHA(0x000a).除了最初的两个"Client Hello"和"Server Hello,Certificate,Server Hello Done"数据包之外,不再与客户端进行任何联系.

问题:造成这种失败的原因是什么?有没有办法访问HttpWebRequest对象的更多调试信息?

(像这样禁用TLS 1.2,

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
                                     | SecurityProtocolType.Tls11;
WebRequest.Create("https://ir.netflix.com/").GetResponse();
Run Code Online (Sandbox Code Playgroud)

可行,但不是最理想的,因为它会在全局范围内禁用TLS 1.2.似乎没有一个设置只为单个HttpWebRequest禁用TLS 1.2.)