From e625d10c7f7b018713916f70be9f2055c5db3542 Mon Sep 17 00:00:00 2001 From: Yuji Ueki Date: Thu, 24 Aug 2023 04:23:22 +0900 Subject: [PATCH] [https-proxy-agent] Support SNI as default for proxy servers (#237) --- .changeset/four-teachers-peel.md | 5 +++++ packages/https-proxy-agent/src/index.ts | 6 +++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 .changeset/four-teachers-peel.md diff --git a/.changeset/four-teachers-peel.md b/.changeset/four-teachers-peel.md new file mode 100644 index 00000000..08d1407b --- /dev/null +++ b/.changeset/four-teachers-peel.md @@ -0,0 +1,5 @@ +--- +"https-proxy-agent": patch +--- + +Support SNI for proxy servers diff --git a/packages/https-proxy-agent/src/index.ts b/packages/https-proxy-agent/src/index.ts index d136b0c5..92fc062f 100644 --- a/packages/https-proxy-agent/src/index.ts +++ b/packages/https-proxy-agent/src/index.ts @@ -91,7 +91,11 @@ export class HttpsProxyAgent extends Agent { let socket: net.Socket; if (proxy.protocol === 'https:') { debug('Creating `tls.Socket`: %o', this.connectOpts); - socket = tls.connect(this.connectOpts); + const servername = this.connectOpts.servername || this.connectOpts.host; + socket = tls.connect({ + ...this.connectOpts, + servername: servername && net.isIP(servername) ? undefined : servername + }); } else { debug('Creating `net.Socket`: %o', this.connectOpts); socket = net.connect(this.connectOpts);