Deutsch

Kostenloses Let's-Encrypt-SSL für Apache unter AlmaLinux 9

3 min
VPS/VDS-Hosting

Browser und Suchmaschinen erwarten HTTPS, und Let's Encrypt stellt Zertifikate kostenlos aus. Auf einem VPS Linux Infrawire mit AlmaLinux 9 kann Certbot das Zertifikat holen, die Apache-Konfiguration anpassen und es selbstständig erneuern. Dieselben Schritte gelten für Rocky Linux 9.

📋 Voraussetzungen

  • Ein AlmaLinux-9-VPS mit Root- oder sudo-Zugriff (IP und Passwort in Ihrem Kundenbereich).
  • Eine Domain example.com, deren A-Eintrag (und AAAA für IPv6) auf VPS_IP zeigt. Warten Sie zuerst die DNS-Verbreitung ab.
  • Apache (httpd), der die Website per HTTP auf Port 80 ausliefert.

1. Apache installieren und Firewall öffnen

Ist Apache noch nicht installiert, installieren und starten Sie ihn. Öffnen Sie dann HTTP und HTTPS in firewalld; Port 80 ist für die Let's-Encrypt-Validierung erforderlich.

Bash
dnf install -y httpd systemctl enable --now httpd firewall-cmd --permanent --add-service=http firewall-cmd --permanent --add-service=https firewall-cmd --reload firewall-cmd --list-services

2. Virtual Host für Ihre Domain anlegen

Certbot sucht einen ServerName, der zu Ihrer Domain passt, legen Sie also einen eigenen Virtual Host an.

Bash
mkdir -p /var/www/example.com/public_html echo "Hello" > /var/www/example.com/public_html/index.html

Erstellen Sie /etc/httpd/conf.d/example.com.conf:

Apache
1<VirtualHost *:80> 2 ServerName example.com 3 ServerAlias www.example.com 4 DocumentRoot /var/www/example.com/public_html 5</VirtualHost>

Prüfen Sie die Syntax und laden Sie neu:

Bash
apachectl configtest systemctl reload httpd

3. Certbot und mod_ssl installieren

Certbot stammt aus dem EPEL-Repository. mod_ssl liefert das Apache-TLS-Modul und ein Standardzertifikat, das httpd braucht, um auf Port 443 zu lauschen.

Bash
dnf install -y epel-release dnf install -y certbot python3-certbot-apache mod_ssl

4. Zertifikat anfordern

Starten Sie Certbot mit dem Apache-Plugin. Es validiert die Domain über HTTP, schreibt einen neuen Virtual Host *-le-ssl.conf und kann die Weiterleitung von HTTP auf HTTPS ergänzen.

Bash
certbot --apache -d example.com -d www.example.com

Geben Sie eine echte E-Mail-Adresse an (für Ablaufwarnungen), akzeptieren Sie die Bedingungen und wählen Sie auf Nachfrage die Weiterleitung. Jeder mit -d übergebene Name muss auf diesen Server zeigen, sonst scheitert die Validierung.

Ist SELinux im Modus enforcing (Standard), ist für ein normales Setup nichts Besonderes nötig. Deaktivieren Sie es nicht, um einen Fehler zu umgehen.

5. Automatische Erneuerung prüfen

Let's-Encrypt-Zertifikate gelten 90 Tage. Unter AlmaLinux 9 installiert das Paket einen systemd-Timer, der zweimal täglich läuft und nur Zertifikate erneuert, die bald ablaufen.

Bash
systemctl list-timers | grep certbot systemctl status certbot-renew.timer

Ist der Timer nicht aufgelistet, aktivieren Sie ihn:

Bash
systemctl enable --now certbot-renew.timer

Simulieren Sie eine Erneuerung, ohne das echte Zertifikat anzutasten:

Bash
certbot renew --dry-run

Die letzte Zeile sollte melden, dass alle simulierten Erneuerungen erfolgreich waren. Nach einer echten Erneuerung wird Apache automatisch neu geladen.

Überprüfung

Bash
certbot certificates curl -I https://example.com curl -I http://example.com

Der erste Befehl listet die Domains und das Ablaufdatum. Die HTTPS-Anfrage muss 200 liefern, die HTTP-Anfrage sollte mit 301 auf die HTTPS-Adresse antworten. Im Browser muss das Schloss ein gültiges, von Let's Encrypt ausgestelltes Zertifikat zeigen. Die ganze Kette sehen Sie mit openssl s_client -connect example.com:443 -servername example.com.

Fehlerbehebung

  • Challenge fehlgeschlagen oder Zeitüberschreitung bei der Validierung: Das DNS zeigt noch nicht auf den Server oder Port 80 ist blockiert. Prüfen Sie dig +short example.com, firewall-cmd --list-services und jede Firewall vor dem VPS.
  • Certbot findet keinen passenden Virtual Host: ServerName oder ServerAlias in /etc/httpd/conf.d/ stimmt nicht mit der übergebenen Domain überein. Korrigieren Sie das, führen Sie apachectl configtest aus und versuchen Sie es erneut. Alternativ nutzen Sie certbot certonly --apache und konfigurieren die Pfade selbst.
  • Zu viele Zertifikate oder fehlgeschlagene Validierungen (Rate Limit): Let's Encrypt begrenzt wiederholte Versuche. Testen Sie zuerst mit certbot --apache --dry-run und warten Sie vor einem neuen Versuch.
  • Seite nach der Installation auf Port 443 nicht erreichbar: HTTPS ist in firewalld nicht geöffnet oder httpd wurde nicht neu geladen. Führen Sie firewall-cmd --permanent --add-service=https, firewall-cmd --reload und systemctl restart httpd aus.

🔐 Ihre Apache-Seite unter AlmaLinux 9 liefert jetzt HTTPS aus und erneuert ihr Zertifikat selbstständig.

Bleiben Sie über die neuesten Angebote, Rabatte und Sonderaktionen informiert.

Aktionen ansehen

Wir verwenden Cookies

Wir verwenden Analyse-Cookies, um Ihre Erfahrung auf unserer Website zu verbessern. Es werden keine Daten an Dritte verkauft. Mehr erfahren Sie in unserer Datenschutzerklärung.