AsyncTcpConnection 连接websocket,报证书错误

嘻嘻哈哈

问题描述

使用js正常连接

AsyncTcpConnection 连接websocket,报以下错误

连接成功
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version
断开

程序代码

$context = [
                'ssl' => [
                    //是否需要验证 SSL 证书。
                    'verify_peer' => false,
                    'verify_peer_name' => false,
                    //是否允许自签名证书。
                    'allow_self_signed' => true,
                ],
            ];

            $con = new AsyncTcpConnection('ws://streaming.forexpros.com:443/echo/958/fnzqglgx/websocket',$context);
            $con->transport = 'ssl';

            $con->onConnect = function ($con)
            {
                echo '连接成功'.PHP_EOL;
            };

            $con->onMessage = function ($con, $msg)
            {

            };

            $con->onClose = function ($con)
            {
                echo '断开';
            };

            $con->connect();

报错信息

连接成功
SSL handshake error: stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version 
断开

操作系统及workerman/webman等框架组件具体版本

服务器系统:CentOS release 6.9 (Final)
php版本:php8.2
workerMan版本:4.1.11

371 2 0
2个回答

latin

服务端证书有问题

  • 嘻嘻哈哈 2023-09-27

    用js可以正常连接

  • latin 2023-09-27

    php自带的stream_socket_enable_crypto 函数不认你的证书

六叔叔

证书问题,要么重签,要么试着升级下OpenSSL

  • 暂无评论
🔝