2016-04-19 79 views
0

我试图从我的Red Hat(Jenkins)服务器上使用CuRL在另一台服务器(IBM Security Access Manager)上调用REST API。Red Hat上的CuRL SSL握手问题

问题是,从我的Windows机器上,我能够使用CuRL并成功调用REST API,但不是从我的服务器(Jenkins和普通命令行)调用。 似乎握手没有完成...

两个在正确的端口之间有一个连接。我用telnet命令(远程登录my.full.ip.adress 443)测试了,甚至卷曲似乎在详细的输出看时连接:

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 

现在正在运行的命令IM是:

-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时间--show误差--connect超时60”用于测试目的)

防火墙日志显示如下: Firewall log (源和目的地是上述上述服务vers)

因此看起来握手过程出错的地方。

我做过尝试了以下:

    正确的端口上 在两个服务器之间
  • 确认连接(SSL/443)
  • 使用-1,-2,-3参数以迫使其它SSL版本
  • 通过从我的Windows机器运行它来验证命令。

如果你想知道:

-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

好的解决了这个问题。为其他人参考:

事实证明,这是一个路由问题。目标服务器(ISAM)具有错误的路由配置,导致回复无效到另一个(子)网络。

所以,如果你有同样的问题,检查你的路由表:)