Erweiterte Header für Apache konfigurieren
Schritt-für-Schritt: Origin-Agent-Cluster mit mod_headers, HTTPS-Redirect per RewriteRule, WWW-Normalisierung und veraltete Header entfernen — mit fertigen Apache-Konfigurationen.
Erweiterte Header auf Apache
Apache HTTP Server setzt Header mit dem Modul mod_headers und Redirects mit mod_rewrite. Beide Module sind auf den meisten Linux-Distributionen vorinstalliert und müssen nur aktiviert werden. Diese Anleitung zeigt vier Schritte: Origin-Agent-Cluster, HTTPS-Redirect (301), WWW-Normalisierung und veraltete Header entfernen.
Die Konfigurationen funktionieren sowohl in httpd.conf / VirtualHost-Blöcken als auch in .htaccess-Dateien — mit den jeweils notierten Einschränkungen. Prüfen Sie ob mod_headers aktiviert ist: a2enmod headers && systemctl restart apache2. Die erweiterten Header bringen 4 von 166 Punkten im Wolf-Agents Web Security Check.
Origin-Agent-Cluster setzen
In Apache wird Origin-Agent-Cluster: ?1 mit mod_headers gesetzt. Das Schlüsselwort always stellt sicher, dass der Header auch bei Fehlerantworten (4xx, 5xx) mitgesendet wird. Der Header isoliert die Seite in einem eigenen Browser-Prozess und verhindert Spectre-Seitenkanal-Angriffe.
# /etc/apache2/conf-available/security-headers.conf
# Modul aktivieren: sudo a2enmod headers
<IfModule mod_headers.c>
# Prozess-Isolation gegen Spectre (RFC 8941 Structured Header)
Header always set Origin-Agent-Cluster "?1"
# Aktivieren: sudo a2enconf security-headers && systemctl reload apache2
</IfModule> Vor der Konfiguration: sudo a2enmod headers && sudo a2enmod rewrite, dann sudo systemctl reload apache2. Ohne aktivierte Module werden die Direktiven still ignoriert.
HTTPS-Redirect (301) konfigurieren
Apache leitet HTTP-Anfragen mit mod_rewrite und dem Flag R=301 auf HTTPS um. Der VirtualHost-Block für Port 80 enthält ausschließlich den Redirect — keine Inhalte, keine anderen Direktiven. Das Flag L beendet die Regelverarbeitung nach dem Redirect.
# VirtualHost für HTTP → HTTPS Redirect
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
</IfModule>
</VirtualHost>
# Alternativ mit mod_alias (einfacher, kein mod_rewrite nötig):
# Redirect permanent / https://example.com Redirect permanent / https://example.com (mod_alias) eleganter als mod_rewrite. Bei kombinierten HTTP+WWW-Redirects ist mod_rewrite jedoch flexibler. WWW-Normalisierung einrichten
Die RewriteCond-Direktive prüft den HTTP_HOST auf das www.-Präfix. Der Capture-Group-Backreference %1 enthält den Domainnamen ohne www und wird in der Ziel-URL verwendet. Das Flag NC macht den Match case-insensitiv.
# WWW → non-WWW (in .htaccess oder VirtualHost)
<IfModule mod_rewrite.c>
RewriteEngine On
# www.example.com → example.com (301)
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301]
</IfModule>
# Kombiniert: HTTP + WWW → HTTPS non-WWW in zwei Schritten
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
</IfModule> example.com und www.example.com). Let's Encrypt: certbot --domains example.com,www.example.com. Ohne gültiges Zertifikat für die www-Variante schlägt die HTTPS-Verbindung fehl, bevor der Redirect greifen kann. Veraltete Header entfernen
Apache sendet standardmäßig einen Server-Header mit vollständiger Versionsnummer und Betriebssystem. ServerTokens Prod reduziert dies auf "Apache". Header unset X-Powered-By entfernt PHP-Versionsangaben. X-XSS-Protection darf nicht gesetzt werden — der Header wurde aus allen Browsern entfernt.
# /etc/apache2/conf-available/security.conf
# Server-Version minimieren (nur "Apache", keine Versionsnummer)
ServerTokens Prod
# Apache-Signatur aus Fehlerseiten entfernen
ServerSignature Off
# X-Powered-By entfernen (PHP etc.)
<IfModule mod_headers.c>
Header unset X-Powered-By
# X-XSS-Protection NICHT setzen — aus Browsern entfernt (2023)
# Header set X-XSS-Protection "1; mode=block" ← FALSCH!
</IfModule>
# Testen: apachectl configtest && systemctl reload apache2 Nach dem Reload: curl -sI https://example.com | grep -iE "(origin-agent|server|x-powered|x-xss)". Der Server-Header sollte nur "Apache" zeigen, X-Powered-By und X-XSS-Protection sollten fehlen.
Wie steht Ihre Domain bei Erweiterte Header?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.
Häufig gestellte Fragen
Wie setze ich Origin-Agent-Cluster in Apache?
Mit der Direktive Header always set Origin-Agent-Cluster "?1" im VirtualHost-Block oder in der .htaccess-Datei. Das Schlüsselwort always stellt sicher, dass der Header auch bei Fehlerantworten gesendet wird. Dafür muss das Modul mod_headers aktiviert sein: sudo a2enmod headers.
Welches Apache-Modul brauche ich für den HTTPS-Redirect?
mod_rewrite muss aktiviert sein (a2enmod rewrite). Alternativ können Sie bei Apache 2.4+ die Direktive Redirect 301 / https://example.com nutzen, was mod_alias erfordert — einfacher und empfohlen für unkomplizierte Redirects ohne RewriteConditions.
Was ist der Unterschied zwischen ServerTokens Prod und ServerSignature Off?
ServerTokens Prod begrenzt den Server-Header auf den Produktnamen (nur "Apache", ohne Version). ServerSignature Off entfernt die Apache-Signatur aus Fehlerseiten. Beide zusammen minimieren die preisgegebenen Technologie-Informationen. In httpd.conf, nicht in .htaccess setzen.
Kann ich die Konfiguration in .htaccess statt in httpd.conf schreiben?
Ja, aber mit Einschränkungen. mod_headers und mod_rewrite funktionieren in .htaccess, sofern AllowOverride All (oder AllowOverride FileInfo Headers) gesetzt ist. ServerTokens und ServerSignature können nur in httpd.conf oder einer Include-Datei gesetzt werden — nicht in .htaccess.
Wie kombiniere ich HTTP-zu-HTTPS und WWW-zu-non-WWW in einer Regel?
Mit zwei RewriteConds vor einer RewriteRule: Die erste Bedingung prüft auf HTTP, die zweite auf www. Eine einzelne RewriteRule kann jedoch nur einen Aspekt korrigieren. Besser: Zwei separate RewriteRule-Blöcke, die sequenziell ausgeführt werden. Apache verarbeitet Redirects korrekt auch bei zwei aufeinanderfolgenden 301s.
Wie verifizizierie ich die Header nach dem Apache-Neustart?
Mit curl -sI https://example.com | grep -i origin-agent-cluster prüfen Sie, ob der Header korrekt gesetzt wird. Für einen vollständigen Check aller Header: curl -sI https://example.com. Nach Konfigurationsänderungen immer apachectl configtest && systemctl reload apache2 ausführen.
Prüft der Wolf-Agents Scanner Apache-spezifische Header-Konfigurationen?
Der Scanner prüft die gesendeten HTTP-Header unabhängig vom Webserver. Er erkennt, ob Origin-Agent-Cluster korrekt gesetzt ist, ob HTTPS-Redirects permanent (301) sind und ob veraltete Header wie X-XSS-Protection fehlen. Der zugrunde liegende Server spielt dabei keine Rolle.