我一直在玩Curl,尝试将文件的简单POST文件发送到Web服务几天,而不是在任何地方。
目标POST服务是未经身份验证的HTTPS。当尝试通过Curl或Informatica运行我的POST请求时,我得到了两种方法的SSL握手失败。
例如:
curl -X POST -F 'file=@filename.dat' https://url
我已经能够使用Postman工作了,所以我知道服务有效。根据网络安全性,在此环境中禁用SSL。我没有运气,或者有没有办法让它在没有SSL的情况下运行?
遇到特定错误: curl:(35)错误:14077410:SSL例程:SSL23_GET_SERVER_HELLO:sslv3警报握手失败
答案 0 :(得分:0)
默认情况下,建立HTTPS URL连接的客户端将检查SSL证书的有效性 - 否则,使用SSL的重点是什么?
在你的情况下,你说“假装使用HTTPS,但实际上,忽略证书”,因为它无效,或者你仍然得到一个,或者你处于开发阶段(我希望后者是真的,并且在需要时获取或创建有效的服务器证书。
但是curl
并不知道。假设您要求它与HTTPS端点建立连接 - 因此它将尝试验证证书 - 在您的情况下,可能是失败的来源。
试试curl -k -X POST -F 'file=@filename.dat' https://url
从联机帮助页:
-k, --insecure (TLS) By default, every SSL connection curl makes is verified to be secure. This option allows curl to proceed and operate even for server connections otherwise considered insecure. The server connection is verified by making sure the server's certificate contains the right name and verifies successfully using the cert store. See this online resource for further details: https://curl.haxx.se/docs/sslcerts.html See also --proxy-insecure and --cacert.