Comment configurer Nextcloud derrière un reverse proxy et ajouter correctement les en-têtes de sécurité.
Nextcloud avec Apache
Notre instance Nextcloud sera installée avec Apache/PHP-FPM.
Dans la configuration de votre vhost ou dans votre .htaccess
, commentez les lignes comme ci-dessous :
<IfModule mod_env.c>
# Add security and privacy related headers
# Header set X-Content-Type-Options "nosniff"
# Header set X-XSS-Protection "1; mode=block"
# Header set X-Robots-Tag "none"
# Header set X-Download-Options "noopen"
# Header set X-Permitted-Cross-Domain-Policies "none"
SetEnv modHeadersAvailable true
</IfModule>
Configuration de Nginx
Configurez un reverse proxy standard.
Dans la section server
, ajoutez client_max_body_size 1G;
.
Dans la section location
, ajoutez :
(Comme nous avons supprimé tous les en-têtes dans le backend (configuration Apache), ces en-têtes doivent être définis dans Nginx)
# Specific header config
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Robots-Tag none;
add_header X-Download-Options noopen;
add_header X-Permitted-Cross-Domain-Policies none;
#proxy_hide_header X-Frame-Options;
L’en-tête X-Frame-Options
est toujours défini dans le code, faites donc attention à ne pas l’avoir en double.
(https://github.com/nextcloud/server/blob/master/lib/private/legacy/response.php)