Configuring Let’s Encrypt SSL Cert for Apache on Ubuntu 18.04
Prerequisites
You should be using a non-root user with sudo privileges.
You should also have Apache already installed and serving web pages before continuing with this guide. Please see Installing Apache on Ubuntu 18.04.
1. Install Let’s Encrypt client (Certbot)
UPDATE FEB 2019: This article has been updated to reflect Let’s Encrypt’s end of TLS-SNI-01 support.
Let’s begin by updating the package lists and installing software-properties-common. Commands separated by && will run in succession.
sudo apt-get update && sudo apt-get install software-properties-commonNow add the repositories universe and certbot.
sudo add-apt-repository universe && sudo add-apt-repository ppa:certbot/certbotPress ENTER if prompted.
Update the package lists again and install certbot for Apache. This is the Let’s Encrypt client.
sudo apt-get update && sudo apt-get install certbot python-certbot-apachePress y and ENTER when prompted to continue.
2. Get an SSL Certificate
We will now obtain a cert for our test domain example.com. Certbot has an Apache plugin, which automates the certificate installation.
Enter an email address where you can be contacted in case of urgent renewal and security notices.
Press a and ENTER to agree to the Terms of Service.
Press n and ENTER to not share your email address with EFF.
If you have multiple domains already configured on your server, you will see a list of them here. In this example, we only have one domain example.com and its www. prefix.
Select option 1 if you don’t want to use the www. prefix in your website address, otherwise select option 2.
Press 2 and ENTER to redirect all traffic to HTTPS.
You’re done!
3. Test SSL
You can now go to ssllabs.com/ssltest/ and run an SSL test on your domain.
A successful test should receive an A rating.

4. Auto Renewal
As Let’s Encrypt certs expire after 90 days, they need to be checked for renewal periodically. Certbot will automatically run twice a day and renew any certificate that is within thirty days of expiration.
To test that this renewal process is working correctly, you can run:
Last updated
Was this helpful?