← Back to blog
HTTPS · SNI nodetonet.com

HTTPS proxies and SNI routing — how TLS lives on the edge

N Nodetonet Team
April 30, 2026 9 min read

When you open the New Proxy form on Nodetonet and switch the protocol from HTTP to HTTPS, a chain of things happens behind the scenes: a TLS certificate is issued for your subdomain, the edge learns which tunnel to route encrypted traffic into, and your client gets a proxy it can talk to without any certificate warnings. This guide walks through every step — the certificate lifecycle, the SNI handshake, the precise moment TLS terminates, and exactly when to prefer HTTPS over plain HTTP or SOCKS5.

TL;DR: HTTPS-protocol proxies encrypt the proxy connection (client to edge) using a real Let's Encrypt certificate. The edge terminates TLS, then forwards plain HTTP proxy bytes down the secure agent channel to your paired mobile device. Target-site traffic is still encrypted end-to-end by HTTPS as normal — the proxy HTTPS layer only protects your auth credentials and the CONNECT metadata.

What "HTTPS proxy" actually means on the wire

It is easy to confuse the three places "HTTPS" can appear in a proxy setup. Here is the clearest breakdown:

HopPlain HTTP proxyHTTPS proxySOCKS5 proxy
Client → EdgePlaintext TCPTLS-encrypted TCPPlaintext TCP (or TLS if you wrap it)
Edge → Device (agent channel)Encrypted (WS/TLS)Encrypted (WS/TLS)Encrypted (WS/TLS)
Device → Target siteWhatever the target usesWhatever the target usesWhatever the target uses
Auth header exposureCleartext on first hopEncrypted on first hopEncoded, but still plaintext on first hop

The internal edge-to-device channel is always encrypted regardless of which protocol you pick — that is built into the Nodetonet agent. HTTPS-proxy mode adds TLS to the client-to-edge segment only. If your target sites are already served over HTTPS (which they almost certainly are), HTTPS-proxy mode does not change the end-to-end security of that traffic. What it does protect is the Proxy-Authorization header and the CONNECT host:port line that would otherwise travel in cleartext between your machine and the edge.

Certificate lifecycle: from form submit to first request

Every Nodetonet account is assigned a unique subdomain — for example sub42.nodetonet.com. The moment you create your first HTTPS proxy on that subdomain, the edge kicks off an ACME HTTP-01 challenge with Let's Encrypt. In practice this means:

  1. The edge generates a private key and a certificate signing request (CSR) for sub42.nodetonet.com.
  2. Let's Encrypt calls back to a well-known URL on the edge to verify ownership.
  3. Let's Encrypt signs the certificate (valid 90 days) and returns it to the edge.
  4. The edge loads the certificate into its TLS listener and starts accepting connections.
  5. At 30 days remaining, renewal happens automatically — no action needed from you.

Multi-port pools — where you run p1.sub42.nodetonet.com through p32.sub42.nodetonet.com — use a wildcard certificate (*.sub42.nodetonet.com) issued via DNS-01 challenge, so every subdomain validates cleanly under one cert. See how wildcard SSL certificates work for the full story. If you point a custom CNAME at Nodetonet (see bringing your own domain), the edge issues a certificate for your custom hostname on first use as well.

The very first request to a freshly-created HTTPS proxy can take an extra second or two while issuance settles. After that, TLS handshakes go through the edge session cache and complete quickly.

You can verify the certificate any time with openssl s_client:

openssl s_client -connect sub42.nodetonet.com:48888 -servername sub42.nodetonet.com

You should see CN = sub42.nodetonet.com and a valid Let's Encrypt chain — no --proxy-insecure flag ever needed.

SNI routing: how the edge picks the right tunnel

The edge runs proxy endpoints for many accounts on a small number of shared public IPs and ports. A single port :443 can belong to dozens of different proxy configurations. When a TLS connection arrives, the edge needs to know — before it can even read the HTTP request — which user's tunnel this belongs to. The answer is Server Name Indication (SNI).

SNI is a TLS extension defined in RFC 6066. Every TLS ClientHello message carries the hostname the client intends to reach, in cleartext, as part of the handshake before any encryption begins. The sequence looks like this:

1.  Client opens TCP connection to edge IP:443 (or custom port)
2.  Client sends TLS ClientHello with SNI = "sub42.nodetonet.com"
3.  Edge reads the SNI field — no decryption needed
4.  Edge looks up which proxy tunnel is registered for that hostname + port
5.  Edge selects the matching TLS certificate and completes the handshake
6.  TLS terminates at the edge; the connection is now plaintext HTTP-proxy protocol
7.  Edge validates the Proxy-Authorization header (username + password)
8.  Edge forwards the CONNECT request down the encrypted agent channel to the device
9.  The device connects to the target and traffic flows

Two critical implications:

Connection string examples

The format is identical to HTTP and SOCKS5 — just swap the scheme to https://:

# curl (plain HTTPS proxy)
curl -x https://USERNAME:PASSWORD@sub42.nodetonet.com:48888 https://api.ipify.org

# curl with sticky session (append -session-XXXX to the username)
curl -x https://USERNAME-session-abc1:PASSWORD@sub42.nodetonet.com:48888 https://api.ipify.org

# Python requests
import requests
proxies = {
    "http":  "https://USERNAME:PASSWORD@sub42.nodetonet.com:48888",
    "https": "https://USERNAME:PASSWORD@sub42.nodetonet.com:48888",
}
r = requests.get("https://api.ipify.org", proxies=proxies)
print(r.text)

