nginx

Security-Shizzle

Mit Hinblick auf die Bewertung von ssllabs.com

TLS

in http {-Block: ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3 + NICHT TLSv1.0 (Config-Fehler) + SSLv3 und früher ausschalten, weil unsicher

Proxy-Shizzle

Immer machen bei Geproxye (zB in Rails-Apps), wenn nur HTTPS gehen soll und auch alles im Hintergrund darüber nachgeladen wird: proxy_set_header X-Forwarded-Proto $scheme;

WICHTIG!

log TLS handshakes

loggingmodus auf "debug" setzen. vorsicht - log wird schnell sehr groß.

Maintenance-Page

Ca. so, hier entnommen vom Nestproxy:

       location /maintenance {
               return 503;
       }

       error_page 503 @maintenance;
       location @maintenance {
               rewrite ^(.*)$ /503.html break;
       }

Bei Wartungsseite Admins durchlassen, andere 503en

IP-basiert. In Serverblock:

set $is_admin 0;
if ($remote_addr = 192.168.96.77) {
        set $is_admin 1;
}
if ($remote_addr = 192.168.96.35) {
        set $is_admin 1;
}
if ($is_admin = 0) {
        return 503;
}

CORS-Header (u.a. zum Fonts nachladen)

Anwendungsfall: example.com ist eine normale Seite, sub.example.com ist ein Proxy auf example.com/sub/sub2/sub3, um auf eine Veranstaltung hinzuweisen. sub.example.com zeit per se die richtige Seite an, lädt aber keine Fonts. Browserkonsole zeigt an:

Downloadable font: download failed (font-family: "theinhardt-med" style:normal weight:400 stretch:100 src index:0): bad URI or cross-site access not allowed source: https://example.com/wp-content/themes/node/fonts/theinhardt/Theinhardt-Medium.otf
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/wp-content/themes/node/fonts/font-awesome-4.6.3/fonts/fontawesome-webfont.woff?v=4.6.3. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).

Als Lösung muss folgendes CORS-Setting in den location-Block von example.com:

                add_header Access-Control-Allow-Origin "https://sub.example.com";

das 'https://' ist wichtig und darf nicht vergessen werden. Wildcards wie "https://*.example.com" gehen auch.

Yolomodus: add_header Access-Control-Allow-Origin '*'