Server Name Indication works in Chrome 6+, Edge 12+, Firefox 2+, Safari 2.1+, Opera 9+, and Samsung Internet. Learn SNI browser support and TLS quirks.

Prince Dewani
May 2, 2026
Server Name Indication (SNI) is a TLS extension defined in RFC 6066 that tells the server which hostname the client wants during the TLS handshake. It works in Chrome 6+, Edge 12+, Firefox 2+, Safari 2.1+, iOS Safari 4+, Opera 9+, Samsung Internet, and Internet Explorer 7+ on Windows Vista, while Internet Explorer on Windows XP never added it.
This guide covers what SNI is, the browsers that support it, how it works, known issues, and how to check support.
SNI is an extension to the Transport Layer Security (TLS) protocol that lets a client include the destination hostname inside the very first ClientHello message. It is defined by the IETF in RFC 6066, section 3, and lets a single IP address host many HTTPS sites with separate certificates.
SNI is universally supported in modern browsers. Every desktop and mobile browser shipped in the last decade enables it by default, and only Internet Explorer on Windows XP and the stock Android Browser before Android 3.0 never added it.
Chrome supports SNI by default from Chrome 6 on Windows XP, from Chrome 5.0.342.0 on macOS 10.5.7, and from Chrome 6 on every later Windows, macOS, Linux, and ChromeOS release. Chrome for Android supports SNI on Android 3.0 and later.
Microsoft Edge supports SNI by default from Edge 12 on Windows 10, and from Edge 79 on Windows 7, 8, 8.1, 10, 11, macOS, and Linux through the Chromium-based release. Every Edge build ships with SNI on, with no flag required.
Firefox supports SNI by default from Firefox 2 on Windows, macOS, and Linux. Firefox for Android supports it on every Android release the browser still ships on. Mozilla added SNI in the early Gecko TLS stack and has never disabled it.
Safari supports SNI by default from Safari 2.1 on macOS 10.5.6 and later. Safari on iOS supports SNI from iOS 4 onwards. Older Safari builds on macOS 10.5.5 or earlier do not support SNI. Safari on Windows Vista and later also supported it before the Windows port was retired.
Opera supports SNI from Opera 8 on Windows, macOS, and Linux when TLS 1.1 is enabled, and by default from Opera 9 on. Modern Chromium-based Opera builds ship with SNI on. Opera Mini and Opera Mobile both support SNI on every supported Android and iOS release.
Samsung Internet supports SNI by default in every shipped version, since the browser is built on Chromium and inherits Chromium's TLS stack. Galaxy phones and tablets running Samsung Internet 1.0 and later all negotiate SNI with no user setup required.
The stock Android Browser supports SNI from Android 3.0 (Honeycomb) on. Android 2.3 (Gingerbread) and earlier do not support SNI in the default browser. Chrome for Android, which replaces the stock browser on Android 4.4 and later, supports SNI on every release.
Internet Explorer 7 and later support SNI on Windows Vista, Windows 7, Windows 8, and Windows 8.1. No version of Internet Explorer on Windows XP supports SNI. This is the most cited compatibility gap, since IE 6 and IE 8 on XP fall back to a single-certificate connection. Internet Explorer 11 still supports SNI on Windows 7 and later.
Note: SNI breaks across legacy browsers, corporate proxies, and stripped middleboxes. Test it on real browsers and OS with TestMu AI. Try TestMu AI free!
SNI piggybacks on the TLS ClientHello, the first message a client sends after the TCP or QUIC connection opens. Without SNI, the server has only the destination IP address to decide which certificate to present, so a single IP serving many HTTPS hostnames cannot match a domain to its certificate.
The same mechanism powers HTTP/2 and HTTP/3. QUIC reuses the TLS 1.3 ClientHello format, so the server_name extension travels in the QUIC Initial packet on HTTP/3 the same way it travels in a TCP segment on HTTP/2.
SNI is universal in modern browsers, but the design has real gaps that show up on legacy systems and on networks that inspect TLS metadata.
The fastest check is a public test page that requires SNI. If the page loads without a certificate warning, the browser sent the server_name extension. For deeper checks, DevTools and OpenSSL each show what the client put on the wire.
The OpenSSL command for step 3 looks like this. Run it from any machine with the openssl binary installed.
# Probe a server with the server_name extension using OpenSSL.
# A successful run prints the certificate the server selected for that hostname.
openssl s_client -connect example.com:443 -servername example.com -tls1_2 < /dev/null
# Drop the -servername flag and re-run on the same IP.
# If the second run returns a different default certificate,
# the server is using SNI and your client sent server_name correctly.
openssl s_client -connect example.com:443 -tls1_2 < /dev/nullIf both runs return the same certificate, the host is on its own IP and SNI is not in play. If the runs differ, the server is virtual hosting and the client must keep sending server_name.
All SNI version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance