我试图从我的Red Hat(Jenkins)服务器上使用CuRL在另一台服务器(IBM Security Access Manager)上调用REST API。
事情是,从我的Windows机器,我能够使用CuRL并成功调用REST API,但不能从我的服务器(Jenkins和普通命令行)调用。 似乎握手没有完成......
两个端口之间有连接。我使用telnet命令(telnet my.full.ip.adress 443)对此进行了测试,当查看详细输出时,甚至CuRL似乎都连接了:
15:05:31.930998 * About to connect() to my.full.ip.adress port 443
15:05:31.931062 * Trying my.full.ip.adress... connected
15:05:31.931651 * Connected to my.full.ip.adress (my.full.ip.adress) port 443
15:05:31.937510 * successfully set certificate verify locations:
15:05:31.937531 * CAfile: /etc/pki/tls/certs/ca-bundle.crt
CApath: none
15:05:31.937629 * SSLv2, Client hello (1):
SSL connection timeout
15:06:31.987734 * Closing connection #0
现在运行的命令是:
-bash-3.2$ curl -k -v -H 'Content-type:application/json' -H 'Accept:application/json' --user xxx:xxx -X POST -d '{"my_key":"my_value","another_key":"another_value"}' https://my.full.ip.adress/wga/reverseproxy/
(现在还包括' - trace-time --show-error --connect-timeout 60'用于测试目的)
所以看来握手过程出错了。
我做了以下尝试:
如果你想知道:
-bash-3.2$ curl -V
curl 7.15.5 (x86_64-redhat-linux-gnu) libcurl/7.15.5 OpenSSL/0.9.8b zlib/1.2.3 libidn/0.6.5
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
握手怎么可能不成功?
答案 0 :(得分:0)
好的解决了这个问题。供其他人参考:
事实证明这是一个路由问题。目标服务器(ISAM)的路由配置错误导致回复无效到另一个(子)网络。
因此,如果您遇到同样的问题,请检查您的路由表:)