Securing an Apache server with Let's Encrypt on Ubuntu involves obtaining a free SSL/TLS certificate from Let's Encrypt using the Certbot tool and configuring Apache to use it. Here's a step-by-step guide on how to achieve this:
Step 1: Update and Install Certbot
First, update your package lists:
sudo apt update
Next, install Certbot for Apache:
sudo apt install certbot python3-certbot-apache
Step 2: Obtain a Let's Encrypt SSL/TLS Certificate
To obtain a Let's Encrypt certificate and automatically configure Apache to use it, run the following command:
sudo certbot --apache
-
Domain Selection:
You will be prompted to enter the domain names you want to secure. Enter them separated by spaces (e.g.,
example.com www.example.com
). - Email Address: You will be asked to provide an email address. This is important for account registration and to receive notifications about certificate expiration.
- Agree to Terms of Service: You must agree to the Let's Encrypt terms of service to proceed.
- Choose Redirect or No Redirect: You'll be asked if you want to redirect all HTTP traffic to HTTPS (this is recommended for better security). Select the option you prefer.
Certbot will handle the entire process, including verifying your domain, obtaining the certificate, and configuring Apache to use the certificate.
Step 3: Verify SSL/TLS Configuration
Once Certbot has configured Apache to use the certificate, restart Apache:
sudo systemctl restart apache2
Then, verify that the SSL/TLS certificate is correctly installed and your server is accessible via HTTPS:
-
Open your web browser and visit your domain:
https://example.com
(replaceexample.com
with your actual domain name). - Check if your browser indicates a secure connection (a padlock icon in the URL bar).
Step 4: Auto-Renew Certificates
Let's Encrypt certificates are valid for 90 days. Certbot can automatically renew your certificates when they approach expiration. Certbot installs a systemd timer that runs daily and attempts to renew any certificates close to expiry.
To test automatic renewal, you can run:
sudo certbot renew --dry-run
If the test run completes without errors, the renewal process is set up correctly.
Step 5: Keep Everything Up to Date
- Update Certbot: Regularly check for updates to Certbot and keep your packages up to date.
- Monitor Certificate Expiration: Certbot should handle automatic renewal, but keep an eye on your certificate expiration dates to ensure everything is working as expected.
That's it! Your Apache server should now be secured with a Let's Encrypt SSL/TLS certificate on Ubuntu.