Les gens, j’ai un soucis bizarre sous nging.
J’ai fais un fichier conf.d/security.conf, qui contient plein de trucs, jor les en-têtes, tout ça tout ça, inclue correctement dans le « http {} ».
Sauf que les add_header ne semblent pas s’appliquer en vrai sur les vhosts :'(
Normal, pas normal ? Ça me ferait suer d’avoir tous ces headers à recopiter dans chaque vhost… /o\

Follow

Ok, j’ai eu ma réponse… add_header n’est hérité que s’il n’y a AUCUN autre add_header à ce niveau. C’est délirant du coup, puisque vous devez recopiter TOUS les add_headers des niveaux précédents dès que vous en mettez un nouveau… 😢
/me va se pendre

Ce qui fait par exemple que si vous voulez ajouter un Cache-Control public à la location /assets/, ben vous devrez set à nouveau HSTS, HPKP, XSS-Protection, X-Frame-Options…

@aeris Les includes d'autres fichiers de conf marchent bien. On se fait bien au fonctionnement finalement :)

@halletienne Sauf que là ça devient très complexe.
Ajouter un Cache-Control public dans une location, cette location perd HSTS, HPKP, CSP, X-FRAME, X-CONTENT-TYPE, X-XSS-PROTECTION…

@halletienne Si tu veux les avoir dans le location, comme tu as un add_header, il faut TOUS les recopier à la main dans ton location…

J’suis assez lol de la réponse de nginx sur le sujet…
« You just want to to do what you want with no work from your side. Not gonna happen. »

@aeris c'est parce que t'as pas payé pour nginx plus. La réponse aurait ptet été différente.
Nginx, libre mais pas trop non plus.

@aeris D’où de bien partitionner sa conf NGiNX : un bout XSS, un bout SSL, un bout cache.
NGiNX me sert principalement de rebond dans mes cas. Et un jour j'ai pété un câble une peu comme toi et j'ai fini par bien organiser le tout. (J'aime les confs lisibles en un coup d’œil)

@aeris c'est pourquoi dans mes conf nginx, j'ai un fichier de conf générique pour les headers (entre autres). il me suffit de le ré-inclure dan le /location.. D'ailleurs, c'est simple je suis devenu un maniaque du ficher de conf à 1 ligne de conf à cause des location. je suis en train de regarder de fouiller openresty, voir si je ne peux pas gérer ça avec lua.

@jidea Sauf que c’est plus complexe que ça en fait.
Tu as des headers que tu as envie d’avoir au global (HSTS, Frame, XSS, CSP none…). D’autres par vhost (HPKP, CSP self…). Et enfin d’autre par location (Cache, CSP unsafe…).
Les inclusions deviennent un enfer sur Terre. Il te faut un fichier global, inclu dans X fichiers de vhost, eux-même inclus dans des locations…

@aeris oui, je sais. c'est pourquoi je faisais la remarque d'openresty et de lua. je cherche un moyen d"appeler un fichier de conf externe avec des directives conditionnelles - peut-être à travers une variable et d'un peu de lua. j'utilise déjà les variables de nginx pour autoriser ou non les accès aux parties critiques (genre admin/conf) de mon serveur suivant le pays d'accès, les heures ...

@aeris au pire fait un snippet, non ? C'est ce que je fais pour le ssl

Sign in to participate in the conversation
Mastodon

PARCE QUE C’EST MON INSTANCE !