Configuring Let's Encrypt with Apache on Ubuntu Bionic
- Let's-Encrypt
- Apache
- Ubuntu-Bionic
- SSL-certificates
Let’s Encrypt is a certificate authority providing free SSL certificates. The creation, validation, and installation are automated with Certbot — all major browsers trust certificates issued by Let’s Encrypt.
In this tutorial, you will discover how to secure your Apache web server on a Scaleway Instance running Ubuntu Linux. We will walk you through the process of setting up a website on Apache and obtaining a Let’s Encrypt SSL certificate using Certbot. Let’s dive in and make your web presence safer and more trustworthy.
Before you startLink to this anchor
To complete the actions presented below, you must have:
- A Scaleway account logged into the console
- Owner status or IAM permissions allowing you to perform actions in the intended Organization
- An SSH key
- An Instance
- A domain name pointing towards your Instance’s IP address (via an A or AAAA record)
sudo
privileges or access to the root user
Installing ApacheLink to this anchor
-
Connect to your Instance via SSH, and update the software already installed:
apt updateapt upgrade -y -
Install the Apache web server:
apt install apache2 -
Create a directory for the website. In this tutorial, we use
myweb.example.com
. Replace it with your domain name whenever you see it:mkdir -p /var/www/html/myweb.example.com/public_html -
Create an index page for the website by running the following command:
nano /var/www/html/myweb.example.com/public_html/index.htmlThen copy the following content into the file, save it, and exit nano:
<html><head><title>myweb.example.com</title></head><body><h1>New Website</h1><p>This is the new website of myweb.exaple.com</p></body></html> -
Create a configuration file for the website, by making a copy of the default configuration:
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/myweb.example.com.conf -
Open the file in a text editor:
nano /etc/apache2/sites-available/myweb.example.com.confE dit the following lines to match your configuration, add them to the file, save i, and exit the editor:
ServerAdmin webmaster@myweb.example.comServerName myweb.example.comServerAlias www.myweb.example.comDocumentRoot /var/www/html/myweb.example.com/public_htmlOnce edited the file should look like this example:
-
Activate the new site:
a2ensite myweb.example.com -
Reload the Apache configuration to enable the new site:
systemctl reload apache2.service
Installing CertbotLink to this anchor
Install Certbot via apt:
apt install certbot python3-certbot-apache -y
Running CertbotLink to this anchor
-
Run Certbot to request a certificate for the domain name:
certbot --apacheCertbot will ask you a series of questions:
- First, Certbot asks for your email address. Enter it and press
Enter
on your keyboard. - You will then be asked to agree to the terms of service. Do so by pressing
Y
. - Decide if you want to share your email address with the Electronic Frontier Foundation (EFF). Press
Y
for yes orN
for no. - Next, you will be asked for which domains you want to activate SSL. Select the appropriate numbers separated by commas and/or spaces, or leave input blank to select all options shown.
- Certbot asks if all traffic should be forced to HTTPS. Type
1
for no or2
for yes. - The certificate is requested and the following message appears once it has been obtained:
Congratulations! You have successfully enabled https://myweb.example.comYou should test your configuration at:https://www.ssllabs.com/ssltest/analyze.html?d=myweb.example.com
- First, Certbot asks for your email address. Enter it and press
-
Verify the certificate by opening your site in a web browser:
The small padlock icon indicates that the connection to your Instance is now encrypted.