From 06fbe19923432b2e841d0db7e76fa6ad746940d4 Mon Sep 17 00:00:00 2001 From: Justin Merz Date: Mon, 11 Nov 2019 10:18:52 -0800 Subject: [PATCH] Skip TLS SNI if host is IP address (#1890) * skip TLS SNI if host is IP address (do not set servername option in tls.connect) * Format code --- lib/connection.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/lib/connection.js b/lib/connection.js index 489a5afd..5ca746a7 100644 --- a/lib/connection.js +++ b/lib/connection.js @@ -91,9 +91,8 @@ Connection.prototype.connect = function (port, host) { return self.emit('error', new Error('There was an error establishing an SSL connection')) } var tls = require('tls') - self.stream = tls.connect({ + const options = { socket: self.stream, - servername: host, checkServerIdentity: self.ssl.checkServerIdentity || tls.checkServerIdentity, rejectUnauthorized: self.ssl.rejectUnauthorized, ca: self.ssl.ca, @@ -103,7 +102,11 @@ Connection.prototype.connect = function (port, host) { cert: self.ssl.cert, secureOptions: self.ssl.secureOptions, NPNProtocols: self.ssl.NPNProtocols - }) + } + if (net.isIP(host) === 0) { + options.servername = host + } + self.stream = tls.connect(options) self.attachListeners(self.stream) self.stream.on('error', reportStreamError)