起因:去年用C#写了一个上传文件的工具,上传接口是后端提供。此接口一直使用正常,最近使用此工具的时候,突然在调用HttpWebRequest.GetRequestStream 时报The request was aborted: Could not create SSL/TLS secure channel.
网上一顿搜索,发现大多数提示设置ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;可以解决此问题。本人尝试了下,加了此代码,在win10下果然解决。可是到win7问题依旧。我又尝试了提升net版本到4.6,在win10,不用加上面的代码就直接成功,但是win7依然会报此错误,我把SecurityProtocolType枚举的4个类型都增加到代码里面,依然如此。通过charles抓包发现了问题。win7 下面如图。 正常访问的抓包如图。 发现我的client没有提供TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256这加密套件。打开gpedit.msc->管理组件-->网络-->ssl配置,查看里面提供的,里面并没有这个套件,在windows官网查了下,win7并不支持这个套件,要win8.1才开始支持。但是我用chrome浏览直接访问我接口的域名,抓包显示chrome却提供了此套件。不知道各位有没有遇到过此问题,对此有何看法,难道是chrome自己写了这个套件?或者有第3方库提供这个套件使用?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
NightGuard 我和你碰到一样的问题了,折腾了很久,最后还是换系统了。。 你换个windows 10或者 windows server 2016肯定就可以了
supperlitt 感觉跟这个没有太大关系吧,这个只是和服务器协商的一种加密方式,你没告诉服务器,服务器用其他方式就是了呀。
给个参考网址呢。测试网址。
supperlitt 给个参考网址呢。测试网址。
NightGuard 我感觉是服务器端安全级别太高,强制使用较高版本的tls导致的 坐等楼主找到解决方案,还有一台win7机器还没重装,因为装的软件太多了。。
我们使用nginx做代理如下配置,可以访问成功了