HSTS implementation

  • Hello everyone,

    I just wanted to implement CSP and HSTS to my hosted wordpress-site. :)

    Http ist completely set off in my domain settings window. There is a valid SSL Cert, comes from letsencryt. everything works fine.

    When I try to check, if everything works as expected, Im using this site: https://observatory.mozilla.org/analyze/b33zle.de

    As you can see, there is still the "redirection" point missing (not implemented), as I understand.
    My .htaccess file is looking as follows:


    [COLOR=#b30000]<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=63072000; includeSubDomains;" env=HTTPS
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
    Header set X-Frame-Options SAMEORIGIN
    Header set Referrer-Policy "no-referrer"
    Header set Permissions-Policy "geolocation=(self 'https://b33zle.de', microphone=())"
    [/COLOR]
    [COLOR=#b30000]RewriteCond %{HTTPS} !=on
    RewriteCond %{HTTP_HOST} www\.b33zle\.de [NC]
    RewriteRule ^(.*)$ https://www\.b33zle\.de%{REQUEST_URI} [R=301,L][/COLOR]

    [COLOR=#b30000]
    </ifmodule>
    # END of Security headers

    <IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'none'; script-src 'self' 'nonce-48kew4665v779r789'; connect-src 'self'; img-src 'self'; style-src 'self' 'unsafe-inline'; media-src 'self'; base-uri 'self'; form-action 'self'; font-src 'self' data:; frame-ancestors 'none'; upgrade-insecure-requests"
    </IfModule>

    # BEGIN WordPress
    [ here is the dynamic wordpress part ]
    # END WordPress[/COLOR]


    I dont know how to get it work, would anybody help me with this?

    Thanks in advance!
    DeinVadder

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

    1. Die Rewrite Regel versucht [FONT=Courier New]http://www.b33zle.de[/FONT] zu erkennen
    2. Die verlinkte Analyse ist für [FONT=Courier New]b33zle.de[/FONT] und nicht für [FONT=Courier New]http://www.b33zle.de[/FONT]
    3. Es fehlt zudem ggf. [FONT=Courier New]RewriteEngine On[/FONT] damit die Regeln beachtet werden
    4. Rewrite Regeln setzt man normalerweise in [FONT=Courier New]<IfModule mod_rewrite.c> ... </IfModule>[/FONT] Blöcke
  • Hallo B3317133,

    danke sehr! Ich habe das jetzt mal abgeändert.

    [COLOR=#b30000]<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=63072000; includeSubDomains;" env=HTTPS
    Header set X-XSS-Protection "1; mode=block"
    Header set X-Content-Type-Options nosniff
    Header set X-Frame-Options SAMEORIGIN
    Header set Referrer-Policy "no-referrer"
    Header set Permissions-Policy "geolocation=(self 'https://b33zle.de', microphone=()"
    </ifmodule>
    # END of Security headers

    <IfModule mod_headers.c>
    Header set Content-Security-Policy "default-src 'none'; script-src 'self' 'nonce-48kew4665v779r789'; connect-src 'self'; img-src 'self'; style-src 'self' 'unsafe-inline'; media-src 'self'; base-uri 'self'; form-action 'self'; font-src 'self' data:; frame-ancestors 'none'; upgrade-insecure-requests"
    </IfModule>
    [/COLOR]
    [COLOR=#b30000]<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^b33zle\.de [NC]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://b33zle.de/$1 [R=301,L]
    </IfModule>[/COLOR]

    [COLOR=#b30000]
    [/COLOR]
    [COLOR=#b30000]# BEGIN WordPress[/COLOR]
    [COLOR=#b30000]# Die Anweisungen (Zeilen) zwischen „BEGIN WordPress“ und „END WordPress“ sind
    # dynamisch generiert und sollten nur über WordPress-Filter geändert werden.
    # Alle Änderungen an den Anweisungen zwischen diesen Markierungen werden überschrieben.
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]

    # add a trailing slash to /wp-admin
    RewriteRule ^wp-admin$ wp-admin/ [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
    RewriteRule ^(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    </IfModule>[/COLOR]
    [COLOR=#b30000]# END WordPress[/COLOR]

    Allerdings ist dabei das Redirect noch nicht aktiv, wenn man dem Scan bei Mozilla glauben kann. Ich habe auch mal die Wordpress-RewriteRules drin gelassen, vielleicht kollidiert da was?

    Grüße,
    DeinVadder :)

  • Evtl. stört den Scanner auch das [FONT=Courier New]env=HTTPS[/FONT] in Deiner Zeile, so kommt der Header bei http nicht an.

    Deine Art der Redirect Regel unterscheidet zwischen Domain/Subdomain, derzeit gilt sie nicht für "mit www". Evtl. siehst Du lokal das Ergebnis bei Änderungen nicht, da Browser gerne auch Redirects im Cache behalten.

  • Apache Configuration
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
    
    
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L,E=HTTPS:1]
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS

    Versuch es mal damit ...

    Testen kannst du das unter: https://hstspreload.org/

  • Apache Configuration
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
    
    
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L,E=HTTPS:1]
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS

    Versuch es mal damit ...
    Testen kannst du das unter: https://hstspreload.org/


    Anbei ein Scrrenshot.

    Grüße, DeinVadder

  • Evtl. stört den Scanner auch das [FONT=Courier New]env=HTTPS[/FONT] in Deiner Zeile, so kommt der Header bei http nicht an.

    Deine Art der Redirect Regel unterscheidet zwischen Domain/Subdomain, derzeit gilt sie nicht für "mit www". Evtl. siehst Du lokal das Ergebnis bei Änderungen nicht, da Browser gerne auch Redirects im Cache behalten.

    Das habe ich mal rausgenommen und den Cache geleert. Keine Veränderung.

    2 Mal editiert, zuletzt von DeinVadder (4. Juni 2024 um 10:16)

  • Musst du mal deinen Hoster fragen. Bei uns wird das serverseitig aktiviert.


    Hallo Jaba Hosting,
    ich habe das früher schon einmal hinbekommen, deswegen weiß ich, dass das auch über die htaccess funktionieren muss.
    Grüße, DeinVadder

  • Hallo,
    was ich nicht verstehe ist, dass ich in meinen Hostereinstellungen bereits http vollkommen abgestellt habe. Eine unverschlüsselte Anfrage ist also gar nicht möglich, weil alles auf https umgeleitet wird. Die Meldung auf der Mozillaseite sagt aber, dass https zwar aktiv ist, aber http default ist. Es ist maximal verwirrend und ich bin echt geneigt auf diesen ganzen Quatsch einfach zu verzichten. Für diesen Mist geht so viel Lebenszeit drauf, MEINE Herren!


    Grüße,
    Paps

  • Wenn Du hostingseitig http auf https umleitest, kommen http Anfragen nicht an Deine .htaccess dran und somit auch nicht an Deine Angaben und eigene Redirects usw. dort...

  • Wenn Du hostingseitig http auf https umleitest, kommen http Anfragen nicht an Deine .htaccess dran und somit auch nicht an Deine Angaben dort...


    Also es ist keine Umleitung, habe ich gerade nochmal gecheckt, sondern http ist einfach ausgeschaltet und ein Aufruf im Browser, zB http://domain.de sagt mir dann, dass die Domain nicht verfügbar ist.

    4 Mal editiert, zuletzt von DeinVadder (4. Juni 2024 um 11:44)

  • Wenn Du die o.g. erstellten eigenen Einträge in .htaccess auch für http und damit von diesen Scannern usw. beachtet haben willst, stelle http auf den gleichen Ordner wie https ein. Wie sollten die Scanner sonst an Deine Einstellungen kommen?

  • Wenn Du die o.g. erstellten eigenen Einträge in .htaccess auch für http und damit von diesen Scannern usw. beachtet haben willst, stelle http auf den gleichen Ordner wie https ein. Wie sollten die Scanner sonst an Deine Einstellungen kommen?

    Update:
    Das war der entscheidende Hint! Ich hatte in den Servereinstellungen keine UMLEITUNG, sondern http war komplett deaktiviert. Ich habe jetzt eingestellt, dass alle Aufrufe von http auf https weitergeleitet werden. Jetzt zeigt mir die Mozilla Seite auch an, dass der redirect funktioniert.

    Vielen Dank für eure Zeit!!! <3

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!