Ted's Blog



php curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small


问题汇总随手记


通过CURL请求一个https链接是提示 

php curl: (35) error:141A318A:SSL routines:tls_process_ske_dhe:dh key too small

通过搜索引擎查阅,发现可能是发起请求的服务器和被请求的服务器openssl环境不一致导致的


解决方式:ssl加密降级

// php curl请求 添加CURLOPT_SSL_CIPHER_LIST参数
curl_setopt($ch, CURLOPT_SSL_CIPHER_LIST, 'DEFAULT@SECLEVEL=1');

如果使用的是 guzzlehttp 扩展

$url = "";
$parameters = [
    'headers' => [],
    'curl' => [
        CURLOPT_SSL_CIPHER_LIST => 'DEFAULT@SECLEVEL=1'    // 在该处设置降级
    ]
];

$response = (new Client([
    'timeout' => 30,
]))->get($url, $parameters);


如果使用的是基于swoole系列的常驻型框架例如 hyperf、easyswoole 会报如下错误

PHP Fatal error:  Uncaught Swoole\Curl\Exception: swoole_curl_setopt(): option[10083] is not supported in @swoole-src/library/core/Curl/Handler.php:653

需要在编辑安装swoole时加上编译选项 --enable-swoole-curl 来开启 swoole的 curl-native扩展



相关链接:

https://www.codenong.com/js47bd53ed3ee5/

https://www.coder.work/article/7530730

https://wiki.swoole.com/#/question/install?id=libcurl


分享:

写评论


Contact ME

github:https://github.com/tebie6

email:liumingyuphp@163.com

友情链接

无敌我大鑫哥:http://dream128.cn