summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSam Roberts <vieuxtech@gmail.com>2019-10-21 20:44:20 -0700
committerSam Roberts <vieuxtech@gmail.com>2019-11-20 08:00:02 -0800
commit80efb80f3f9dffb412aa1a41ab36c843c90c60e5 (patch)
tree79e7db50520582e1c5c9a33b49265333b4a10287 /src
parentf4ea9189501743797d1ab8f5ed07027dd71f59bd (diff)
downloadandroid-node-v8-80efb80f3f9dffb412aa1a41ab36c843c90c60e5.tar.gz
android-node-v8-80efb80f3f9dffb412aa1a41ab36c843c90c60e5.tar.bz2
android-node-v8-80efb80f3f9dffb412aa1a41ab36c843c90c60e5.zip
tls: cli option to enable TLS key logging to file
Debugging HTTPS or TLS connections from a Node.js app with (for example) Wireshark is unreasonably difficult without the ability to get the TLS key log. In theory, the application can be modified to use the `'keylog'` event directly, but for complex apps, or apps that define there own HTTPS Agent (like npm), this is unreasonably difficult. Use of the option triggers a warning to be emitted so the user is clearly notified of what is happening and its effect. PR-URL: https://github.com/nodejs/node/pull/30055 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/node_options.cc4
-rw-r--r--src/node_options.h1
2 files changed, 5 insertions, 0 deletions
diff --git a/src/node_options.cc b/src/node_options.cc
index 85256a7e0a..0bc6730156 100644
--- a/src/node_options.cc
+++ b/src/node_options.cc
@@ -506,6 +506,10 @@ EnvironmentOptionsParser::EnvironmentOptionsParser() {
AddOption("--napi-modules", "", NoOp{}, kAllowedInEnvironment);
+ AddOption("--tls-keylog",
+ "log TLS decryption keys to named file for traffic analysis",
+ &EnvironmentOptions::tls_keylog, kAllowedInEnvironment);
+
AddOption("--tls-min-v1.0",
"set default TLS minimum to TLSv1.0 (default: TLSv1.2)",
&EnvironmentOptions::tls_min_v1_0,
diff --git a/src/node_options.h b/src/node_options.h
index 30a976f48d..ce0cee5fe5 100644
--- a/src/node_options.h
+++ b/src/node_options.h
@@ -161,6 +161,7 @@ class EnvironmentOptions : public Options {
bool tls_min_v1_3 = false;
bool tls_max_v1_2 = false;
bool tls_max_v1_3 = false;
+ std::string tls_keylog;
std::vector<std::string> preload_modules;