【问题标题】:curl error 35 : failed to receive handshake, SSL/TLS connection failedcurl 错误 35:接收握手失败,SSL/TLS 连接失败
【发布时间】:2021-02-02 04:41:09
【问题描述】:

当我尝试执行这个 curl 命令时:

curl -v --key some_key_file.key --cert certificate_file.pem --show-error --header "Content-Type: application/json;charset=UTF-8" https://some-api/service

我收到以下错误:curl: (35) schannel: failed to receive handshake, SSL/TLS connection failed

以及完整的执行日志:

我在网上搜索了这个错误,但没有找到任何人解释它的真正含义。

  • 您知道源头可能是什么吗?
  • 您知道是否有办法获取有关错误的更多信息?

【问题讨论】:

  • 请不要将文字作为图片发布。至于您的问题:仅根据此输出很难判断,但服务器可能未正确配置为在此端口上支持 HTTPS。但也可能是某些 DPI 防火墙阻止了流量。您是否尝试过使用完全相同系统中的另一个客户端(例如浏览器)并且成功了?
  • @Steffen 我尝试将 URL 放在 Chrome 上,但显然连接被拒绝,因为我无法提供我的特定证书。
  • Chrome 可以使用导入客户端证书,即您应该能够导入它进行测试。

标签: ssl curl certificate schannel


【解决方案1】:

原来问题出在我的 curl 版本上,由于某种原因,它不接受参数 --cert 和 --key。

为了解决这个问题,我安装了一个全新的 curl 版本并从安装文件夹中运行它并且它工作了。

【讨论】:

    【解决方案2】:

    从你有 curl 包的路径运行命令。 如果你把它放在 c:\curl 中,转到这个路径并运行 curl 命令,它就会起作用。

    【讨论】:

      【解决方案3】:

      我也尝试安装最新的 curl(如下所示),但它没有解决我的问题。

      curl 7.77.0 (x86_64-pc-win32) libcurl/7.77.0 OpenSSL/1.1.1k (Schannel) zlib/1.2.11 brotli/1.0.9 zstd/1.5.0 libidn2/2.3.1 libssh2/1.9.0 nghttp2/1.43.0 libgsasl/1.10.0 发布日期:2021-05-26 协议: dict 文件 ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp 特点:alt-svc AsynchDNS brotli gsasl HSTS HTTP2 HTTPS-proxy IDN IPv6 Kerberos 大文件 libz MultiSSL NTLM SPNEGO SSL SSPI TLS-SRP Unicode UnixSockets zstd

      【讨论】:

        猜你喜欢
        • 2015-01-04
        • 2016-08-14
        • 2016-04-28
        • 1970-01-01
        • 2016-04-19
        • 1970-01-01
        • 1970-01-01
        • 2014-01-14
        • 2020-04-10
        相关资源
        最近更新 更多