Fixer les en-têtes dans nginx avec CORS et http / 2

J'ai travaillé sur ma configuration nginx pendant un moment maintenant, mais d'une certaine manière, je semble avoir un mixage avec mes en-têtes. J'ai eu http / 2 en cours d'exécution avec nginx 1.9.12 sur ubuntu 14.04 et j'ai une note A solide . Cependant, même si j'ai obtenu la plupart des modifications d'en-tête, j'ai un F pour la security des en-têtes .

Je pense que cela pourrait avoir à voir avec la copy CORS config I copiée . Mais je ne peux pas voir comment.

Voir ci-dessous mon file de configuration avec des trajectoires rétractées et certaines directives sur les pages d'erreur supprimées pour simplifier.

Toute aide est appréciée.

# settings # server_tokens off; # http to https redirect # server { listn 80; server_name gel.westpacgroup.com.au; return 301 https://$host$request_uri; } # ssl and http2 config # server { listn 443 ssl http2; listn [::]:443 ssl http2; server_name gel.westpacgroup.com.au; ssl on; ssl_certificatee /path/to/fullchain.pem; ssl_certificatee_key /path/to/privkey.pem; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /path/to/dhparam.pem; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; # OCSP Stapling --- # fetch OCSP records from URL in ssl_certificatee and cache them ssl_stapling on; ssl_stapling_verify on; # HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months) add_header Ssortingct-Transport-Security 'max-age=31536000; includeSubDomains;' always; # prevent clickjacking attacks add_header X-Frame-Options 'SAMEORIGIN'; # disallow circumventing declared MIME types add_header X-Content-Type-Options nosniff; # X-XSS-Protection add_header X-XSS-Protection '1; mode=block'; # root server # location / { root /path/to/; index index.html index.htm; # Wide-open CORS config for nginx # if ($request_method = 'OPTIONS') { add_header 'Access-Control-Allow-Origin' '*'; # Om nom nom cookies add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; # Custom headers and headers various browsers *should* be OK with but aren't add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; # Tell client that this pre-flight info is valid for 20 days add_header 'Access-Control-Max-Age' 1728000; add_header 'Content-Type' 'text/plain charset=UTF-8'; add_header 'Content-Length' 0; return 204; } if ($request_method = 'POST') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } if ($request_method = 'GET') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } if ($request_method = 'GET') { add_header 'Access-Control-Allow-Origin' '*'; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS'; add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; } } # redirect server error pages to the static error pages # # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } 

One Solution collect form web for “Fixer les en-têtes dans nginx avec CORS et http / 2”

Il me semble que ces en-têtes n'ont pas été ajoutés – ssortingct-transport-security etc. Pour utiliser le add_header, vous devez build nginx from source avec le module headers_more inclus. Avez-vous fait cela? Sinon, il y a un tutoriel ici .

(Mise à jour – cela était nécessaire, pas sûr de pourquoi) Vous pouvez essayer de déplacer les add_headers dans un bloc d'location pour voir si cela fonctionne mieux.

Faites un test simple – dans votre location principal, ajoutez un en-tête simple et inconditionnel, et regardez-le en utilisant curl ou Firefox et l'extension "Live HTTP Headers".

 add_header Z_TESTHEADER "value" 
  • Quel est l'avantage des dissortingbutions linux 'Enterprise'?
  • server ubuntu: déclaration SSH pour mettre à jour les packages mais rien à mettre à jour
  • Serveur Ubuntu très lent dans le ciel bleu (Rails, passager, Nginx)
  • Expliquez comment les process ubuntu 9.04 apache2 sont gérés pour moi
  • les sudoers pour exécuter des commands comme un autre user
  • Le sous-directory de assembly avec mount.cifs donne l'autorisation refusée, mais gvfs fonctionne
  • Nouveau server Windows 2008 sur le domaine Linux
  • Dovecot n'est pas utilisé comme LDA par Postfix
  • Problème de configuration MySQL Socket dans my.cnf
  • service dans la VM vagrante ne reprend pas la configuration
  • Téléphones Ubuntu et Avaya
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.