![]() |
VOOZH | about |
All that a server name is is the computer's name. Unless the server hosts a single domain and the server name is the same as the domain name, this name is not displayed to end users for web servers. An addition to the Transport Layer Security computer networking protocol is called Server Name Indication, which enables the client to provide the hostname it is attempting to connect to at the outset of the handshaking procedure.
Server Name Indication (SNI) is a TLS protocol addon. At the beginning of the TLS handshake, it enables a client or browser to specify the hostname it is attempting to connect to. As a result, the server can display several certificates on the same port and IP address.
Since IP addresses are a limited resource, SNI is significant in that it conserves them. Below are some of the reasons to use SNI:
The hostname in SNI refers to the domain name or IP address of the server that a client wants to communicate with securely over HTTPS. A device that is connected to a network is identified by its hostname. A domain name, or the name of a website, is a kind of hostname in the context of the Internet. Both exist independently of the IP address linked to the domain name.
A virtual hostname in SNI refers to the hostname provided by a client during the SSL/TLS handshake to indicate the server it is trying to connect to when multiple virtual hosts are hosted on the same IP address and port using name-based virtual hosting. A virtual hostname is a hostname that is hosted on a server with other hostnames and lacks its own IP address. Similar to virtual reality, which only exists digitally and not in the real world, it is "virtual" in that it lacks a specific physical server.
The Transport Layer Security (TLS) protocol is used to establish secure and encrypted connections between a client and a server over the internet. The Server Name Indication (SNI) extension is a part of the TLS protocol that allows a client to specify the hostname of the server it is trying to connect to during the SSL/TLS handshake.
A web server is frequently in charge of several hostnames, also known as domain names (the names of websites that are readable by humans). In the event that the websites adopt HTTPS, each hostname will have a unique SSL certificate.The issue is that one server's hostnames are all assigned the same IP address. This is not an issue with HTTP, as the client will specify the website it is attempting to access in an HTTP request as soon as a TCP connection is established.However, HTTPS encrypts HTTP messages; it does not replace HTTP with another protocol. Instead, it requires a TLS handshake before the HTTP discussion can start. Therefore, without SNI, the client cannot tell the server whose hostname they are interacting with. Consequently, the server can generate the SSL certificate for an incorrect hostname. The client browser gives an error and typically closes the connection if the name on the SSL certificate does not match the name the client is attempting to access.In order for the TLS process to reach the correct domain name and obtain the correct SSL certificate, SNI adds the domain name to the TLS handshake process. This allows the remainder of the TLS handshake to proceed normally.
Below are the mentioned steps that demonstrates the working of Server Name Indication.
The TLS (Transport Layer Security) handshake between the client and server is started by the client. The client communicates with the server by way of a Client Welcome message during this phase.
A list of supported TLS protocol iterations is included in the Client Welcome message, along with a nonce, which is a random number. Also, it contains a signal that the client is compatible with the SNI extension.
With the Client Welcome message, the client will include the hostname of the server it wants to connect to if it supports SNI.
If the server supports SNI, it responds with a Server Hello message. The requested hostname's SSL certificate, a nonce, and the TLS protocol version are all included in the Server Welcome message.
During the handshake phase, the client checks the SSL certificate that the server has provided. The client completes the TLS handshake procedure if the SSL certificate is legitimate and trusted.
The requested hostname is included in the HTTP Host header when the client sends an HTTPS request to the server. Due to its name-based virtual hosting configuration, this enables the server to decide which virtual host to serve.
The HTTPS request is processed by the server, which then provides the client with the proper response. SNI increases web hosting efficiency by allowing many HTTPS-enabled websites to be hosted on the same IP address and port.
Below are some of the Browsers that support SNI:
Encrypted SNI (ESNI) is an extension to the TLS protocol that encrypts the SNI information sent by the client during the TLS handshake. To protect user surfing data, encrypted server name indication (ESNI) is a necessary feature. It guarantees that eavesdropping third parties are unable to exploit the TLS handshake procedure to track the websites users visit. As its name suggests, ESNI does this by encrypting the TLS handshake's server name indication (SNI) section.
A single certificate with the wildcard character (*) in the domain name field is known as an SSL/TLS wildcard certificate. As a result, the certificate can protect numerous hosts or subdomain names that belong to the same base domain.
Like SANs, wildcards are an additional feature of SSL certificates. Purchasing a Wildcard SSL option is both economical and practical if your website includes multiple subdomains, such as new.websitename.com and blog.websitename.com.
Each aspect and perspective on server name indication has been discussed in this article. You can use SNI for your projects and websites now that you understand what it is. Since SNI is a necessary expansion in the current web hosting environment, the majority of systems are compatible with it. As HTTPS has become the new Web standard, SNI makes it easier to switch from the antiquated HTTP protocol.