De waarschuwing "Strict-Transport-Security" van Nextcloud betekent dat de controle geen HSTS-header met een geldigheidsduur max-agevan minimaal 15552000180 dagen (seconden) heeft gevonden in het openbare HTTPS-antwoord. Voeg de header toe aan de webserver of reverse proxy die HTTPS aanbiedt en test vervolgens diezelfde openbare URL. HSTS is geen instelling in Nextcloud config.phpen een gewoon HTTP-antwoord kan geen HSTS-beleid in browsers vaststellen.
Wat moet je controleren voordat je de configuratie wijzigt?
- Controleer of de Nextcloud-site correct laadt via HTTPS en een geldig certificaat voor de hostnaam presenteert.
- Identificeer welke service de TLS-verbinding beëindigt: Apache, NGINX, een load balancer, een container ingress of een externe proxy.
- Controleer of die service al is ingesteld
Strict-Transport-Security. Verstuur één weloverwogen beleid vanaf het openbare TLS-eindpunt; dubbele of tegenstrijdige headers maken verificatie verwarrend. - Bepaal of alle subdomeinen klaar zijn voor HTTPS voordat u ze toevoegt
includeSubDomains. Schakel deze optie niet in preloadals snelle manier om deze waarschuwing te verhelpen.
HSTS vertelt browsers dat toekomstige verbindingen met een hostnaam HTTPS moeten gebruiken. Het helpt voorkomen dat er wordt teruggeschakeld naar HTTP nadat een browser het beleid heeft ontvangen. Het vervangt TLS niet, lost geen ongeldig certificaatprobleem op en leidt de allereerste HTTP-bezoek niet om; configureer ook een aparte HTTP-naar-HTTPS-omleiding. De beheerdershandleiding van Nextcloud 35 vermeldt de minimale wachttijd van 15552000 seconden en adviseert om de header in de webserver in te stellen. Het daadwerkelijke handhavingspunt in een proxy-implementatie is de component die het antwoord terugstuurt naar de bezoeker.
Stel een basisbeleid vast.
Een conservatief uitgangspunt voor een Nextcloud-hostnaam is:
Strict-Transport-Security: max-age=15552000
Dit voldoet aan de minimale levensduurvereisten van Nextcloud zonder automatisch een beleid toe te passen op elk subdomein. Zodra u hebt bevestigd dat alle relevante subdomeinen continu HTTPS ondersteunen, kunt u overwegen om dit toe te voegen ; includeSubDomains. Een browser die deze richtlijn heeft geleerd, vereist ook HTTPS voor die subdomeinen. Een intern dashboard, mailserver of verouderde service die nog steeds afhankelijk is van HTTP, kan in die browser onbereikbaar worden totdat deze is gemigreerd of het beleid verloopt.
Apache
Voor een Apache TLS virtuele host moet u mod_headersde betreffende instructie inschakelen en in de HTTPS virtuele host plaatsen, en niet alleen in de redirect host voor poort 80:
<VirtualHost *:443>
ServerName cloud.example.com
# Keep the existing TLS and Nextcloud configuration here.
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15552000"
</IfModule>
</VirtualHost>
Vervang de voorbeeldhostnaam en behoud uw bestaande certificaat en proxy- of PHP-configuratie. Het Apache-beveiligingsvoorbeeld van Nextcloud maakt gebruik Header always setvan de HTTPS virtuele host. Valideer de Apache-configuratie met de door uw distributie ondersteunde config-test-opdracht en herlaad Apache alleen als de test slaagt.
NGINX
Voeg in NGINX de volgende header toe binnen het serverblok dat luistert naar HTTPS op de openbare Nextcloud-hostnaam:
server {
listen 443 ssl;
server_name cloud.example.com;
# Keep your existing TLS and Nextcloud locations here.
add_header Strict-Transport-Security "max-age=15552000" always;
}
Plak dit niet als een volledige vervanging voor de bestaande serverconfiguratie. De overerving van NGINX-headers kan afhangen van de vraag of een geneste locatie zijn eigen add_headerrichtlijnen definieert; controleer de effectieve configuratie en test representatieve reacties, inclusief statische bestanden en DAV-eindpunten. Het officiële Nextcloud NGINX-voorbeeld bevat een HSTS-instelling in de HTTPS-configuratie en waarschuwt beheerders voor het inschakelen van preload.
Reverse proxy of ingress
Als een load balancer, ingress of hosted proxy HTTPS beëindigt voordat het verkeer naar Nextcloud wordt doorgestuurd, stel dan HSTS in op die openbare TLS-laag, tenzij uw architectuur dit bewust toevoegt op een vertrouwde upstream-laag. Een header die alleen door de backend wordt toegevoegd, kan door de proxy worden verwijderd of vervangen. Omgekeerd kan het instellen ervan op beide lagen leiden tot dubbele waarden. Controleer de response-headerconfiguratie van de proxy en zorg ervoor dat de HTTPS-route die wordt getest, de juiste is. Houd de vertrouwde proxy- en HTTPS-URL-instellingen van Nextcloud consistent met de bestaande implementatie, maar beschouw deze instellingen niet als een vervanging voor het verzenden van de header.
Valideer de reactie van het publiek
- Gebruik de syntaxcontrole van het platform voor de gewijzigde webserver- of proxyconfiguratie.
- Herlaad of implementeer de gevalideerde configuratie.
- Vraag het openbare HTTPS-adres op en inspecteer de antwoordheaders:
curl -sSI https://cloud.example.com/. Zoek naar een Strict-Transport-Securityregel waarvan de max-agewaarde minimaal is 15552000. - Inspecteer in de ontwikkelaarstools van een browser het antwoord van dezelfde openbare hostnaam. Dit kan een proxy aan het licht brengen die headers wijzigt of een route die de verwachte virtuele host omzeilt.
- Vernieuw de pagina 'Administratie → Overzicht' van Nextcloud en wacht tot de beveiligingscontrole is vernieuwd.
Als curler geen HSTS-header wordt weergegeven, controleer dan of DNS verwijst naar het eindpunt dat u hebt bewerkt, of het verzoek HTTPS gebruikt en of de proxy de header niet verwijdert. Als de header wel op de startpagina verschijnt, maar niet in andere reacties, controleer dan de locatie-level richtlijnen van NGINX of de regels voor proxy-antwoordheaders. Als de openbare reactie correct is, maar Nextcloud nog steeds een waarschuwing geeft, controleer dan of de beheerderscontrole dezelfde extern zichtbare hostnaam en hetzelfde schema gebruikt en inspecteer vervolgens de caching- of proxylaag tussen de server en de controle.
Gebruik preload alleen na een domeinbrede beoordeling.
Preload is een aparte, ingrijpende keuze. De preload-richtlijn registreert zelf geen domein; browser-preloadlijsten hebben hun eigen indieningsvereisten. De huidige browserrichtlijnen vereisen een lange max-ageen lange includeSubDomainstermijn voor inschrijving. Nextcloud waarschuwt dat het maanden kan duren voordat verwijdering van een reeds verzonden preloadlijst is doorgevoerd in geïnstalleerde browsers. Begin met het basisbeleid, inventariseer alle getroffen hostnamen, controleer of HTTPS werkt op het hele domein en bekijk de officiële preload-vereisten voordat u de richtlijn toepast. De meeste Nextcloud-beheerders kunnen deze specifieke waarschuwing oplossen zonder voor preload te kiezen.
Referentie: Nextcloud 35 beveiligingswaarschuwingen , Nextcloud-beveiligingsrichtlijnen , Nextcloud NGINX-configuratie en MDN's HSTS-headerreferentie .