web-dev-qa-db-ja.com

FirefoxまたはChromeを開いてSSLKEYLOGFILEに書き込みます

次のコマンドを使用して、新しいユーザー変数SSLKEYLOGFILEをエクスポートしました。

export SSLKEYLOGFILE=($HOME)/sslkeylog.log

FirefoxまたはChromeを通常に開いた場合、sslkeylog.logファイルは作成されません(作成されたとしても、ブラウザを介してsslトラフィックを参照しても空です)。これらの機能を有効にしてブラウザを開くための特別なターミナルコマンドはありますか?はいの場合、何ですか?

1
BEWARB

括弧を省略します

コマンドの後にexport(パラメーターなし)を実行すると、SSLKEYLOGFILEが有効なパスではない(/home/username)/sslkeylog.logに設定されていることがわかります。括弧を省略します。

export SSLKEYLOGFILE=$HOME/sslkeylog.log

「通常」開かれたアプリケーションには、環境変数が表示されません。

Bash Reference Manual によると:

export [-fn] [-p] [name[=value]]

Mark each name to be passed to child processes in the
environment.[...]

...そして同様に ダッシュマニュアル

 export name ...
 export -p
        The specified names are exported so that they will appear in the
        environment of subsequent commands.[...]

...エクスポートされた環境変数は、同じプロセスまたは子プロセスの後続のコマンドにのみ渡されます。したがって、ターミナルを開いてexport SSLKEYLOGFILE...コマンドを実行すると、同じターミナル(より正確には、そのターミナル内の同じシェルプロセス)から生成されたアプリケーション(プロセス)のみが環境変数を参照します。その端末からgoogle-chrome(-stable)を実行するとSSLKEYLOGFILE変数が表示され、指定されたファイルに書き込まれます。

Google chromeをアプリケーションスターターで開いた場合(-normal)、端末の子プロセスではないため、SSLKEYLOGFILE変数を認識しません。

また、chromeが既に実行されている場合、ターミナルでgoogle-chrome-stableを実行すると、既に実行中のプロセスで新しいウィンドウが開きます。ターミナルでpstreeを実行すると、プロセスツリーを表示できます。

これは質問の一部ではなかったため、ここでは詳しく説明しませんが、セッション全体またはシステム全体の永続的な環境変数の設定については、 buntuコミュニティwiki

4
danzel

私は他の人と共有したかった、上記のソリューションは、クロムを使用してubuntu 18.10で私のために働いた

を使用して、ターミナルからサイトを起動できます

$ google-chrome https://askubuntu.com/questions

私にとっては、wiresharkでtcpの会話を読みたかったのです。

外部プログラムがTLS接続を解読できるように、NSSによってキーログを書き込むことができます。 Wireshark 1.6.0以降では、これらのログファイルを使用してパケットを復号化できます。 [編集]→[設定]→[プロトコル]→[SSL]→[事前]-マスタ-秘密のログファイル名で、キーファイルの場所をWiresharkに指示できます。

注、私はFirefoxを試していませんでした。それはうまくいくかもしれないが、私はそれを理解するのに時間を費やしたくなかった。 mozillaは、debianではデフォルトで無効になっていることを指摘しました https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format

私は新しいメンバーなので、このフォーラムでは解決策に賛成票を投じることはできません。

3
Mark