通过TLS下载时,Curl在XP上显示错误

祖鲁尼

我正在使用curl下载图像。在win7上可以使用,但在XP上可以显示以下信息:

(35)schannel:下一个InitializeSecurityContext失败:SEC_E_ILLEGAL_MESSAGE(0x80090326)-当收到致命的SSL / TLS警报(例如,握手失败)时,通常会发生此错误。Windows系统甚至可能会提供更多详细信息。

我已经阅读了互联网上的所有可用信息,并发现它与Windowx XP TLS API函数中的错误有关。实现中必须有一个错误。尽管Google Chrome浏览器如何访问此资源?它使用它自己的TLS函数还是使用Windows API进行TLS协商?这是一个例子:

curl -L -o "sub.jpg" "https://icdn.lenta.ru/images/2016/11/12/13/20161112133708253/pic_b3e542f41dea3569d80375712d111d6d.jpg"
斯蒂芬·乌尔里希(Steffen Ullrich)

Windows XP上的TLS堆栈非常旧,不支持TLS 1.2或SNI,不支持ECDHE,并且对DHE的支持非常有限。给定错误消息curl会使用此堆栈(schannel)。在XP上的IE上,您可能也会遇到相同的错误,该错误也在使用本机TLS堆栈SChannel。实际上,SSLLabs报告指出了XP上IE8的问题。从该报告中,还可以看到站点支持的加密方式,如果将其与IE8 / XP提供加密方式(可能还有curl / SChannel)进行比较,则不会出现重叠,即没有共享的加密方式。

与此相反,Firefox和Chrome都不使用本机TLS堆栈,而是使用它们自己的(NSS),后者提供现代功能。这就解释了为什么这些可以与网站一起使用。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章