HTTPWebRequest无法创建SSL/TLS安全通道

问题描述:



我想使用HttpWebRequest(控制台应用程序)调用Web API。 要上传的文件,我使用@Cristian Romanescu ONT这个问题Upload files with HTTPWebrequest (multipart/form-data)

如果我设置req.ProtocolVersion为HttpVersion.Version10提供的代码片段,我得到错误的请求时,我尝试做req.GetResponseStream ()。
HTTPWebRequest无法创建SSL/TLS安全通道

如果我将req.ProtocolVersion设置为HttpVersion.Version11,我得到无法创建SSL/TLS安全通道。当我尝试做req.GetResponseStream()。

如果试图用邮差发布的数据,但即使邮差说无法得到任何回应。”

如果我尝试使用IE-11我得到HTTP 404我知道打网址我没有张贴的实际文件],而Chrome显示自定义/相应的错误信息。

我想已经提供了计算器的解决方案,但遗憾的是他们并没有解决我的问题。

三江源。

+0

404 ??没有找到,也许是服务器iis的东西? –

+0

@LeonBarkan:Chrome显示适当的错误信息,IE显示HTTP 404 – sauraedron

+0

也许您需要从服务器获取证书以安装在客户端? –

两件事情,我是做错了。 MM:

  1. 服务器在YYYY-MM-DDTHH通缉日期SS,我是在提供YYYY-MM-DDTHH日期:MM:ss.ssss格式(DateTime.UtcNow.ToString( “O” ))。这是原因无法创建SSL/TLS安全通道

  2. 服务器也希望请求主体中的参数。我只将参数作为查询字符串传递。这是HTTP的原因404

在这个过程中,我曾经要求一个在我的团队之外的人帮忙。他让我看看是否有任何SSL相关的错误。为此,他要求我添加 System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications);并定义AcceptAllCertifications,事实并非如此。所以要解决这个问题,我不得不照顾上面提到的事情。

您尝试过哪种解决方案?这是值得尝试以下,如果您尚未 - 写以下之前,你实际调用服务:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12; 
+0

我认为SSL3不再被认为是安全的。欲了解更多信息https:// *。com/a/6584992/6190900 – Joseph

+0

感谢Joseph了解SSL3。我现在已经更新了答案。 – Nirman

+0

@Nirman:我确实已经启用了TLS,TLS12 – sauraedron

尝试从服务器创建自签名证书并将其添加到您的客户端机器。

Create self signed certificate (Server side)

Import self signed certificate (Client side)