TL; DR我想要达到一个只需要SSLv3的URI。 如果我尝试使用curl或Python请求(使用ssl模块)来访问它,它不起作用(不同的错误)。
一些更长的解释
这个API有这个URI: https : //api.mercadolibre.com/sites/MLA/search? q = ipod
如果我尝试使用浏览器访问该URI,它可以正常工作(Chrome和FF)。
如果我尝试curl它: curl -Iv https://api.mercadolibre.com/sites/MLA/search?q=ipod它不起作用。 返回的错误是:
curl: (35) Unknown SSL protocol error in connection to api.mercadolibre.com:443
强制curl使用SSLv3正常工作:
curl --sslv3 -Iv https://api.mercadolibre.com/sites/MLA/search?q=ipod
openssl s_client -connect api.mercadolibre.com:443
回答:
CONNECTED(00000003) write:errno=104 --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 0 bytes and written 305 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE ---
怎么可能浏览器连接好,curl和Python不是? 我应该如何解决这个问题? 这是甚至我的问题(或API的所有者)?
关于我的系统的信息
当问到这个问题的时候,这个网站只支持一小部分非常微弱的密码套件,并且与现代用户代理几乎没有兼容性。 因此,大多数浏览器甚至机器人都不可能谈判一个连接,更不用说一个安全的连接了。
自那以后,该网站一直(大部分)是固定的; 虽然密码套件和其他问题仍然较弱,但至less应该起作用。