次のコマンドを使用して、新しいユーザー変数SSLKEYLOGFILEをエクスポートしました。
export SSLKEYLOGFILE=($HOME)/sslkeylog.log
FirefoxまたはChromeを通常に開いた場合、sslkeylog.logファイルは作成されません(作成されたとしても、ブラウザを介してsslトラフィックを参照しても空です)。これらの機能を有効にしてブラウザを開くための特別なターミナルコマンドはありますか?はいの場合、何ですか?
コマンドの後に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
私は他の人と共有したかった、上記のソリューションは、クロムを使用して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
私は新しいメンバーなので、このフォーラムでは解決策に賛成票を投じることはできません。