在对 ubuntu 20 中托管的目标应用程序触发 curl 时遇到此问题。
curl:(35)gnutls_handshake() 失败:收到意外的 TLS 数据包,以下是源中的 curl 版本。
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
有趣的是,当我从另一台 curl 版本不同的机器触发 curl 时,它正常工作
工作 curl 版本如下。
curl 7.58.0(x86_64-pc-linux-gnu)libcurl/7.58.0 OpenSSL/1.1.1 zlib/1.2.11 libidn2/2.0.4 libpsl/0.19.1(+libidn2/2.0.4)nghttp2/1.30.0 librtmp/2.3
我可以看到,在工作 curl 版本中,源包是 openssl 而不是 gnutls。
为什么 gnutls 与 ubuntu 20 出现握手问题(同样的 curl(7.47)在 ubuntu 16 中与应用程序冲突)?