curl:(35)gnutls_handshake()失败:公钥签名验证失败

时间:2016-09-11 15:19:50

标签: curl debian gnutls

我有一个问题,当我做curl请求或git push时,显示我

  

curl:(35)gnutls_handshake()失败:公钥签名验证失败。

curl --version

  

curl 7.50.1(x86_64-pc-linux-gnu)libcurl / 7.50.1 GnuTLS / 3.5.3 zlib / 1.2.8 libidn / 1.33 libssh2 / 1.7.0 nghttp2 / 1.14.0 librtmp / 2.3   协议:dict文件ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp scp sftp smb smbs smtp smtps telnet tftp   功能:AsynchDNS IDN IPv6大文件GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets

我已经完成了:更新并将curl降级到版本7.38,但这对我没有帮助。 对不起我的英文,tnx。

4 个答案:

答案 0 :(得分:17)

dpkg -l | grep libgnutls

ii  libgnutls-deb0-28:amd64              3.3.8-6+deb8u3              amd64        GNU TLS library - main runtime library
ii  libgnutls-openssl27:amd64            3.3.8-6+deb8u3              amd64        GNU TLS library - OpenSSL wrapper
ii  libgnutls30:amd64                    3.5.7-2                     amd64        GNU TLS library - main runtime library

sudo apt-get remove --purge libgnutls-deb0-28

......为我工作。

答案 1 :(得分:2)

降级到7.38.0后,我也不得不降级:

$ sudo apt-mark hold libcurl3-gnutls
$ sudo apt-get install libcurl3-gnutls=7.38.0-4+deb8u4

然后错误就消失了。 我是debian jessie。

答案 2 :(得分:0)

将curl降级为7.38.0将适用于https url

首先你可以尝试通过apt-get删除curl,实际上apt-get无法删除所有依赖项!然后使用aptitude安装curl 7.38.0,请参阅下面的命令

apt-get remove --auto-remove curl

aptitude install curl = 7.38.0-4 + deb8u4

以下操作将解决这些依赖关系:

 Keep the following packages at their current version:

1)卷曲[未安装]

接受此解决方案? [Y / n / q /?] n

以下操作将解决这些依赖关系:

 Install the following packages:

1)libcurl3 [7.38.0-4 + deb8u4(稳定)] 接受此解决方案? [Y / n / q /?] y

答案 3 :(得分:0)

我不得不降级libcurl3和卷曲

sudo apt-get install libcurl3-gnutls=7.38.0-4+deb8u4 curl=7.38.0-4+deb8u4 libcurl3=7.38.0-4+deb8u4 

```

也适用于Debian测试..需要降级到Jessie的libcurl3