Image2

Securing your website with SSL (secure sockets layer) is essential to protect user data and build trust. Configuring SSL on a Linux VPS involves a series of steps, including obtaining an SSL certificate, installing necessary software, and configuring your web server. This guide will walk you through the process.

Step 1: Purchase or Obtain an SSL Certificate

There are two main ways to obtain an SSL certificate:

  1. Purchase from a Certificate Authority (CA): Reputable CAs like DigiCert, GlobalSign, or Sectigo offer paid SSL certificates with varying levels of validation and trust.
  2. Use a Free SSL Certificate: Let’s Encrypt provides free SSL certificates, widely supported and automated for easy renewal.

Regardless of your choice, you’ll receive the necessary files to install SSL on your VPS: the certificate file and, if applicable, the CA bundle.

Step 2: Install Required Software

Most Linux-based VPS servers use Apache or Nginx as the web server. To enable SSL, ensure your server software and tools are installed and up to date. Using a VPS Linux server for your website gives you full control over configuration, security, and performance, making it an ideal choice for SSL installation and other advanced server management tasks.

For Apache:

sudo apt update

sudo apt install apache2

sudo a2enmod ssl

For Nginx:

sudo apt update

sudo apt install nginx

You may also need OpenSSL, a tool to manage SSL certificates:

sudo apt install openssl

Step 3: Generate a Certificate Signing Request (CSR)

A CSR is required to obtain an SSL certificate. It includes details like your domain name, company name, and location. Use OpenSSL to generate the CSR and private key:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

Image3

Follow the prompts to input your details. After this, you’ll have a .csr file (to send to the CA) and a .key file (to keep secure).

Step 4: Obtain and Download the Certificate

Once you submit the CSR to your chosen CA, they will validate your request and provide the certificate files. These files usually include:

  • The main certificate file (yourdomain.crt)
  • A CA bundle file (ca_bundle.crt)

For Let’s Encrypt, you can use Certbot, an automated tool:

sudo apt install certbot python3-certbot-apache  # For Apache

sudo apt install certbot python3-certbot-nginx   # For Nginx

Then, run Certbot to obtain and configure SSL:

sudo certbot –apache   # For Apache

sudo certbot –nginx    # For Nginx

Step 5: Configure Your Web Server

For Apache:

Edit your virtual host file to include SSL settings. Locate or create a file in /etc/apache2/sites-available/:

<VirtualHost *:443>

        ServerName yourdomain.com

        DocumentRoot /var/www/yourdomain

        SSLEngine on

        SSLCertificateFile /path/to/yourdomain.crt

    SSLCertificateKeyFile /path/to/yourdomain.key

    SSLCertificateChainFile /path/to/ca_bundle.crt

</VirtualHost>

Enable the site and restart Apache:

sudo a2ensite yourdomain.conf

sudo systemctl restart apache2

For Nginx:

Edit the configuration file for your site in /etc/nginx/sites-available/:

server {

        listen 443 ssl;

        server_name yourdomain.com;

        ssl_certificate /path/to/yourdomain.crt;

    ssl_certificate_key /path/to/yourdomain.key;

        root /var/www/yourdomain;

        index index.html;

}

Test the configuration and restart Nginx:

sudo nginx -t

sudo systemctl restart nginx

Step 6: Verify SSL Installation

Visit your website using https:// to ensure SSL is working.

Image1

 Use tools like SSL Labs to check for configuration issues.

Step 7: Automate SSL Renewal

For Let’s Encrypt, Certbot automates renewal:

sudo certbot renew –dry-run

Set up a cron job to run this command periodically. For other certificates, mark your calendar to renew before expiration.

Conclusion

Configuring SSL on a Linux VPS ensures your website is secure, reliable, and trusted by visitors. Whether you use Let’s Encrypt or a paid certificate, following these steps will give you a secure and professional web presence. Regular maintenance, including renewal and updates, ensures continued protection for your users.