SSL Explained

Secure Sockets Layer (SSL) is an encryption-based Internet security protocol. It was first developed by Netscape in 1995 for the purpose of ensuring privacy, authentication, and data integrity in Internet communications. SSL is the predecessor to the modern TLS encryption used today.

A crucial part of the web browsing experience, SSL is used for securing data transfer, logins, credit card transactions, and other personal information. It can provide a private "connection" between two parties and ensure the data integrity during transfer.

Importance of SSL

In the world of the Internet where hackers and fraudsters are trying to get your sensitive information, SSL assists in protecting your data from being intercepted by unwanted parties. It is significantly important for websites that store or process sensitive data like IDs, passwords, credit card numbers, or personal information.

It also helps in building trust with your users, especially if you run an e-commerce website or a service that requires users to register with personal information. A visible SSL certificate tells your users that their data will be kept safe and won't be shared with anyone.

How SSL Works

SSL operates by establishing an encrypted link between a web server (website) and a client (web browser). This process is known as an "SSL Handshake" and it happens instantaneously.

The SSL Handshake involves several steps:

  1. The browser or server trying to connect to the website will first request the web server identify itself.
  2. The web server sends its SSL certificate to the web browser/server.
  3. The browser or server checks to see if it trusts the SSL certificate. If so, it sends a message to the web server.
  4. The web server sends back a digitally signed acknowledgement to start an SSL encrypted session.
  5. Encrypted data is shared between the browser/server and the web server.

You can use the openssl command to check the SSL certificate information from your terminal.

Setting Up SSL on Your Linux Server

To set up SSL on your Linux server, you will typically need to go through the following steps:

  1. Buy an SSL certificate: You need to purchase an SSL certificate from a trusted certificate authority.
  2. Install the certificate: After you've bought your certificate, you will need to install it on your server. This process will vary depending on your web server software (for example, Apache or Nginx).
  3. Update your site to use HTTPS: After the certificate is installed, you will need to update your site to use HTTPS, ensuring that users accessing the site are doing so over a secure connection.

For example, here is a simplified example of how to install an SSL certificate on an Apache server:

sudo a2enmod ssl
sudo service apache2 restart
sudo mkdir /etc/apache2/ssl
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Then, update the Apache configuration file to reference these files.

Typical Problems with SSL

There are several common issues that can occur with SSL certificates:

  • Expired SSL certificates: SSL certificates have a lifespan. When they expire, they need to be renewed by the certificate authority that issued them.
  • Missing intermediate certificates: For a browser to trust an SSL certificate, it must trust the entire chain of certificates leading up to it. If one of these is missing, it can cause an error.
  • Mismatched domain names: The domain name on the SSL certificate must match the domain name of the website. If these don't match, it can cause an error.


SSL is a critical component of Internet security and is essential for protecting sensitive information as it travels across the world's computer networks. It's not just for ecommerce sites, but for any website that wants to securely transmit data, including personal details and credit card details. Understanding what SSL is and how it works is the first step to making sure your site is secure.

Except where otherwise noted, content on this site is licensed under a CC BY-SA 4.0 license CC BY SA