带有 SSL 的 Curl 在 Ubuntu 服务器上不起作用

带有 SSL 的 Curl 在 Ubuntu 服务器上不起作用

当我尝试在我的 ubuntu 12.04 TLS 服务器上 Curl SSL 页面时,它不起作用:

非 SSL 页面:

$ curl https://evernote.com/ -vv
[the entire webpage]

SSL 页面:

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

这在我自己的机器(OS X)上确实有效。

当我通过 openSSL 尝试时:

$ openssl s_client -connect evernote.com:433
connect: Connection timed out
connect:errno=110

openSSL 版本:

$ openssl version
OpenSSL 1.0.1c 10 May 2012

答案1

您好像打错了。

$ openssl s_client -connect evernote.com:433

远程主机上的端口 433 未打开,这就是您收到错误 110(连接被拒绝)的原因。

尝试使用端口 443(标准 HTTPS 端口)。


至于 curl,我可以在使用时复制该问题evernote.com,但www.evernote.com可以正常工作(尽管它向 发送了 302 重定向https://evernote.com/

$ curl https://evernote.com/ -vv
* About to connect() to evernote.com port 443 (#0)
*   Trying 204.154.94.73...
* connected
* Connected to evernote.com (204.154.94.73) port 443 (#0)
* Initializing NSS with certpath: sql:/etc/pki/nssdb
*   CAfile: /etc/pki/tls/certs/ca-bundle.crt
  CApath: none
* NSS error -5938 (PR_END_OF_FILE_ERROR)
* Encountered end of file
* Closing connection #0
curl: (35) Encountered end of file

这意味着服务器中断了连接。无论出于什么原因,它确实不想与我们对话。

这也许不是你能解决的问题。

答案2

遇到了非常类似的问题 - 协议协商存在问题,这可能导致与加密提供商(OpenSSL 库)的沟通不畅。尝试明确设置安全协议,例如:

curl --sslv3 # OR
curl --sslv2 # OR
curl --tlsv1

相关内容