Come appare il messaggio
Access through untrusted domain. Please contact your administrator. If you are an administrator, edit the "trusted_domains" setting in config/config.php.Cause frequenti
- Un nuovo nome host dopo un cambio dominio o una migrazione, mai aggiunto.
- Accesso diretto tramite indirizzo IP o nome interno.
- Il reverse proxy passa un header
Hostdiverso dal nome pubblico. - Docker:
NEXTCLOUD_TRUSTED_DOMAINSviene applicata solo alla prima installazione.
Verifica
- Mostra i trusted domains configurati
sudo -u www-data php /var/www/nextcloud/occ config:system:get trusted_domains - Controlla le impostazioni legate al proxy
grep -nE 'trusted_proxies|overwritehost|overwriteprotocol|overwrite.cli.url' /var/www/nextcloud/config/config.php - Testa il backend direttamente con un header Host
curl -s -o /dev/null -w '%{http_code}\n' -H 'Host: cloud.example.com' http://127.0.0.1/status.php - Controlla quale header Host passa nginx
nginx -T 2>/dev/null | grep -n 'proxy_set_header Host'
Soluzione
- Aggiungi il dominio (usa il prossimo indice libero):
sudo -u www-data php occ config:system:set trusted_domains 1 --value=cloud.example.com. - Nel reverse proxy passa l'host originale:
proxy_set_header Host $host;. - Dietro un proxy imposta
trusted_proxiese, se serve,overwritehosteoverwriteprotocol. - Con Docker cambia i valori in
config.phpo con occ dentro il container, non solo nella variabile d'ambiente.
Domande frequenti
Posso consentire tutti i domini con *?
Wildcard come *.example.com funzionano, un * da solo non ha senso. La lista protegge dagli attacchi sull'header Host, ad esempio link di reset password manipolati.
Devo riavviare qualcosa dopo la modifica?
No. Nextcloud legge config.php a ogni richiesta, la modifica vale subito.