React SecureServer运行但在浏览器中抛出SSL_ERROR_NO_CYPHER_OVERLAP

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React SecureServer运行但在浏览器中抛出SSL_ERROR_NO_CYPHER_OVERLAP相关的知识,希望对你有一定的参考价值。

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

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

我们的代码:

$webServer = new RatchetServerioserver(
    new RatchetHttpHttpServer(
        new RatchetWebSocketWsServer(
            new RatchetWampWampServer(
                $pusher
            )
        )
    ),
    new ReactSocketSecureServer(
        $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,添加了纠正代码的答案。

答案

当服务器使用的cipher suites列表没有与客户端或浏览器使用的条目相同的条目时,可能会发生此错误。我会看看你的'ciphers'系列并确保你正确列出套件,并且你使用modern suites可能在现代浏览器中可用。

关于密码套件的OpenSSL文档有一个full list可用套件和proper format用于指定它们。特别是,我发现更容易明确地列出套件,而不是当前的符号,这使得很容易意外地排除所有或大多数套件。您也可以只指定一个族,例如列表中的TLSv1.2

另一答案

使用React Socket SecureServer和Ratchet:

// Set up secure React server
$webSock = new ReactSocketSecureServer(
    new ReactSocketServer($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 RatchetServerIoServer(
    new RatchetHttpHttpServer(
        new RatchetWebSocketWsServer(
            new RatchetWampWampServer(
                $pusher
            )
        )
    ),
    $webSock
);

以上是关于React SecureServer运行但在浏览器中抛出SSL_ERROR_NO_CYPHER_OVERLAP的主要内容,如果未能解决你的问题,请参考以下文章

我的请求在 Postman 中有效,但在浏览器中无效(React、Node、Cloudinary)

如何排除React Router的故障

Javascript:如何全局使用 React 组件?

React 构建在本地运行,但在 Amplify 上失败

React Router 在重新加载时起作用,但在单击链接时不起作用

React App 在本地运行,但在 Heroku 上因错误代码=H10 而崩溃