我用卷曲来下载图像。在win7上,它可以工作,但在XP上,它提供了一条消息:
(35) schannel: next InitializeSecurityContext failed: SEC_E_ILLEGAL_MESSAGE (0x80090326) -此错误通常发生在接收到致命的SSL/TLS警报时(例如握手失败)。更多细节可以在Windows系统中获得,甚至可以在t日志中找到。
我已经阅读了互联网上的所有可用信息,并发现它与函数中的错误有关。在实现中一定有一个错误。尽管谷歌Chrome如何访问这些资源?它使用自己的TLS函数还是使用Windows进行TLS协商?下面是一个示例:
curl -L -o "sub.jpg" "https://icdn.lenta.ru/images/2016/11/12/13/20161112133708253/pic_b3e542f41dea3569d80375712d111d6d.jpg"发布于 2016-11-12 13:19:18
Windows上的TLS堆栈非常老,不支持TLS 1.2或SNI,不支持ECDHE,对DHE的支持非常有限。给定错误消息,curl使用此堆栈(schannel)。您可能会在使用本地TLS堆栈SChannel的XP上获得与IE相同的错误。事实上,SSLLabs报告指出了XP上的IE8存在的问题。从这份报告中还可以看到哪些密码是站点支持的,如果您将其与IE8/XP提供的密码进行比较,并且可能还会发现curl/SChannel,您会发现没有重叠,即没有共享密码。
与此相反,Firefox和Chrome都不使用本地TLS堆栈,而是使用它们自己的(NSS),后者提供了现代特性。这解释了为什么这些工作与网站。
https://stackoverflow.com/questions/40562808
复制相似问题