%20%E5%A4%B1%E8%B4%A5%EF%BC%9A%E4%BB%8E%20ubuntu%2016%20curl%EF%BC%887.47.0%EF%BC%89%E6%94%B6%E5%88%B0%E6%84%8F%E5%A4%96%E7%9A%84%20TLS%20%E6%95%B0%E6%8D%AE%E5%8C%85.png)
在对 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 中与应用程序冲突)?