2011-06-17 56 views
4

x11vnc(VNCサーバー)とnoVNC(VNCクライアント)とのSSL接続を使用しようとしています。接続しようとするたびにnoVNCから「Unsupported Security Types:19,18」というエラーが表示され、「SSL:ssl_helper [2957]:case 2を終了します(ssl_initに失敗しました)」というエラーメッセージが表示されます。 0 "からx11vnc。 x11vncのSSLを無効にすると、クライアントは問題なく接続できます。noVNCからx11vnc SSL接続

私はx11vncがJavaベースのアプレットビューアでパッケージ化されていることを認識しています。しかし、私はHTML5ベースのnoVNCにもっと興味があります。

x11vncと同じマシン上でnoVNC両方の実行、コマンドを使用して、両方:

x11vnc: x11vnc -forever -shared -unixpw_cmd [CMD] -ssl [PEM]

noVNC:./utils/websockify --ssl-only --cert = [pem] --web =。/ 6080 localhost:5900

注:両方とも同じpemを指しています。 nossのlaunch.shの代わりにwebsockifyを使用して、-ssl-onlyなどのオプションを追加します。

noVNCの暗号化オプションは、サーバーへの接続に影響しないようです(結果はオンかオフかにかかわらず同じです)。

私は最も安全な接続が心配です。今のところnoVNCの暗号化オプションをオンにするのは、x11vncのSSLをオフにする必要がある(暗号化オプションはws://の代わりにnoVNCにwss://を設定する)場合にはそう多くはありません。これで安全な接続が確立された場合は、お知らせください。それ以外の場合、noVNCとx11vncをSSLで動作させるにはどうすればよいですか?

+0

@ yondaeme1192、あなたの質問にお答えしましたか?他の人が「解決済み」の質問を見つけることができるように答えを受け入れることができますか? – kanaka

答えて

13

は、まず、いくつかの明確化

noVNCとwebsockifyは実際に別のプロジェクトです:

  • websockifyは、(例えばブラウザから)のWebSocket接続は、生のTCPに接続することを可能にする汎用プロキシ/ブリッジですソケットサービス(例えば、VNCサーバ)。
  • noVNCは、HTML5 VNCクライアントです。

VNCサーバがWebSocket接続をサポートしていた場合、websockifyは必要ありません。現在直接WebSocket接続をサポートする唯一のVNCサーバはthis fork of libvncserverです。ほとんどのVNCサーバはまだWebSocketクライアントをサポートしていないのでwebsockifyはnoVNCに含まれていますが、websockifyはseparate projectです。

あなたは別の暗号化オプションをそれぞれ有する2つの異なるネットワーク接続を扱っている:websockifyする

  1. noVNC(ブラウザ)直接TCPソケット - - のWebSocketプロトコルにx11vncへ
  2. websockify(VNCサーバ)を使用して、接続

WebSocketプロトコルは、暗号化されていない接続(ws://)とSSL/TLS暗号化された接続(wss://)をサポートしています。

VNCで使用されるRFBプロトコル(リモートフレームバッファ)には、初期化中に暗号化された接続を使用するようにアップグレードする機能があります。TLS(セキュリティタイプ18)、VeNCrypt(セキュリティタイプ19)など、いくつかの暗号化方式がサポートされています。あなたの質問に今

あなたは、これはRFB/VNCの暗号化を有効にx11vncする-ssl PEMを渡します。 noVNCはRFB/VNC暗号化をサポートしていません。 Javascriptは、noVNCで使用できるほどに速く暗号化/復号化を実行するのに十分速くはありません。 some discussion about adding a crypto API to Javascriptがあり、noVNCがこのタイプの暗号化をサポートできるようになります。

noVNCで暗号化を有効にすると、WebSocket暗号化(wss://)が有効になります。これにより、ブラウザとwebsockifyの間の接続が暗号化されます。 websockifyとVNCサーバとの間の接続が信頼できるネットワーク(例えば、同じサーバ上で動作している)上であり、noVNCでWebSocket暗号化を使用する限り、暗号化されていないデータは公開されない。ただし、ブラウザと同じシステム上でWebSockifyを実行し、VNCサーバがリモートの場合、クライアントからサーバシステムへのVNCトラフィックは暗号化されません(将来、VNCがRFB/VNC VeNCrypt暗号化をサポートしない限り)。

WebSockifyの出力は、WebSocket接続が暗号化されているか暗号化されていないかを示します。

関連する問題