我正在尝试使用curl(https)从服务器A连接到服务器B。我已经用-k尝试了,但是不起作用。

我调查了几篇文章,发现了关于link的博客,但仍然存在问题。

从服务器A卷曲时,出现以下错误:

* Rebuilt URL to: https://x.x.x.x:8443/
* Hostname was NOT found in DNS cache
*   Trying x.x.x.x...
* Connected to x.x.x.x (x.x.x.x) port 8443 (#0)
* successfully set certificate verify locations:
*   CAfile: /tmp/cert_test/certRepo
  CApath: /etc/ssl/certs/
* SSLv3, TLS handshake, Client hello (1):
* error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
* Closing connection 0
curl: (35) error:140770FC:**SSL routines:SSL23_GET_SERVER_HELLO:**unknown protocol


我从浏览器进入服务器B(https://x.x.x.x:8443/),并下载了根证书,中间证书和客户端证书。如博客中所建议,我创建了一个新文件夹,并将所有公共证书组合到一个目录中,并尝试执行curl命令

curl -v --cacert /tmp/cert_test/certRepo https://x.x.x.x:8443


我正在获取GET_SERVER_HELLO:未知协议

有什么想法吗?

客户端计算机上的卷曲版本:

curl 7.37.0 (x86_64-suse-linux-gnu)
libcurl/7.37.0 OpenSSL/0.9.8j
zlib/1.2.7
libidn/1.10
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet
tftp
Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz


我非常确定服务器正在使用TLSv1.2。

最佳答案

您没有发布curl / libssl版本,但是我最好的猜测是您使用的是ssl / tls库的较旧版本,和/或不支持该服务器的任何ssl / tls版本的curl的较旧版本我们ysubg。更新您的libssl并卷曲,然后重试。还发布curl --version的输出。

PS,如果您使用的是Linux,则可以获得 curl + openssl编译说明。

关于ssl - 无法在HTTPS上连接curl,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57331315/

10-16 23:49