2016-04-19 114 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)具有錯誤的路由配置,導致回覆無效到另一個(子)網絡。

所以,如果你有同樣的問題,檢查你的路由表:)