TLS & Zertifikate für Shopware 6
TLS auf Server-Ebene konfigurieren, Sales Channel Domains auf HTTPS setzen und Zertifikate mit Let's Encrypt automatisieren.
TLS & Zertifikate in Shopware 6
Transport Layer Security (TLS) verschlüsselt die Verbindung zwischen Browser und Server. Für Shopware-Shops mit Zahlungsverkehr ist TLS 1.2+ eine Pflichtanforderung durch PCI DSS 4.0 Requirement 4.2.1 — ohne gültiges TLS-Zertifikat dürfen keine Kartendaten übertragen werden. TLS ist mit 4 von 166 Punkten im Wolf-Agents Web Security Check bewertet.
TLS wird auf Server-Ebene (Nginx/Apache) konfiguriert, nicht in Shopware selbst. Shopware muss allerdings korrekt auf HTTPS konfiguriert sein: Die APP_URL in der .env muss mit https:// beginnen, und alle Sales Channel Domains in der Administration müssen das HTTPS-Protokoll verwenden. Fehlt diese Konfiguration, generiert Shopware HTTP-Links in E-Mails, Sitemaps, API-Responses und Canonical-URLs — selbst wenn der Server HTTPS erzwingt.
Besonders kritisch ist die Unterscheidung zwischen Self-Hosted und Shopware Cloud: Bei Self-Hosted sind Sie für die TLS-Konfiguration verantwortlich — Zertifikat, Cipher-Suites und OCSP Stapling. Bei Shopware Cloud übernimmt Shopware das TLS-Setup. In beiden Fällen muss die APP_URL korrekt auf HTTPS stehen. Der Wolf-Agents Web Security Scanner prüft automatisch TLS-Version, Zertifikatsgültigkeit und Cipher-Suite-Konfiguration Ihres Shops.
Implementierung
Variante A: Shopware HTTPS-Konfiguration in .env und Trusted Proxies. Variante B: Nginx TLS-Setup mit PCI DSS-konformen Cipher-Suites. Variante C: Let's Encrypt Automatisierung mit Certbot.
# .env — Shopware HTTPS-Konfiguration
APP_URL=https://ihr-shop.de
# Trusted Proxies (bei Load Balancer / Reverse Proxy)
TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR
# Trusted Headers für X-Forwarded-Proto
# Stellt sicher, dass Shopware hinter Proxy HTTPS erkennt
TRUSTED_HEADERS=x-forwarded-for,x-forwarded-proto,x-forwarded-port # Nginx — TLS-Konfiguration für Shopware
server {
listen 443 ssl http2;
server_name ihr-shop.de;
# Zertifikat und Key
ssl_certificate /etc/letsencrypt/live/ihr-shop.de/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ihr-shop.de/privkey.pem;
# TLS 1.2 und 1.3 — kein TLS 1.0/1.1
ssl_protocols TLSv1.2 TLSv1.3;
# Starke Cipher-Suites (PCI DSS 4.0 konform)
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers on;
# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
resolver 1.1.1.1 8.8.8.8 valid=300s;
# Session-Tickets und Cache
ssl_session_timeout 1d;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
}
# HTTP → HTTPS Redirect
server {
listen 80;
server_name ihr-shop.de;
return 301 https://$host$request_uri;
} # Let's Encrypt Zertifikat einrichten
certbot certonly --nginx -d ihr-shop.de -d www.ihr-shop.de
# Automatische Erneuerung testen
certbot renew --dry-run
# Cronjob für automatische Erneuerung (2x täglich)
# /etc/cron.d/certbot
0 */12 * * * root certbot renew --quiet --post-hook "systemctl reload nginx" In der Shopware-Administration unter Einstellungen > Sales Channels müssen alle Domains mit https:// konfiguriert sein. Eine HTTP-Domain verursacht Mixed-Content-Warnungen, macht HSTS wirkungslos und generiert HTTP-Canonical-URLs — ein schwerwiegender SEO-Fehler. Prüfen Sie auch die Domain in config/packages/shopware.yaml unter store.frw falls vorhanden.
Verifizierung
Prüfen Sie nach der Konfiguration fünf Aspekte: Shopware-Cache geleert, TLS-Version korrekt, Zertifikat gültig, HTTPS-Redirect aktiv und OCSP Stapling funktioniert. Testen Sie zusätzlich den Checkout-Flow vollständig durch — Mixed-Content-Fehler treten häufig erst auf der Zahlungsseite auf.
# 1. Shopware-Cache leeren
bin/console cache:clear
# 2. TLS-Version und Cipher-Suite prüfen
openssl s_client -connect ihr-shop.de:443 -tls1_2 2>/dev/null | grep -E "Protocol|Cipher"
# 3. Zertifikatsablauf prüfen
openssl s_client -connect ihr-shop.de:443 2>/dev/null | openssl x509 -noout -dates
# Erwartete Ausgabe: notAfter=Jun 25 00:00:00 2026 GMT
# 4. HTTPS-Redirect prüfen (HTTP → 301)
curl -sI http://ihr-shop.de | head -5
# Erwartete Ausgabe: HTTP/1.1 301 Moved Permanently
# Location: https://ihr-shop.de/
# 5. OCSP-Stapling verifizieren
openssl s_client -connect ihr-shop.de:443 -status 2>/dev/null | grep -A 3 "OCSP Response" Häufige Fehler
APP_URL in .env ohne HTTPS
Wenn APP_URL auf http:// steht, generiert Shopware HTTP-Links in E-Mails, Sitemaps, API-Responses und Canonical-URLs. Ändern Sie den Wert auf https:// und leeren Sie den Cache mit bin/console cache:clear. Prüfen Sie auch die Sitemap unter /sitemap.xml auf HTTP-URLs.
Mixed Content durch Plugin-Assets
Plugins können Hard-coded HTTP-URLs für Assets enthalten — besonders ältere Plugins, die vor Shopware 6.4 entwickelt wurden. Prüfen Sie die Browser-Console auf Mixed-Content-Warnungen und kontaktieren Sie den Plugin-Anbieter. Im Notfall: Asset-URLs im Plugin-Quellcode über ein Decorator-Pattern überschreiben.
Zertifikat abgelaufen
Let's Encrypt-Zertifikate sind 90 Tage gültig. Richten Sie automatische Erneuerung mit Certbot ein und testen Sie mit certbot renew --dry-run. Setzen Sie einen Monitoring-Alert (z.B. Wolf-Agents Uptime Monitoring), der 14 Tage vor Ablauf warnt.
TRUSTED_PROXIES fehlt bei Reverse Proxy
Hinter einem Load Balancer oder CDN erkennt Shopware ohne TRUSTED_PROXIES den X-Forwarded-Proto-Header nicht. Folge: Shopware glaubt die Verbindung sei HTTP und erzeugt eine Redirect-Schleife oder Mixed Content. Setzen Sie TRUSTED_PROXIES=127.0.0.1,REMOTE_ADDR in der .env.
Compliance-Relevanz
Wie steht Ihre Domain bei TLS & Zertifikate?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.