Quando Nextcloud segnala "L'intestazione HTTP Strict-Transport-Security non è configurata", la soluzione risiede nel livello di gestione della risposta HTTPS: Apache, Nginx o il proxy inverso pubblico che termina il TLS. Il manuale di amministrazione di Nextcloud identifica l'assenza dell'intestazione o un max-agevalore inferiore a 2 15552000secondi come un avviso di sicurezza. Una volta che l'intestazione è presente sull'endpoint HTTPS pubblico, i browser possono ricordare che l'host deve utilizzare HTTPS per il periodo dichiarato.
La modifica di base è piccola, ma la sua portata è importante. Applica HSTS solo a un endpoint HTTPS funzionante con un certificato valido. Inizia solo con l'host; aggiungi includeSubDomainso preloadsolo quando ogni hostname interessato è pronto per HTTPS. Questa guida riflette la documentazione di amministrazione di Nextcloud disponibile a ottobre 2026, comprese le linee guida sugli avvisi di sicurezza e sulla protezione del server .
Cosa significa l'avvertimento
HTTP Strict Transport Security (HSTS) è un'intestazione di risposta che indica a un browser di utilizzare HTTPS per le richieste future a un nome host. Aiuta a impedire che un browser ripieghi sul protocollo HTTP in chiaro dopo aver ricevuto la policy tramite una connessione HTTPS valida. Nextcloud controlla la risposta pubblica e avvisa quando non rileva una policy con la durata minima consigliata.
HSTS non sostituisce l'abilitazione di TLS o il reindirizzamento da HTTP a HTTPS. Il browser accetta solo una policy HSTS trasmessa tramite HTTPS. Alla prima visita, prima che il browser abbia appreso la policy, la richiesta iniziale può essere ancora vulnerabile a meno che l'hostname non sia incluso in una lista di precaricamento del browser. Un normale reindirizzamento da HTTP a HTTPS rimane utile, ma non sostituisce l'intestazione.
Individua il server che deve inviare l'intestazione
Prima di modificare la configurazione, traccia la richiesta pubblica. Se gli utenti si connettono direttamente ad Apache o Nginx tramite HTTPS, configura l'host virtuale TLS di quel server web. Se un bilanciatore di carico, un ingresso, una CDN o un proxy inverso terminano il TLS pubblico, configura il livello che invia la risposta al browser. L'aggiunta dell'intestazione solo a una connessione HTTP interna potrebbe non influire sulla risposta pubblica.
Nextcloud documenta i proxy inversi come modello di implementazione supportato e richiede agli amministratori di definire proxy attendibili quando applicabile. La responsabilità HSTS del proxy è separata dalla gestione degli URL e degli indirizzi IP client da parte di Nextcloud. In particolare, overwriteprotocolaiuta Nextcloud a riconoscere lo schema esterno in alcuni layout di proxy; la sua impostazione non aggiunge di per sé l'intestazione di risposta HSTS. Consultare la guida ufficiale alla configurazione dei proxy inversi di Nextcloud se l'applicazione genera collegamenti HTTP o segnala altri avvisi relativi ai proxy.
Prima di modificare la politica
- Conferma che
https://cloud.example.comil caricamento avvenga senza errori relativi al certificato e che venga utilizzata la catena di certificati prevista. - Verifica se le richieste HTTP vengono reindirizzate allo stesso hostname tramite HTTPS.
- Identifica altri servizi e sottodomini sotto lo stesso dominio principale prima di prendere in considerazione
includeSubDomains. - Mantenere disponibile un percorso amministrativo o una console del server. Un browser che ha memorizzato nella cache HSTS impedirà all'utente di ignorare gli errori del certificato per tutta la durata della policy.
Sostituisci cloud.example.comnegli esempi il tuo hostname Nextcloud reale. Non copiare gli hostname di esempio nella configurazione di produzione.
Configura HSTS in Apache
Nell'host virtuale Apache TLS che ospita Nextcloud, abilita il modulo headers e aggiungi la policy. La guida di hardening di Nextcloud mostra un valore di sei mesi e utilizza includeSubDomains; la seguente versione host-only è un punto di partenza prudente:
<VirtualHost *:443>
ServerName cloud.example.com
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000"
</IfModule>
# Existing Nextcloud and TLS directives
</VirtualHost>
Assicurati mod_headersche sia abilitato nella configurazione di Apache della tua distribuzione. Aggiungi la direttiva all'host virtuale HTTPS, non all'host virtuale della porta 80. Convalida la configurazione utilizzando il comando appropriato per la distribuzione installata, quindi ricarica Apache utilizzando il suo gestore di servizi. Ad esempio, molte distribuzioni basate su systemd supportano sudo apachectl configtestseguito da sudo systemctl reload apache2; su alcune distribuzioni, il servizio si chiama httpd. Usa il comando che corrisponde ai nomi del tuo pacchetto e del servizio.
Configura HSTS in Nginx
Nel serverblocco Nginx che si mette in ascolto per HTTPS e serve l'hostname pubblico di Nextcloud, aggiungere:
server {
listen 443 ssl;
server_name cloud.example.com;
add_header Strict-Transport-Security "max-age=15552000" always;
# Existing certificate and Nextcloud configuration
}
Questo alwaysparametro fa sì che Nginx aggiunga l'intestazione indipendentemente dallo stato della risposta. Nginx documenta una regola di ereditarietà che può sorprendere gli operatori: add_headerle direttive a un livello di configurazione inferiore modificano il normale comportamento di ereditarietà. Se un locationblocco nidificato definisce le proprie add_headerdirettive, l'intestazione HSTS a livello di server potrebbe non essere più ereditata. Verifica la configurazione attiva e testa URL rappresentativi, tra cui la pagina di login e una risorsa statica. Consulta la documentazione ufficiale del modulo headers di Nginx .
Prima di applicare le modifiche, esegui sudo nginx -t. Se la convalida ha esito positivo, ricarica Nginx utilizzando il comando di servizio per il tuo sistema, spesso sudo systemctl reload nginx. Un test di sintassi fallito deve essere corretto prima del ricaricamento.
Configurare un proxy inverso o un terminatore TLS
Se la connessione HTTPS pubblica termina su un proxy inverso, è necessario includere l'intestazione HSTS nella risposta HTTPS di tale proxy. Ad esempio, un proxy potrebbe inviarla anche quando la sua connessione al backend di Nextcloud utilizza HTTP. Non inviare l'intestazione HSTS solo nella risposta non crittografata del backend, presumendo che il browser la riceva.
Verifica se sia il proxy che il backend aggiungono già la stessa intestazione. I campi HSTS duplicati possono essere difficili da diagnosticare e un proxy potrebbe sovrascrivere o nascondere un'intestazione del backend. Scegli un livello pubblico a cui affidare la gestione della policy oppure configura i livelli in modo che il browser riceva un unico valore chiaro. Dopo aver modificato il proxy, verifica che inoltri l'host e lo schema previsti a Nextcloud e che i link HTTPS funzionino correttamente.
Verificare la risposta del pubblico
Utilizza una richiesta al nome host HTTPS pubblico, non solo a localhost o all'indirizzo del backend:
curl -sSI https://cloud.example.com
curl -sSIL http://cloud.example.com
Nella prima risposta, cerca esattamente un'intestazione simile a:
Strict-Transport-Security: max-age=15552000
Il secondo comando segue i reindirizzamenti. Verificate che l'URL HTTP raggiunga il nome host HTTPS desiderato, quindi esaminate la risposta HTTPS per la presenza di HSTS. I browser ignorano l'HSTS ricevuto tramite HTTP non elaborato, quindi l'intestazione non deve necessariamente comparire nel reindirizzamento iniziale sulla porta 80. Potete anche utilizzare gli strumenti per sviluppatori del browser: aprite il pannello Rete, ricaricate la pagina HTTPS, selezionate la risposta del documento e ispezionate le intestazioni della risposta.
Se la configurazione prevede posizioni annidate, più livelli proxy o una gestione separata delle risorse statiche, verifica più di un percorso di risposta. Dopodiché, rivedi le impostazioni di amministrazione di Nextcloud e aggiorna la panoramica della sicurezza. L'aggiornamento di un avviso potrebbe richiedere del tempo o potrebbe riflettere l'URL pubblico esatto che Nextcloud utilizza per le scansioni, quindi confronta quell'URL con quello che hai testato.
Scegliere con attenzione l'ambito e la durata
Un periodo max-agedi 15552000sei mesi corrisponde a un certo numero di secondi, ovvero alla soglia di avviso documentata da Nextcloud. La policy viene rinnovata quando un browser riceve una nuova intestazione HSTS valida. Per abbreviarla o rimuoverla in seguito è necessario inviare i dati max-age=0tramite HTTPS a ciascun hostname interessato; i browser che non effettuano una nuova visita durante la modifica manterranno la policy memorizzata nella cache fino alla scadenza del suo periodo di validità attuale.
includeSubDomainsApplica la policy a ogni sottodominio sotto l'hostname. Utilizzala solo se tutti i sottodomini attuali e pianificati supportano HTTPS con certificati validi. Un servizio separato come mail.example.como legacy.example.compotrebbe diventare inaccessibile ai browser se non è pronto.
L' aggiunta del preloadtoken è una decisione separata e di grande impatto. Le linee guida di Nextcloud per la protezione descrivono l'aggiunta di un hostname agli elenchi di precaricamento del browser e avvertono che la rimozione può richiedere mesi prima di essere visualizzata nei browser installati. Non aggiungerlo come soluzione rapida per eliminare un rilevamento dello scanner. Prima di procedere, verifica tutte le condizioni di precaricamento richieste e l'impatto su ogni sottodominio; segui le linee guida ufficiali del servizio HSTS Preload se intendi richiederne l'inclusione.
Se l'avvertimento persiste
- L'intestazione non è presente in curl: potresti aver modificato l'host virtuale, il proxy o la posizione di Nginx sbagliati. Verifica il target DNS pubblico e la configurazione del server attivo.
- L'intestazione appare solo su alcune pagine: verifica le direttive Nginx annidate
add_header, la gestione degli errori, i percorsi delle risorse statiche e le regole del proxy. - La risposta prevede diverse politiche: individuare quali livelli aggiungono il campo e consolidarli in un unico valore coerente.
- L'intestazione è presente ma l'avviso persiste: verificare che l'URL configurato esternamente di Nextcloud si risolva nello stesso endpoint HTTPS, controllare la gestione dello schema proxy, quindi ricaricare la panoramica di amministrazione.
- HTTPS o il certificato non sono pronti: prima risolvi i problemi di TLS e di instradamento da HTTP a HTTPS. HSTS non può riparare un certificato danneggiato né abilitare HTTPS autonomamente.
La correzione è completa quando la risposta HTTPS pubblica contiene sempre il valore HSTS previsto, Nextcloud può raggiungere correttamente il suo URL HTTPS pubblico e il browser può caricare l'istanza senza errori di certificato o di reindirizzamento. HSTS migliora l'applicazione delle policy di trasporto per i browser di ritorno; non sostituisce la manutenzione dei certificati, la configurazione di un proxy sicuro o un percorso di ripristino testato.