0

それに接続するためのphp websocketサーバーjavascriptクライアントを構築しました。SSLなしで正常に動作しています。私の次のステップは、ws の代わりに wss を使用してセキュリティを向上させることです (Web サイトで https を有効にします)。

私の意図は、着信トラフィックを復号化し、CentOS 6 で stunnel を使用して websocketserver にリダイレクトすることです。

最初のステップは、クライアントからサーバーにリクエストを単純にリダイレクトすることです。

クライアント要求:ws://soundjack.eu:9030/wsServer2.php

server:144.76.81.210:9090実行中のリッスンを作成したソケットphp -q wsServer2.php

対応する stunnel 構成:

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/run/stunnel/
;setuid = nobody
;setgid = nobody
; PID is created inside the chroot jail
pid = /stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = zlib

; Some debugging stuff useful for troubleshooting
debug = 7
output = /var/log/stunnel/stunnel.log

; Use it for client mode
client = yes

; Service-level configuration
[wsServer]
accept = 127.0.0.1:9030
connect = 127.0.0.1:9090

stunnel は正しく起動し、ポート 9030 をリッスンしています。

クライアントによって送信されるすべてのリクエストは中止されます (firebug コンソールを確認)。Chrome では status: finished と表示され、それ以上の情報はありません。

エラーが何であるかはまったくわからないので、どんな助けも素晴らしいでしょう。ありがとう!

4

2 に答える 2

1

それは最終的に動作します!!! SSLを使用しても、うまく機能します。

手がかりは、stunnel の構成が正しく機能するようにすることでした (今すぐ SSL を使用して更新します)。

/etc/stunnel/stunnel.conf:

; Certificate/key is needed in server mode and optional in client mode
cert = /path/to/<myCert>.pem
key = /path/to/<myKey>.key

; Protocol version (all, SSLv2, SSLv3, TLSv1)
sslVersion = all

; Some security enhancements for UNIX systems - comment them out on Win32
chroot = /var/run/stunnel/

; PID is created inside the chroot jail
pid = /stunnel.pid

; Some performance tunings
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
;compression = zlib

; Some debugging stuff useful for troubleshooting
debug = 7
output = /var/log/stunnel/stunnel.log
;foreground = yes

; Use it for client mode
;client = yes                     !! turn to server mode

; Service-level configuration
[wsServer]
accept = 0.0.0.0:9030             !! listen to all addresses
connect = 127.0.0.1:9090

注: でマーク !! は有効なコメントではありません! 変更を表示するためだけに挿入しました。

于 2014-09-15T16:37:19.590 に答える
0

私はこの同じ問題に遭遇したばかりで、他の誰かが私を殺しているので、グーグルでこの回答に追加したかった. 私のphpでは、laravel artisanコマンドで呼び出すラチェットを使用してwebsocketを作成しました。ローカルで開発している場合は、キーチェーンに stunnel.pem と CAFile を追加できると思います (Mac の場合...ローカルで作業している場合、CAFile は必ずしも必要ではないと思います)。 wss 経由で stunnel を使用して websocket にアクセスできるようにします。ただし、ライブ Web サーバーで作業している場合は、キーを認証する必要があります。私の場合、openSSL を使用して stunnel.pem の stunnel キーを生成し、正の SSL を使用して認証を受けました。次に、CAFile オプションを追加し、返送された crt ファイルをリンクしました。「スタンネルビジョン」を取得している場合は、stunnel.conf でオプション foreground =yes を使用し、DrakeBlack が指摘したように、client = yes を使用しないでください。この場合、あなたはクライアントではなく、サーバーです。

于 2015-02-12T16:00:57.003 に答える