Back to blog

Creating and Enabling SSL Certificates with Let's Encrypt on Apache and Nginx Servers

Published at:

SSL (Secure Sockets Layer) certificates are crucial for securing web communications by encrypting data between the server and the client. Let's Encrypt provides free SSL certificates, making it accessible for website owners to secure their sites. In this guide, we'll walk through the process of creating and properly enabling SSL certificates with Let's Encrypt on both Apache and Nginx servers.

Prerequisites

Before proceeding, ensure you have the following:

  • A domain name pointed to your server's IP address
  • SSH access to your server
  • Administrative privileges to install packages and modify server configurations

Step 1: Installing Certbot

Certbot is a tool provided by Let's Encrypt for managing SSL certificates. Install Certbot on your server using the following commands:

For Ubuntu/Debian (Apache/Nginx):

sudo apt update
sudo apt install certbot

For CentOS/RHEL (Apache/Nginx):

sudo yum install epel-release
sudo yum install certbot

Step 2: Generating SSL Certificates

For Apache:

Run the following command to generate SSL certificates for your domain:

sudo certbot --apache -d your_domain.com

Follow the prompts to specify whether to redirect HTTP traffic to HTTPS and enter your email address for renewal notifications.

For Nginx:

Run the following command to generate SSL certificates for your domain:

sudo certbot --nginx -d your_domain.com

Follow the prompts to specify whether to redirect HTTP traffic to HTTPS and enter your email address for renewal notifications.

Step 3: Verifying SSL Configuration

Once Certbot successfully generates SSL certificates, it will automatically configure your Apache or Nginx server to use SSL. You can verify the configuration using the following commands:

For Apache:

sudo apache2ctl configtest

For Nginx:

sudo nginx -t

Step 4: Automatic Renewal Setup

Let's Encrypt SSL certificates expire after 90 days. Set up automatic renewal to ensure your certificates remain valid. Certbot automatically adds a cron job for renewal. You can verify it using:

sudo crontab -e

Step 5: Reloading Server Configuration

After setting up automatic renewal, reload your server configuration to apply the changes:

For Apache:

sudo systemctl reload apache2

For Nginx:

sudo systemctl reload nginx

Conclusion

Enabling SSL certificates with Let's Encrypt on Apache and Nginx servers is essential for securing your website and protecting sensitive data. By following these steps, you can create and properly enable SSL certificates, ensuring encrypted communication between your server and clients. Remember to regularly check certificate expiration and renew them before they expire to maintain uninterrupted HTTPS connectivity.