红帽

时间:2016-04-19 13:31:49

标签: unix ssl curl redhat handshake

我试图从我的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'用于测试目的)

防火墙日志显示以下内容: Firewall log (来源和目的地是上述服务器)

所以看来握手过程出错了。

我做了以下尝试:

  • 确认正确端口上的两台服务器之间的连接 (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

握手怎么可能不成功?

1 个答案:

答案 0 :(得分:0)

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

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

因此,如果您遇到同样的问题,请检查您的路由表:)