NSSに依存するプログラムでSSLKEYLOGFILEが機能するが、NSSを使用するものだけでなく、Linuxサーバー上のすべての発信TLS/SSL接続に適用される環境変数はありますか?
具体的には、問題をデバッグするために、eximデーモンからすべての外部ホストへのトラフィックのtcpdumpを実行したいのですが、後でそれを復号化できるようにする必要があります。
参考になる場合は、ldd /usr/sbin/exim
は次のライブラリをリストします(もちろん他のものもそうです)。
libssl.so.10
libcrypto.so.10
NSS SSLキーログファイルは、SSL/TLSのNSSライブラリを使用してアプリケーションからSSLセッションキーを抽出する目立たない方法ですが、すべてのアプリケーションで同じことを行う標準的な方法はありません。 (一般的なアプローチには中間者攻撃が含まれますが、これは実際には目立たないわけではありません。)
ただし、アプリケーションから直接セッションキーを抽出するという考え方は、より広く適用できます。 libssl.soは、OpenSSLが(おそらく)Linuxプラットフォームで使用されていることを示唆しています。どちらかを使用できますLD_PRELOAD
OpenSSLライブラリを挿入する(すべてのケースで機能しない場合があります)か、適切なブレークポイントでデバッガをアタッチします。どちらのアプローチも OpenSSLアプリケーションからプレマスターキーを抽出する で文書化され、さらに詳しく説明されています。
トラブルシューティングのための追加のヒントとして、Wireshark 1.12はTLSアプリケーションデータを復号化できます(そして、SSLストリームの追跡を使用して通信を確認できます)、STARTTLSハンドシェイク後に発生するSMTPトラフィックを分析しません(SMTPSは影響を受けません) )。 Wireshark 2.0(2015年11月の仮リリース日、プレリリースバージョンは available )で、SMTPプロトコルはSTARTTLS後に正しく認識されます。