Networking, Domains & DNS

How can we help?

Guides and technical documentation for your Server4You dedicated server or VPS.

Let's Encrypt with Apache

This guide explains how to install a free Let's Encrypt SSL certificate with Certbot on a Linux server running Apache (Debian, Ubuntu, AlmaLinux or Rocky Linux) and how to check the automatic renewal.

Prerequisites: Apache must be installed and running. The A record of your domain must point to your server's IP. Ports 80 and 443 must be open in the firewall.

Step 1: Install Certbot

Install Certbot and the Apache plugin via the package manager.

Debian / Ubuntu

Terminal
apt update apt install certbot python3-certbot-apache

AlmaLinux / Rocky Linux

Terminal
dnf install epel-release dnf install certbot python3-certbot-apache

Step 2: Enable the SSL module in Apache

On Debian/Ubuntu, enable the module with a2enmod; on AlmaLinux/Rocky Linux, install the mod_ssl package.
Terminal
# Debian / Ubuntu a2enmod ssl systemctl restart apache2 # AlmaLinux / Rocky Linux dnf install mod_ssl systemctl restart httpd

Step 3: Issue the certificate

Certbot issues the certificate and configures Apache automatically.

Replace your-domain.com with your actual domain name. Add further -d parameters for multiple domains:

Terminal
certbot --apache -d your-domain.com -d www.your-domain.com

On the first run, Certbot asks for an email address and for your agreement to the terms of service. It then sets up the redirect from HTTP to HTTPS automatically. If you do not want a redirect, add --no-redirect.

Step 4: Verify the installation

Test the Apache configuration and reload.
Terminal
apachectl configtest systemctl reload apache2 # AlmaLinux / Rocky Linux: systemctl reload httpd

Open your domain in a browser — you should see https:// and the padlock icon. For a detailed check you can use SSL Labs.

Step 5: Verify automatic renewal

Let's Encrypt certificates are currently valid for 90 days. Certbot renews them automatically — verify that the timer is active.
Terminal
systemctl status certbot.timer

Test automatic renewal with a dry run:

Terminal
certbot renew --dry-run

If --dry-run succeeds, automatic renewal is working correctly.

Manually renew the certificate

If a manual renewal is needed.
Terminal
certbot renew systemctl reload apache2 # AlmaLinux / Rocky Linux: systemctl reload httpd

Common error messages

ErrorCause & fix
Connection refused on port 80Port 80 is blocked by the firewall. Open it in iptables or nftables.
Could not reliably determine the server's fully qualified domain nameAdd ServerName your-domain.com to the Apache configuration and restart Apache.
DNS problem: NXDOMAINThe domain's A record does not point to this server. Check DNS and wait for propagation.
AH00526: Syntax errorCertbot modified the Apache config incorrectly. Check with apachectl configtest and fix manually.

Further Documentation

The full Certbot documentation is available on the official website.