同一服务器内PHP curl请求触发OpenSSL 3的“unexpected eof while reading” SSL错误排查求助
同一服务器内PHP curl请求触发OpenSSL 3的“unexpected eof while reading” SSL错误排查求助
大家好,我遇到了一个特别困惑的问题,想请各位帮忙分析下:
我清楚这个error:0A000126:SSL routines::unexpected eof while reading错误是OpenSSL 3为防范截断攻击,重新引入相关安全特性导致的,但让我百思不得其解的是——我从服务器本身发起PHP curl请求到同一台服务器时,居然也触发了这个错误。
先说明下我的运行环境:
- 系统:Rocky Linux 9.1
- PHP版本:8.0.27
- OpenSSL版本:3.0.1(都是当前可用的最新稳定版本)
- 暂时没法通过dnf模块升级到PHP8.1,因为该版本依赖的部分库目前还没有提供。
按常理来说,既然服务器能识别这个错误,那它发起的请求也应该是符合SSL规范的才对,但我查到的相关bug报告里,都说这个错误通常是由不合规的服务器端请求导致的。所以想请教下,我应该检查系统的哪些部分,来修正请求格式,让curl请求恢复正常?
下面是我当前curl请求使用的配置选项:
CURLOPT_HTTPGET => TRUE, CURLOPT_HEADER => FALSE, CURLOPT_FAILONERROR => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_CONNECTTIMEOUT => 10, CURLOPT_TIMEOUT => 60, CURLOPT_SSL_CIPHER_LIST => NULL, CURLOPT_CAINFO => '/path/to/ca-certs.pem', CURLOPT_SSL_VERIFYPEER => TRUE, CURLOPT_SSL_VERIFYHOST => 2
还有httpd.conf里的SSL/TLS相关配置:
SSLProtocol -all +TLSv1.3 +TLSv1.2 SSLProxyProtocol -all +TLSv1.3 +TLSv1.2 SSLCipherSuite TLSv1.3 TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256 SSLCipherSuite SSL AES256+EECDH:AES256+EDH:!SHA1:!SHA256:!SHA384 SSLHonorCipherOrder on SSLCompression off SSLSessionTickets off SSLOpenSSLConfCmd Curves X25519:secp521r1:prime256v1
麻烦各位帮忙看看,谢谢啦!
编辑:已解决
TL;DR:必须在客户端的curl请求里明确指定TLS版本和加密套件。
备注:内容来源于stack exchange,提问作者oucil
相关产品推荐
相关产品推荐

