2

ローカル Websocket サーバーを実行する Java Web Start アプリケーションがあります。このアプリは、いくつかのデータを受け取り、これらのデータに署名し、WebSocket 接続を介して署名されたデータをブラウザーに返します。Tyrus コンテナーをローカル WebSocket サーバーとして使用しています。最近、私は立ち往生していることに気付きました: ブラウザーは ssl コンテキストで ws への接続を確立しようとしますが、私の ws サーバーは保護された websocket 接続をサポートしていません。

次のエラーが発生しました。

混合コンテンツ: ' https://example.com ' のページは HTTPS 経由で読み込まれましたが、安全でない WebSocket エンドポイント 'ws://localhost:8025/sign/' に接続しようとしました。このリクエストはブロックされました。このエンドポイントは、WSS 経由で利用できる必要があります。

Uncaught SecurityError: 'WebSocket' の構築に失敗しました: 安全でない WebSocket 接続は、HTTPS 経由で読み込まれたページから開始されない可能性があります。

言い換えれば、Tyrus は私にそのようなものを与えません:

new org.glassfish.tyrus.server.Server.Server("wss", "localhost", 8025, "/sign", null, MyClass.class);

Tyrus Server を SSL で実行する方法はありますか、それとも別の自己完結型の Websocket サーバーを知っている人はいますか?

前もって感謝します

4

1 に答える 1

1

Netty IO ( https://github.com/netty/netty ) には、スタンドアロンでセキュア ソケットを提供する機能があることがわかりました。ただし、Java Web Start アプリケーション内で有効なデジタル証明書 (jks) を提供する必要があったため、あきらめました。誰でも jar を逆コンパイルし、その証明書を使用して Web サイトを構築したり、私の資格情報でドキュメントに署名したりできるため、これはセキュリティ上の大きな問題です。

そこで、JBoss によってインスタンス化された Web ソケット サーバーにロジックを移動しました。

于 2016-11-29T14:39:40.960 に答える