TLS & Zertifikate in Contao konfigurieren
TLS/SSL-Zertifikate in Contao aktivieren — Apache VirtualHost mit Let's Encrypt, HTTPS-Redirect und Website-Root-Konfiguration. Mit Verifizierung und häufigen Fehlern.
TLS & Zertifikate in Contao
TLS-Zertifikate verschlüsseln die gesamte Datenübertragung zwischen Browser und Server. Ohne TLS werden Passwörter, Formulardaten und Session-Cookies im Klartext übertragen — ein leichtes Ziel für Man-in-the-Middle-Angriffe. Moderne Konfiguration bedeutet TLS 1.2+ mit starken Cipher-Suites und automatischer Zertifikatserneuerung. Im Wolf-Agents Web Security Check fließen TLS-Konfiguration und Zertifikatsgültigkeit mit 4 von 166 Punkten ein.
TLS wird auf Server-Ebene konfiguriert — nicht in Contao selbst. In Contao hinterlegen Sie unter Einstellungen → Website-Root die Domain mit https://-Prefix. Auf Apache-Servern konfigurieren Sie TLS in der VirtualHost-Datei, auf Shared Hosting über das Provider-Panel. Entscheidend ist, dass Contao weiß, dass es hinter HTTPS läuft, damit alle generierten URLs, Canonical-Tags und Sitemap-Einträge korrekt sind.
Der Wolf-Agents Web Security Check prüft Ihr TLS-Zertifikat auf Gültigkeit, Ablaufdatum, Cipher-Suites und Protokollversionen. Abgelaufene Zertifikate oder veraltete Protokolle (TLS 1.0/1.1) führen zu Punktabzügen.
TLS-Konfiguration für Contao
Die TLS-Konfiguration erfolgt in der Apache VirtualHost-Datei. Let's Encrypt bietet kostenlose Zertifikate mit automatischer Erneuerung. Nach der Server-Konfiguration müssen Sie in Contao den Website-Root auf HTTPS umstellen und den Application-Cache leeren, damit alle internen Links korrekt generiert werden.
# Apache VirtualHost — Let's Encrypt TLS-Zertifikat
<VirtualHost *:443>
ServerName ihre-domain.de
ServerAlias www.ihre-domain.de
DocumentRoot /var/www/contao/public
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/ihre-domain.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/ihre-domain.de/privkey.pem
# Moderne TLS-Konfiguration (Mozilla Intermediate)
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
# OCSP Stapling für schnellere Handshakes
SSLUseStapling on
SSLStaplingCache "shmcb:/var/run/ocsp(128000)"
</VirtualHost>
# HTTP → HTTPS Redirect
<VirtualHost *:80>
ServerName ihre-domain.de
Redirect permanent / https://ihre-domain.de/
</VirtualHost>
Auf Shared Hosting ohne Zugriff auf die VirtualHost-Konfiguration nutzen Sie den HTTPS-Redirect in der .htaccess. Die meisten Hoster bieten Let's Encrypt-Zertifikate über ihr Control Panel an (Plesk, cPanel, ISPConfig).
# public/.htaccess — HTTPS erzwingen (Shared Hosting)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
# Contao Website-Root auf HTTPS umstellen:
# Backend → System → Einstellungen → Website-Root
# Domain: https://ihre-domain.de
# Let's Encrypt Zertifikat einrichten:
# certbot --apache -d ihre-domain.de -d www.ihre-domain.de
# Auto-Renewal: systemctl enable certbot.timer Nach der Umstellung auf HTTPS: vendor/bin/contao-console cache:clear --env=prod. Contao cached URLs und Sitemap-Einträge.
Verifizierung
Prüfen Sie nach der TLS-Konfiguration mehrere Aspekte: Ist das Zertifikat gültig? Werden nur moderne Protokolle akzeptiert? Funktioniert der HTTPS-Redirect korrekt? Generiert Contao alle URLs mit https://? Testen Sie die Sitemap und die Canonical-Tags in den Seitenquellen.
# 1. TLS-Protokoll und Cipher prüfen
openssl s_client -connect ihre-domain.de:443 -tls1_2 < /dev/null 2>/dev/null | grep "Protocol\|Cipher"
# Erwartete Ausgabe:
# Protocol : TLSv1.2
# Cipher : ECDHE-RSA-AES256-GCM-SHA384
# 2. Zertifikat-Ablaufdatum prüfen
echo | openssl s_client -connect ihre-domain.de:443 2>/dev/null | openssl x509 -noout -dates
# notAfter=Jun 28 00:00:00 2026 GMT
# 3. HTTPS-Redirect testen
curl -sI http://ihre-domain.de | head -3
# HTTP/1.1 301 Moved Permanently
# Location: https://ihre-domain.de/
# 4. Cache leeren nach HTTPS-Umstellung
vendor/bin/contao-console cache:clear --env=prod
# 5. Wolf-Agents Web Security Check: TLS-Prüfung (4 Punkte)
Prüfen Sie zusätzlich die Contao-Sitemap unter /sitemap.xml — alle URLs müssen mit https:// beginnen. Nutzen Sie den Wolf-Agents Web Security Check für eine vollständige TLS-Analyse inklusive Cipher-Suite-Bewertung.
Häufige Fehler bei TLS in Contao
Website Root ohne HTTPS konfiguriert
Im Contao-Backend muss die Domain unter Website-Root mit https:// hinterlegt sein. Ohne HTTPS-Prefix generiert Contao alle internen Links, Sitemap-URLs und Canonical-Tags mit http:// — das führt zu Mixed-Content-Warnungen und doppelter Indexierung.
Mixed Content nach HTTPS-Migration
Hartcodierte http://-URLs in Content-Elementen, Insert-Tags oder Templates verursachen Mixed-Content-Warnungen. Nutzen Sie die Contao-Datenbanksuche, um alle HTTP-URLs auf HTTPS umzustellen. Prüfen Sie auch benutzerdefinierte Templates und CSS-Dateien.
Let's Encrypt Renewal fehlgeschlagen
Certbot benötigt Port 80 für die HTTP-01-Challenge. Wenn der Redirect zu aggressiv ist oder eine WAF den ACME-Pfad blockiert, schlägt die Erneuerung fehl. Prüfen Sie mit certbot renew --dry-run und stellen Sie sicher, dass /.well-known/acme-challenge/ erreichbar ist.
contao-console cache:clear vergessen
Nach der Umstellung von HTTP auf HTTPS muss der Contao-Cache geleert werden: vendor/bin/contao-console cache:clear --env=prod. Ohne Cache-Invalidierung liefert Contao weiterhin HTTP-URLs in der Sitemap und Navigation.
Compliance-Relevanz
Verschlüsselte Datenübertragung ist die Grundvoraussetzung für jede Compliance-Anforderung. Ohne TLS ist keine DSGVO-konforme Verarbeitung personenbezogener Daten möglich — Kontaktformulare, Login-Seiten und E-Commerce-Funktionen erfordern zwingend HTTPS.
Wie steht Ihre Domain bei TLS & Zertifikate?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.