$linuxjunkies
>

TLS-SNI

also: Server Name Indication, SNI

TLS Server Name Indication (SNI) is a TLS extension that allows a client to specify the hostname it wants to connect to during the SSL/TLS handshake, enabling a single server with one IP address to host multiple SSL certificates for different domains.

TLS-SNI solves the problem of hosting multiple HTTPS websites on one IP address. Traditionally, a server needed a unique IP for each SSL certificate. SNI sends the requested hostname in plaintext during the initial TLS handshake, before encryption, so the server knows which certificate to present.

For example, a web server at 192.168.1.100 can host both example.com and test.org with different certificates. When a client connects, it sends "example.com" in the SNI extension, and the server responds with the correct certificate.

SNI is now nearly universal for HTTPS. However, the hostname is sent in plaintext, which means network observers can see which domain you're visiting—this is why some privacy-focused tools use techniques like DNS-over-HTTPS or VPNs to hide SNI data.

Related terms