When trying to connect to a HTTPS websites, I get this error curl: (35) gnutls_handshake() failed: Error in the pull function.
.
In detail:
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.
This website's TLS configuration seems to be configured correctly.
More information:
$ 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
I got that exact message when I was trying to access the stats page of a https://mmonit.com/monit/ installation over https, while not having white listed my client IP to monit's configuration file.
Your question does not relate to monit of course, but maybe there is something blocking the request in the same way (e.g a firewall), thus the ssl handshake doesn't go through.