Php React SecureServer运行但在浏览器中抛出SSL\u错误\u无\u密码\u重叠

Php React SecureServer运行但在浏览器中抛出SSL\u错误\u无\u密码\u重叠,php,openssl,ratchet,reactphp,Php,Openssl,Ratchet,Reactphp,我们已经设置了一个安全套接字服务器,它在使用SecureServer保护它之前就已经工作了。运行php脚本成功,但当尝试从应用程序连接时,浏览器抛出SSL\u错误\u NO\u CYPHER\u重叠错误 我们的php脚本可能有问题。有人知道如何解决这个问题吗 我们有: $webServer = new Ratchet\Server\IoServer( new Ratchet\Http\HttpServer( new Ratchet\WebSocket\WsServer(

我们已经设置了一个安全套接字服务器,它在使用SecureServer保护它之前就已经工作了。运行php脚本成功,但当尝试从应用程序连接时,浏览器抛出SSL\u错误\u NO\u CYPHER\u重叠错误

我们的php脚本可能有问题。有人知道如何解决这个问题吗

我们有:

$webServer = new Ratchet\Server\IoServer(
    new Ratchet\Http\HttpServer(
        new Ratchet\WebSocket\WsServer(
            new Ratchet\Wamp\WampServer(
                $pusher
            )
        )
    ),
    new React\Socket\SecureServer(
        $webSock,
        $loop,
        array(
            'local_cert' => 'xxx',
            'allow_self_signed' => true,
            'verify_peer' => false,
            // Not sure what to put in ciphers ??
            'ciphers' => 'EECDH+AES:EDH+AES:-SHA1:EECDH+AES256:EDH+AES256:AES256-SHA:!aNULL:!eNULL:!EXP:!LOW:!MD5:!RC4:!MEDIUM'
        )
    )
);
有些文章建议修改浏览器配置,但连接应该对所有访问者都可用。。(没有小提琴)



编辑:我们在错误的位置使用了SecureServer,添加了带有更正代码的答案。

当服务器使用的列表与客户端或浏览器使用的列表没有共同条目时,可能会发生此错误。我会查看一下您的
“密码”
行,确保您正确列出了套件,并且您使用的套件可能在现代浏览器中可用


密码套件上的OpenSSL文档包含一系列可用套件以及指定套件的方法。特别是,我发现显式列出套件比当前的符号更容易,这使得意外地排除所有或大部分套件更容易。您也可以只指定一个族,例如列表中的
TLSv1.2

使用React\Socket\SecureServer with Ratchet:

// Set up secure React server
$webSock = new React\Socket\SecureServer(
    new React\Socket\Server($loop),
    $loop,
    array(
        'local_cert' => 'xxxx/combined.pem',
        //'allow_self_signed' => true,
        'verify_peer' => false
    )
);
$webSock->listen(8080, '0.0.0.0'); // Binding to 0.0.0.0 means remotes can connect (127.0.0.1 || 0.0.0.0)

// Ratchet magic
$webServer = new Ratchet\Server\IoServer(
    new Ratchet\Http\HttpServer(
        new Ratchet\WebSocket\WsServer(
            new Ratchet\Wamp\WampServer(
                $pusher
            )
        )
    ),
    $webSock
);

谢谢你抽出时间。但是,将行更改为
'ciphers'=>'TLSv1.2'
无助于解决此错误。您是否尝试过像上面链接的Mozilla wiki那样显式列出套件?此外,了解操作系统和OpenSSL版本可能有助于确定这一点。SSL版本:OpenSSL/1.0.1e,PHP 5.5.38在Linux服务器上。我尝试了字符串
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-chachacha20-POLY1305:ECDHE-RSA-chachacha20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDHE-ECDSA-ECDSA-AES256-SHA384:ECDHE-ECDHE-ECDSA-RSA-esa-AES256-SHA384:ECDHE-ECDHE-ECDHE-ECDSA-ECDSA-ECDSA-ECDSA-sa128-SHA256抛出那个错误。对你花在这上面的时间投了赞成票。我们成功了。