Linux Security

Certbot unter Debian 13 mit Apache2 installieren und Let's Encrypt SSL-Zertifikate einrichten

HTTPS ist heute Pflicht. Moderne Browser markieren unverschlüsselte Webseiten als unsicher, Suchmaschinen bevorzugen verschlüsselte Seiten und viele Webanwendungen setzen HTTPS inzwischen voraus.

3 min Lesezeit
Grafik: Certbot unter Debian 13 mit Apache2 einrichten

Mit Let's Encrypt und Certbot lässt sich unter Debian 13 innerhalb weniger Minuten ein kostenloses SSL-Zertifikat für Apache2 einrichten und automatisch verlängern.

In diesem Beitrag zeige ich Schritt für Schritt, wie du Certbot unter Debian 13 installierst und direkt mit Apache2 verwendest.


Voraussetzungen

Bevor du beginnst, sollten folgende Punkte erfüllt sein:

  • Debian 13 Server installiert
  • Apache2 läuft bereits
  • Eine Domain zeigt auf den Server
  • Port 80 und 443 sind erreichbar
  • Root- oder sudo-Zugriff vorhanden

Prüfen:

apache2 -v

oder

sudo systemctl status apache2

System aktualisieren

Zunächst das System auf den aktuellen Stand bringen:

sudo apt update
sudo apt upgrade -y

Certbot installieren

Unter Debian 13 befindet sich Certbot direkt in den Paketquellen.

Installation:

sudo apt install certbot python3-certbot-apache -y

Prüfen:

certbot --version

Beispiel:

certbot 3.x.x

Apache-Konfiguration prüfen

Vor der Zertifikatserstellung sollte Apache fehlerfrei laufen.

Konfiguration testen:

sudo apachectl configtest

Ausgabe:

Syntax OK

Anschließend Apache neu laden:

sudo systemctl reload apache2

VirtualHost kontrollieren

Für jede Domain sollte ein eigener VirtualHost vorhanden sein.

Beispiel:

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

Inhalt:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com

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

Site aktivieren:

sudo a2ensite example.com.conf
sudo systemctl reload apache2

Firewall prüfen

Falls UFW verwendet wird:

sudo ufw status

Erforderliche Freigaben:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Alternativ:

sudo ufw allow "Apache Full"

SSL-Zertifikat erstellen

Für eine Domain:

sudo certbot --apache -d example.com

Für mehrere Domains:

sudo certbot --apache \
-d example.com \
-d www.example.com

Beispiel einer erfolgreichen Ausstellung

Successfully received certificate.

Certificate is saved at:
/etc/letsencrypt/live/example.com/fullchain.pem

Key is saved at:
/etc/letsencrypt/live/example.com/privkey.pem

HTTPS-Weiterleitung aktivieren

Certbot fragt normalerweise:

Please choose whether or not to redirect HTTP traffic to HTTPS

Empfehlung:

2: Redirect

Dadurch werden Besucher automatisch auf HTTPS umgeleitet.


Zertifikate anzeigen

Installierte Zertifikate:

sudo certbot certificates

Beispiel:

Found the following certs:
  Certificate Name: example.com

Automatische Verlängerung testen

Let's Encrypt Zertifikate sind 90 Tage gültig.

Certbot richtet automatisch einen Timer ein.

Status prüfen:

sudo systemctl status certbot.timer

Beispiel:

Active: active (waiting)

Test der automatischen Verlängerung

Dry-Run durchführen:

sudo certbot renew --dry-run

Erfolgreiche Ausgabe:

Congratulations, all simulated renewals succeeded.

Certbot-Timer prüfen

Nächsten Ausführungszeitpunkt anzeigen:

systemctl list-timers | grep certbot

Zertifikat manuell verlängern

Normalerweise nicht notwendig:

sudo certbot renew

Zertifikat für weitere Domains hinzufügen

Später zusätzliche Domains einbinden:

sudo certbot --apache \
-d example.com \
-d www.example.com \
-d blog.example.com

Apache SSL-Konfiguration anzeigen

Nach erfolgreicher Installation erzeugt Certbot automatisch eine SSL-Konfiguration.

Beispiel:

<VirtualHost *:443>
    ServerName example.com

    SSLEngine on

    SSLCertificateFile
    /etc/letsencrypt/live/example.com/fullchain.pem

    SSLCertificateKeyFile
    /etc/letsencrypt/live/example.com/privkey.pem
</VirtualHost>

Zertifikat löschen

Vorhandene Zertifikate auflisten:

sudo certbot certificates

Löschen:

sudo certbot delete

Häufige Fehler

Timeout während der Validierung

Prüfen:

curl http://example.com

Firewall kontrollieren:

sudo ufw status

Port 80 bereits belegt

Prüfen:

sudo ss -tulpn | grep :80

Apache-Konfigurationsfehler

Test:

sudo apachectl configtest

DNS zeigt noch auf alten Server

Prüfen:

dig example.com

oder

host example.com

Sicherheitstipps

HSTS aktivieren

In der SSL-Konfiguration:

Header always set Strict-Transport-Security \
"max-age=31536000; includeSubDomains"

Modul aktivieren:

sudo a2enmod headers
sudo systemctl reload apache2

SSL-Konfiguration testen

Sehr empfehlenswert:

  • Qualys SSL Labs
  • Mozilla Observatory

Damit lassen sich Schwachstellen und veraltete TLS-Konfigurationen erkennen.


Mit Certbot und Let's Encrypt lässt sich unter Debian 13 innerhalb weniger Minuten eine sichere HTTPS-Verschlüsselung für Apache2 einrichten. Die Installation erfolgt direkt aus den Debian-Paketquellen, die Zertifikate werden automatisch verlängert und Certbot übernimmt auf Wunsch sogar die komplette Apache-Konfiguration inklusive HTTPS-Weiterleitung.

Gerade für Blogs, Firmenwebseiten, Webanwendungen oder interne Portale ist dies der schnellste und einfachste Weg zu einer modernen und sicheren TLS-Verschlüsselung.