diff --git a/swag/nginx/ssl.conf b/swag/nginx/ssl.conf new file mode 100644 index 0000000..0b26def --- /dev/null +++ b/swag/nginx/ssl.conf @@ -0,0 +1,36 @@ +ssl_certificate /config/keys/letsencrypt/fullchain.pem; + ssl_certificate_key /config/keys/letsencrypt/privkey.pem; + ssl_dhparam /config/keys/dhparam.pem; + + ssl_session_timeout 1d; + ssl_session_cache shared:MozSSL:10m; + ssl_session_tickets off; + + # modern configuration + ssl_protocols TLSv1.2 TLSv1.3; + ssl_prefer_server_ciphers on; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; + ssl_ecdh_curve X25519:prime256v1:secp521r1:secp384r1; + + # OCSP stapling + ssl_stapling on; + ssl_stapling_verify on; + + # verify chain of trust of OCSP response using Root CA and Intermediate certs + ssl_trusted_certificate /config/keys/letsencrypt/fullchain.pem; + + # replace with the IP address of your resolver + resolver 127.0.0.11; + resolver_timeout 2s; + + # HSTS (ngx_http_headers_module is required) (63072000 seconds) + add_header Strict-Transport-Security "max-age=63072000; includeSubDomains" always; + + # Security Headers + add_header Referrer-Policy "no-referrer-when-downgrade" always; + add_header Content-Security-Policy "upgrade-insecure-requests" always; + add_header Cache-Control "no-transform" always; + add_header X-UA-Compatible "IE=Edge" always; + add_header X-Content-Type-Options "nosniff" always; + add_header X-Frame-Options "SAMEORIGIN" always; + add_header X-XSS-Protection "1; mode=block" always; \ No newline at end of file