首页 > 解决方案 > GET 请求在浏览器中工作,但在 curl 中给出错误 SSL_ERROR_SYSCALL

问题描述

当我将请求发送到https://DOMAIN:443/path时,它在我尝试过的每个网络浏览器中都能正常工作。但是当涉及到 curl(和 wget)时,我得到了一个错误。我已经重新编译了 openssl 和 curl(最新版​​本),没有改变。

curl -vv https://DOMAIN:443/path

输出

​* TCP_NODELAY set
* 连接到 DOMAIN (IPADDRESS) 端口 443 (#0) * ALPN,提供 h2
* ALPN,提供 http/1.1
* 成功设置证书验证位置:
* CAfile:/etc/ssl/certs/ca-certificates .crt
CApath: none
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to DOMAIN:443
* Closing connection 0
curl: (35) OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to域:443

卷发版

curl 7.61.0 (x86_64-pc-linux-gnu) libcurl/7.61.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.4) nghttp2/1.32.1 librtmp/2.3
Release-Date: 2018-07-11
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL

谢谢你的帮助。

标签: sslcurl

解决方案


当防火墙阻止 Curl 和 wget 连接时,我所指的错误可能会发生。这一理论得到以下事实的支持:

  • 我使用不同的操作系统、配置、IP 地址收到相同的错误,结果是相同的。
  • 基于浏览器的请求成功。
  • 使用 curl 和 wget 的替代品效果很好(我使用了 aria2kurly

所以,问题为我解决了。我希望这个答案可以帮助任何面临同样问题的人。


推荐阅读