猿问

Guzzle (35) gnutls_handshake() 失败:通过 HTTP 收到了意外的

我从我的服务器向其他服务器(http://example.com:8180)发送了一个 api 请求,我收到了这个错误

“cURL 错误 35:gnutls_handshake() 失败:收到了意外的 TLS 数据包。”

奇怪的是,当我在我的本地和舞台服务器上测试时,没有任何问题。

生产服务器和舞台服务器的区别在于ssl的存在。

但这可能是问题吗??

我有点相信它是关于“php curl”的,因为 guzzle 在代码中不起作用,但是 curl 命令可以

,我在代码中使用了 curl 而没有 guzzle 但仍然没有工作。

我设置CURLOPT_SSL_VERIFYPEERCURLOPT_SSL_VERIFYHOST错误

但仍然没有工作。

只要我知道 SSL 无关紧要,因为我尝试通过 HTTP 连接到服务器,对吗?

下面是我编译的 php、curl、服务器信息

PHP Version => 7.2.1


System => Linux ip-x-x-x-x 4.4.0-1060-aws #69-Ubuntu SMP Sun May 20 13:42:07 UTC 2018 x86_64

Build Date => Jan 31 2019 05:39:24

Configure Command =>  './configure'  '--enable-fpm' '--with-openssl' '--with-pdo-mysql' '--enable-mbstring' '--with-libxml-dir' '--enable-intl' '--with-gettext' '--with-mhash' '--with-gd' '--with-pc

re-jit' '--with-zlib' '--enable-bcmath' '--enable-calendar' '--with-zlib-dir' '--with-curl' '--enable-zip'


curl


cURL support => enabled

cURL Information => 7.47.0

Age => 3

Features

AsynchDNS => Yes

CharConv => No

Debug => No

GSS-Negotiate => No

IDN => Yes

IPv6 => Yes

krb4 => No

Largefile => Yes

libz => Yes

NTLM => Yes

NTLMWB => Yes

SPNEGO => Yes

SSL => Yes

SSPI => No

TLS-SRP => Yes

HTTP2 => No

GSSAPI => Yes

KERBEROS5 => Yes

UNIX_SOCKETS => Yes

PSL => No

Protocols => dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, ldaps, pop3, pop3s, rtmp, rtsp, smb, smbs, smtp, smtps, telnet, tftp

Host => x86_64-pc-linux-gnu

SSL Version => GnuTLS/3.4.10

ZLib Version => 1.2.8


慕慕森
浏览 488回答 2
2回答

跃然一笑

问题已经解决了。我使用 laravel 并且有一个黑盒,它是 route() 辅助函数它根据服务器配置设置 url http 或 https,生产服务器设置为 https这就是它导致错误的原因。

开满天机

仅供参考此错误,这可能对某些人有所帮助。我在带有 apache 服务器的 ubuntu 机器上遇到了类似的问题,我通过使用链接创建自签名证书解决了这个问题< HTTP/1.1 200 Connected<* Proxy replied OK to CONNECT request* found 127 certificates in /etc/ssl/certs/ca-certificates.crt* found 508 certificates in /etc/ssl/certs* ALPN, offering http/1.1* gnutls_handshake() failed: An unexpected TLS packet was received.* Closing connection 0curl: (35) gnutls_handshake() failed: An unexpected TLS packet was received.如果您正在使用 curl 并面临以下错误,即使在创建证书并启用它之后,您也可以--cacert <certificate name>在 curl 命令中使用。错误 : curl: (60) server certificate verification failed.尝试这个 : curl --cacert <certificate_name>.crt https://<your IP>:<Port>
随时随地看视频慕课网APP
我要回答