我在使用CURL通过SSL请求URI的PHP组件中遇到了以下错误:
cURL error 35: gnutls_handshake() failed: A TLS packet with unexpected length was received.
此错误在travis-ci.org环境中发生,但在我们的任何测试环境中均没有发生。 请参阅travis-ci版本144663700。 我发现在Travis worker中运行的PHP版本在“ Ubuntu 12.04.5 LTS”上再次被编译为“ GnuTLS / 2.12.14”,或者在“ Ubuntu 14.04.3 LTS”上被编译为“ GnuTLS / 2.12.23”。 在我们的开发环境中,在Debian(各种版本)上我们使用针对“ OpenSSL / 1.0.1t”编译的标准软件包。 因此,我假设问题与“ GnuTLS / 2.12.14”或“ GnuTLS / 2.12.23”或与它们一起被编译的参数有关。 我尝试使用CURL常量CURLOPT_SSLVERSION限制SSL版本,但这不能解决问题。 根据www.ssllabs.com,有问题的主机api.reporting.cloud支持TLS 1.2,TLS 1.1和TLS 1.0。 有人对我有任何提示或指示吗?