CURL返回"未知的SSL协议错误"

时间:2014-09-29 18:28:00

标签: linux web-services ssl curl

我在这里看了几个类似的问题,但没有一个能帮到我。我想连接到通过RSA SecurID密钥卡使用单点登录的Web服务。我首先尝试加载初始GET请求提供的任何cookie。这是我的命令:

curl -A "Mozilla/5.0" -L -b cookies.txt -c cookies.txt -v -X GET \
  https://sso.example.com/sso/login.htm

我得到了回应:

* About to connect() to sso.example.com port 443 (#0)
*   Trying 23.12.245.199... connected
* Connected to sso.example.com (23.12.245.199) port 443 (#0)
* successfully set certificate verify locations:
*   CAfile: none
  CApath: /etc/ssl/certs/
* SSLv3, TLS handshake, Client hello (1):
* Unknown SSL protocol error in connection to sso.example.com:443
* Closing connection #0
curl: (35) Unknown SSL protocol error in connection to sso.example.com:443

以下是我正在使用的内容:

# curl --version
curl 7.19.7 (x86_64-suse-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8j zlib/1.2.7 libidn/1.10
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
#  more /etc/*-release
SUSE Linux Enterprise Server 11 (x86_64)
VERSION = 11
PATCHLEVEL = 3
# uname -r
3.0.101-0.21-default

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这是您的客户端中的OpenSSL,该问题无法理解服务器正在说什么,并且因此错误。

您有时可以通过强制curl说出SSLv3(-3),TLS1.0(-1)甚至SSLv2(-2

来解决这些问题。

...也可以想象你严重过时的curl和OpenSSL版本只是有一两个导致这个问题的bug,你可以通过升级到现代版本来解决这个问题(然后还可以解决许多安全问题你的问题)版本包含)。