gpt4 book ai didi

PHP WebSocket SSL

转载 作者:搜寻专家 更新时间:2023-10-31 20:47:54 25 4
gpt4 key购买 nike

我正在尝试将我的 PHP WebSocket 库升级到 SSL,在客户端使用 wss://-protocol。但是,我发现自己在尝试弄清楚 a) 如何设置服务器套接字,以及 b) 如何解码传入消息时不知所措。这是我目前对前者的尝试:

$context = stream_context_create();

// local_cert must be in PEM format
stream_context_set_option($context, 'ssl', 'local_cert', $pemFilePath);
// Pass Phrase (password) of private key
stream_context_set_option($context, 'ssl', 'passphrase', $pemPassPhrase);
stream_context_set_option($context, 'ssl', 'allow_self_signed', true);
stream_context_set_option($context, 'ssl', 'verify_peer', false);

$serverSocket = stream_socket_server('ssl://'.$host.':'.$port, $errNo, $errStr, STREAM_SERVER_BIND|STREAM_SERVER_LISTEN, $context);

然而,当使用 SSL 作为服务器协议(protocol)时,客户端似乎没有发送任何消息,而当使用 tcp 时,我得到了奇怪的加密数据,尽管我猜测它会由于我的原因而被神奇地解密为流上下文提供选项。

我做错了什么?

最佳答案

我在实现时遇到了同样的问题,并找到了一个很好的解决方法。将您的 websocket 服务器放在任何防火墙端口上,并从安全端口端口建立隧道连接。您可以使用 stunnel使用这样的配置:

[websockets]
accept = 8443
connect = 8080

这样,stunnel 负责所有的安全,而您的 websocket 服务器负责所有的 websocket。赢了!

关于PHP WebSocket SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11286009/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com