客户端和服务器之间不支持TLS 1.0

时间:2015-08-14 20:07:25

标签: c#-4.0 ssl https

我在尝试在桌面胖客户端应用程序和服务器之间建立Https连接时遇到问题。

经过多次搜索后,我在服务器系统日志中发现了以下错误消息:“从远程客户端应用程序收到了TLS1.0连接,但客户端支持的密码套件均不支持服务器.SSL连接请求失败。“

当我输入https地址时,检查Internet Explorer是否失败并显示相同的错误消息。但是,如果我在Chrome或Firefox中输入地址,那么连接就会起作用,我会得到一个成功的json响应。在Wireshark中,我注意到IE提供的密码算法数量远远少于Firefox和Chrome。

有没有办法解决这个问题?我必须使用的应用程序是一个现有的应用程序,需要https才能与新应用程序中的新的restful服务链接。

我几天来一直在解决这个问题并且没有想法。

1 个答案:

答案 0 :(得分:0)

您的密码套件不匹配。

服务器和客户端(浏览器)将尝试就密码套件达成一致。在您的情况下,听起来好像Internet Explorer和.NET没有使用服务器支持的密码套件。

Internet Explorer和.NET Framework都使用SChannel来进行HTTPS连接。更具体地说,.NET Framework类是BCL的一部分。完全可以重新实现SSL / TLS而不使用SChannel。

在不知道客户端和服务器的实际密码套件是什么的情况下,很难说。

SChannel可由组策略配置,以调整启用的密码套件。并不是说SChannel无法完成服务器可能支持的每个密码套件。这需要应用于胖客户端运行的桌面。

或者,您可以将服务器配置为接受客户支持的密码套件。如何做到这一点取决于您的Web服务器。