Logo

How to Configure SSL for Apache on Ubuntu 22.04

Aug 19, 2023

Configuring OpenSSL SSL for Apache on Ubuntu 22.04 involves creating a self-signed SSL certificate and configuring Apache to use it. Here's a step-by-step guide:

Step 1 : Install OpenSSL (if not already installed)

Most likely, OpenSSL is already installed on your Ubuntu 22.04 system. To verify, run:

openssl version

If it's not installed, you can install it using:

sudo apt update
sudo apt install openssl

Step 2 : Generate a Self-Signed SSL Certificate

For testing or development purposes, you can generate a self-signed SSL certificate. For production use, you would purchase a certificate from a trusted Certificate Authority (CA).

Generate a self-signed certificate and private key:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/apache-selfsigned.key -out /etc/ssl/certs/apache-selfsigned.crt

This command will create a self-signed certificate valid for 365 days and store the private key and certificate in the specified locations.

Step 3 : Configure Apache to Use the SSL Certificate

Create a new Apache virtual host configuration file for SSL

sudo nano /etc/apache2/sites-available/ssl-example.conf

Add the following lines to the configuration file, replacing example.com with your domain name or server's IP address:

<VirtualHost *:443>
    ServerAdmin webmaster@example.com
    ServerName example.com


    DocumentRoot /var/www/html


    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key


    # Additional SSL configuration (optional)


    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Save the file and exit the text editor.

Step 4 : Enable SSL and Restart Apache

Enable the SSL module and the site configuration:

sudo a2enmod ssl
sudo a2ensite ssl-example

Step 5 : Test Apache Configuration

To check if your Apache configuration is correct and there are no syntax errors, you can use the apachectl command with the -t flag. Open a terminal and run:

sudo apachectl configtest

Step 6 : Then, restart Apache to apply the changes:

sudo systemctl restart apache2

Step 7 : Test SSL

Visit your website using HTTPS (e.g., https://example.com) in a web browser to verify that the SSL certificate is working correctly.

Your Apache server is now configured with SSL using a self-signed certificate. For production use, consider obtaining a valid SSL certificate from a trusted Certificate Authority (CA) for better security and trustworthiness.

Recommended