一.介绍

这个问题还是挺少见的,因为触发的条件是.Net编写的程序访问的HTTPS网站开启了TLS1.2 Only,这就禁止了客户端和服务端协商后降级的情况,因而最终导致了无法访问。

二.进一步分析

列举一下条件

1. 程序使用.Net语言开发
2. 目标.Net框架版本为4.0以下
3. 目标客户端未安装微软的可选补丁
4. 使用 HttpClient 或者 WebClient 来访问接口(网站)
5. 接口使用HTTPS且强制TLS1.2

在如上情况下,会无法访问接口

微软官方补丁如下
* KB3154518 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win7 SP1/Win 2008 R2 SP1
* KB3154519 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8 RTM/Win 2012 RTM
* KB3154520 – Reliability Rollup HR-1605 – NDP 2.0 SP2 – Win8.1RTM/Win 2012 R2 RTM
* KB3156421 -1605 HotFix Rollup through Windows Update for Windows 10. 阅读全文→