当尝试连接到 HTTPS 网站时,我收到此错误curl: (35) gnutls_handshake() failed: Error in the pull function.
。
详细地:
curl -vvv "https://example.tld"
* Rebuilt URL to: https://example.tld/
* Trying 1.2.3.4...
* Connected to example.tld (1.2.3.4) port 443 (#0)
* found 148 certificates in /etc/ssl/certs/ca-certificates.crt
* found 592 certificates in /etc/ssl/certs
* ALPN, offering http/1.1
* gnutls_handshake() failed: Error in the pull function.
* Closing connection 0
curl: (35) gnutls_handshake() failed: Error in the pull function.
该网站的 TLS 配置似乎配置正确。
更多信息:
$ curl -V
curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3
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 UnixSockets
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.4 LTS
Release: 16.04
Codename: xenial
答案1
我在尝试访问https://mmonit.com/monit/通过 https 安装,同时没有将我的客户端 IP 列入 monit 配置文件的白名单。
您的问题当然与 monit 无关,但也许有某些东西以同样的方式阻止了请求(例如防火墙),因此 ssl 握手无法通过。