# Node.js (https-proxy-agent)
const { HttpsProxyAgent } = require("https-proxy-agent");
const agent = new HttpsProxyAgent("https://USERNAME:PASSWORD@sub42.nodetonet.com:48888");
fetch("https://api.ipify.org", { agent });

For geo and carrier targeting, append modifiers to the username in the same way as with HTTP proxies — for example USERNAME-country-tr-session-abc1. See geo-targeting for the full modifier syntax and sticky sessions explained for session pinning details.

HTTPS proxy vs HTTP proxy vs SOCKS5 — when to pick which

ScenarioBest choiceWhy
Client refuses plaintext proxies (corporate SDK, PAC policy)HTTPSTLS satisfies the client's security policy without extra wrappers
Proxy credentials could be sniffed on the network pathHTTPSProxy-Authorization header is encrypted on the client-to-edge hop
Downstream pinning logic must match the proxy hostnameHTTPSReal LE cert on your subdomain satisfies pinning checks
Standard web scraping, browser automation, API callsHTTPSimpler setup, identical throughput once connected
Non-web traffic (game clients, DNS, SSH, custom TCP)SOCKS5SOCKS5 forwards raw TCP; HTTP/HTTPS only handle HTTP CONNECT
UDP traffic (QUIC, gaming, VoIP)SOCKS5Only SOCKS5 can carry UDP datagrams

If none of the HTTPS-specific reasons apply to you, plain HTTP or SOCKS5 is the simpler path. Throughput is identical once the handshake completes — the TLS overhead only adds latency on connection setup, not on sustained data transfer. For a full comparison of the two plaintext options, see HTTP vs SOCKS5 — which to pick.

HTTPS proxies and sticky sessions

Sticky sessions work identically over HTTPS proxies. Append -session-XXXX to your username and all requests sharing that session token are pinned to the same mobile device exit IP for the duration of the session TTL. This is the correct mode for any stateful flow — logins, multi-step checkouts, account actions — where rotating the IP mid-session would look like account hijacking to the target site. Read sticky sessions explained to understand the TTL mechanics, and see sticky session glossary entry for a quick definition.

Per-client controls: auth, IP allowlist, and quotas

Everything you can configure on an HTTP or SOCKS5 proxy client applies equally to HTTPS proxy clients: username/password authentication, IP allowlist (restrict which source IPs may use the proxy), domain allow/deny lists, bandwidth quotas, expiry timestamps and thread (concurrency) limits. These controls live in the panel under Proxy Clients. See proxy clients per-customer auth, IP allow/deny lists and quota limits per client for details.

You can also verify whether your HTTPS proxy is serving the correct IP using the proxy checker tool, or confirm the exit IP seen by external sites with What is my IP.

Security considerations

A few things worth keeping in mind:

What's next

Frequently asked questions

What is an HTTPS proxy and how is it different from an HTTP proxy?
An HTTPS proxy wraps the client-to-proxy connection in TLS, so your proxy credentials and the CONNECT metadata travel encrypted. An HTTP proxy sends those in cleartext. The encryption only covers the first hop — the proxy-to-target traffic is governed separately by whether the target site itself uses HTTPS.
Do I need to install a certificate to use an HTTPS proxy on Nodetonet?
No. Nodetonet uses real Let's Encrypt certificates on your subdomain, so every modern client trusts them out of the box. You never need to install a custom CA certificate or use --proxy-insecure flags. Just point your client at the subdomain hostname and it works.
What is SNI and why does it matter for proxies?
SNI (Server Name Indication) is a TLS extension that carries the target hostname in cleartext inside the ClientHello message, before the encrypted handshake begins. Proxy edges use it to route incoming TLS connections to the correct tunnel without needing a unique IP per customer. You must always connect using the hostname the panel gave you — raw IP connections carry no SNI and will fail.
Can I use sticky sessions with HTTPS proxies?
Yes. Append -session-XXXX to your proxy username and all requests sharing that session token pin to the same mobile exit IP for the session TTL. This works identically over HTTP, HTTPS and SOCKS5 proxy modes. See the sticky sessions guide for details on TTL and session naming.
Why does my HTTPS proxy connection fail when I use the raw IP address?
The TLS certificate is issued for your subdomain hostname (for example sub42.nodetonet.com), not for the edge IP. When you connect via raw IP, the TLS ClientHello carries no SNI, the edge cannot select the correct certificate, and the handshake fails. Always use the subdomain hostname the panel assigned you.
Does HTTPS proxy mode slow down my connection compared to HTTP?
Only negligibly, and only at connection setup. TLS handshake adds a small round-trip before data flows, but once established the TLS overhead on sustained throughput is minimal on modern hardware. For long-lived connections or keep-alive reuse this overhead is amortised across many requests.
When should I use HTTPS proxy instead of SOCKS5?
Use HTTPS proxy when your client explicitly requires a TLS-encrypted proxy connection — common with enterprise SDKs, PAC-file-based browser policies, or environments where network middleboxes inspect plaintext proxy traffic. Use SOCKS5 for non-HTTP protocols, raw TCP/UDP, or when client simplicity matters more than encrypted proxy transport. Read our HTTP vs SOCKS5 guide for a full comparison.
Is the SNI hostname visible to a network observer?
Yes. SNI is sent in cleartext in the TLS ClientHello before the handshake encrypts anything, so your proxy subdomain (for example sub42.nodetonet.com) is visible to a passive observer on the path. This is a standard property of TLS 1.2 and 1.3. If hiding the proxy hostname is a requirement, wrap the connection in an additional tunnel layer.
N

Nodetonet Team

Building Nodetonet — a prepaid proxy + tunneling platform that replaces ngrok, Cloudflared and a residential proxy provider with a single panel.

Related posts