httpsおよび基本認証を使用したブラウザーでのGTK3アプリ

私の今日のメモのトピックは奇妙です。 序文から始めます。 ある友人がかつて私たちの小さな電報チャットで質問をしました。「同僚、ウェブ端末を知っていますか? そして時々仕事からサーバーに行く必要があり、それから扁桃腺に従ってすべてがカットされ、「よく尋ねられて、みんなが言った」「はい、すぐには何も知りません」 。 ある夜、GTK3のドキュメントを読んで、 GDK_BACKEND = broadwayに出会いました 。 HTML5とwebsocketを使用してGTK3アプリケーションを表示するバックエンド。 何かが脳内でクリックしましたが、誰かが何かを必要としているように見えたのは奇妙にクリックしました。



私は頭の中でこれらのクリックで生活し、誰に覚えていて、人に手紙を書きましたが、ローカルホストで実験すると、ブロードウェイマナで説明されたパスワードが機能しないと正直に言いました(マナからの引用$ XDG_CONFIG_HOME / broadway.passwdまたは$ HOME / .config / broadway.passwd内のファイル(crypt(3)スタイルのパスワードハッシュを使用)。 passwd ")、したがって、一方では人が必要とする機能のように見えますが、一方ではハングアップすることはできません。インターネット上で端末を裸のまま吊るすことは明らかに私たちの選択ではありません。 httpsと基本認証を使用できるようにnginxを介してプロキシしようとしました(まあ、またはクライアント証明書を使用して、さらに進みたい)、空白の画面を見て放棄しました。



昨夜、これを思い出し、問題を調べなければならないと決め、もう一度広範な説明を見て、httpについてはproxy_passだけをプロキシしようとしたので、websocketにそれがあることに気づきました。



カブをひっかいた結果、すべてがうまくいきました。 実際には、gnome-terminalという事実に基づいた説明です(そして、すでに持っている他のgtkと一緒に実行します)。



nginx構成で、基本認証があり、broadwaydにプロキシする場所を追加します



location /trm/ { auth_basic "closed site"; auth_basic_user_file /etc/nginx/htpasswd; proxy_redirect off; # websocket proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; # end websocket proxy_read_timeout 86400; proxy_pass http://127.0.0.1:8080/;
      
      





見知らぬ人が通過しないようにローカライズの基本認証を有効にし(Webサーバーはhttps経由でのみ動作するため、優れたプロバイダーなどはWebソケットのプロキシに必要なヘッダーを設定し、デフォルトでproxy_read_timeoutはnginxにあるため、タイムアウトを変更します)これは60秒に相当します。Webソケットの場合、60秒です。これは災害です。 さて、ブロードウェイが私たちを待っている場所を示します



nginx -tを実行して構成を確認し、nginx reloadを実行します。 端末が必要なユーザーの下で、broadwayd -a 127.0.0.1&を実行します。 Broadwayでloをリッスンします。デフォルトでは、ポート8080で開始されます。これは、プロキシされているnginxですでに設定されています。

GDK_BACKEND = Broadway dbus-launch gnome-terminal。 目的のgnome-terminalを実行します。



ブラウザーからWebサーバーにアクセスし、基本認証からログインパスワードを入力して、目の前の端末を確認します...







PSマイナス点が1つあり、クリップボードはブロードウェイで実行されているアプリケーションでは機能しません(私たちは端末であるだけでなく、このようにGTK3を使用してほとんどのアプリケーションを起動できます)



PPS私は本番環境で同様のソリューションを真剣に提案しませんが、クライアントSSL証明書を使用してアクセスセキュリティを確保する場合、ソリューションはキーごとにsshほど±安全です)



同様のアプローチを使用して、ブラウザーからアクセス可能なgnome-terminalよりも有用なものを作成できることを排除しません。



PPPSはい。 記事で説明しているタスクの奇妙さについては疑問がないことをすぐに言いますが、私の思考の詳細のために、自分の能力の領域のタスクが偶然であっても私の前で実行された場合、遅かれ早かれ、何らかの方法でそれを解決します。 私や他の誰かが本当にそれを必要としているかどうかに関係なく。



All Articles