Ostrzeżenie „Strict-Transport-Security” w NextCloud oznacza, że kontrola nie wykryła nagłówka HSTS z opóźnieniem max-ageco najmniej 15552000kilku sekund (180 dni) w publicznej odpowiedzi HTTPS. Dodaj nagłówek na serwerze WWW lub odwrotnym serwerze proxy obsługującym HTTPS, a następnie przetestuj ten konkretny publiczny adres URL. HSTS nie jest ustawieniem w NextCloud config.php, a zwykła odpowiedź HTTP nie może ustanowić zasad HSTS w przeglądarkach.
Co sprawdzić przed zmianą konfiguracji
- Sprawdź, czy witryna Nextcloud ładuje się prawidłowo przez protokół HTTPS i prezentuje prawidłowy certyfikat dla swojej nazwy hosta.
- Określ, która usługa kończy protokół TLS: Apache, NGINX, moduł równoważenia obciążenia, ruch przychodzący do kontenera czy zewnętrzny serwer proxy.
- Sprawdź, czy usługa już to ustawiła
Strict-Transport-Security. Wyślij jedną celową politykę z publicznego punktu końcowego TLS; zduplikowane lub sprzeczne nagłówki utrudniają weryfikację. - Przed dodaniem zdecyduj, czy wszystkie subdomeny są gotowe na HTTPS
includeSubDomains. Nie włączaj preloadtej opcji, aby szybko usunąć to ostrzeżenie.
HSTS informuje przeglądarki, że przyszłe połączenia z nazwą hosta muszą korzystać z protokołu HTTPS. Pomaga to zapobiec przejściu na protokół HTTP po otrzymaniu polityki przez przeglądarkę. Nie zastępuje protokołu TLS, nie naprawia nieprawidłowego certyfikatu ani nie przekierowuje pierwszej wizyty HTTP; należy również skonfigurować osobne przekierowanie HTTP-HTTPS. Podręcznik administratora NextCloud 35 określa minimalny czas 15552000 sekund i zaleca ustawienie nagłówka na serwerze WWW. Rzeczywistym punktem egzekwowania we wdrożeniu serwera proxy jest komponent zwracający odpowiedź użytkownikowi odwiedzającemu.
Ustaw politykę bazową
Konserwatywna polityka początkowa dla nazwy hosta Nextcloud jest następująca:
Strict-Transport-Security: max-age=15552000
Spełnia to minimalny okres ważności dokumentów Nextcloud bez automatycznego stosowania polityki do każdej subdomeny. Po potwierdzeniu, że wszystkie odpowiednie subdomeny nieprzerwanie obsługują protokół HTTPS, można rozważyć dodanie ; includeSubDomains. Przeglądarka, która zaadaptowała tę dyrektywę, będzie wymagać protokołu HTTPS również dla tych subdomen. Wewnętrzny panel sterowania, host poczty e-mail lub starsza usługa, która nadal korzysta z protokołu HTTP, może stać się niedostępna w tej przeglądarce do momentu migracji lub wygaśnięcia polityki.
Apache
W przypadku wirtualnego hosta Apache TLS włącz mod_headersi umieść dyrektywę wewnątrz wirtualnego hosta HTTPS, a nie tylko w hoście przekierowania portu 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>
Zastąp przykładową nazwę hosta i zachowaj istniejący certyfikat oraz konfigurację serwera proxy lub PHP. Przykładowe wzmocnienie serwera Apache firmy Nextcloud wykorzystuje Header always setwirtualny host HTTPS. Sprawdź poprawność konfiguracji serwera Apache za pomocą polecenia config-test obsługiwanego przez dystrybucję, a następnie przeładuj serwer Apache tylko wtedy, gdy test zakończy się pomyślnie.
NGINX
W NGINX dodaj nagłówek wewnątrz serverbloku, który nasłuchuje protokołu HTTPS na publicznej nazwie hosta Nextcloud:
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;
}
Nie wklejaj tego jako całkowitego zamiennika istniejącej konfiguracji serwera. Dziedziczenie nagłówków NGINX może zależeć od tego, czy zagnieżdżona lokalizacja definiuje własne add_headerdyrektywy; sprawdź obowiązującą konfigurację i przetestuj reprezentatywne odpowiedzi, w tym zasoby statyczne i punkty końcowe DAV. Oficjalny przykład Nextcloud NGINX zawiera ustawienie HSTS w konfiguracji HTTPS i ostrzega administratorów przed włączeniem wstępnego ładowania.
Odwrotny serwer proxy lub wejście
Jeśli moduł równoważenia obciążenia, serwer przychodzący lub hostowany serwer proxy zakończy protokół HTTPS przed przekierowaniem ruchu do Nextcloud, należy ustawić HSTS na tej publicznej warstwie TLS, chyba że architektura celowo dodaje go na zaufanym serwerze upstream. Nagłówek dodany tylko przez serwer backend może zostać usunięty lub zastąpiony przez serwer proxy. Z drugiej strony, ustawienie go na obu warstwach może generować duplikaty wartości. Sprawdź konfigurację nagłówka odpowiedzi serwera proxy i upewnij się, że jego trasa HTTPS jest testowana. Zachowaj spójność ustawień zaufanego serwera proxy i adresu URL HTTPS w Nextcloud z istniejącym wdrożeniem, ale nie traktuj tych ustawień jako substytutu emisji nagłówka.
Zweryfikuj odpowiedź publiczną
- Użyj narzędzia sprawdzającego składnię platformy w celu uwzględnienia zmienionej konfiguracji serwera WWW lub serwera proxy.
- Załaduj ponownie lub wdróż sprawdzoną konfigurację.
- Poproś o publiczny adres HTTPS i sprawdź nagłówki odpowiedzi:
curl -sSI https://cloud.example.com/. Poszukaj Strict-Transport-Securitywiersza, którego max-agedługość wynosi co najmniej 15552000. - W narzędziach programistycznych przeglądarki sprawdź odpowiedź z tej samej publicznej nazwy hosta. Może to ujawnić serwer proxy, który zmienia nagłówki, lub trasę omijającą oczekiwany host wirtualny.
- Odśwież stronę Administracja → Przegląd serwisu Nextcloud i zezwól na odświeżenie kontroli bezpieczeństwa.
Jeśli curlnie widać nagłówka HSTS, sprawdź, czy DNS wskazuje na edytowany punkt końcowy, czy żądanie korzysta z protokołu HTTPS i czy serwer proxy nie usuwa nagłówka. Jeśli nagłówek pojawia się na stronie głównej, ale nie w innych odpowiedziach, sprawdź dyrektywy na poziomie lokalizacji NGINX lub reguły nagłówka odpowiedzi serwera proxy. Jeśli odpowiedź publiczna jest poprawna, ale Nextcloud nadal wyświetla ostrzeżenie, sprawdź, czy weryfikacja administracyjna używa tej samej widocznej zewnętrznie nazwy hosta i schematu, a następnie sprawdź warstwę buforowania lub proxy między serwerem a weryfikacją.
Użyj wstępnego ładowania dopiero po przeprowadzeniu przeglądu całej domeny
Preload to osobna, bardzo istotna opcja. Dyrektywa preload sama w sobie nie rejestruje domeny; listy preloadu przeglądarek mają własne wymagania dotyczące przesyłania. Aktualne wytyczne dotyczące przeglądarek wymagają długiego max-ageprocesu includeSubDomainsrejestracji. Nextcloud ostrzega, że usunięcie z wysłanej listy preloadu może potrwać miesiące, zanim dotrze ona do zainstalowanych przeglądarek. Zacznij od polityki bazowej, zinwentaryzuj każdą nazwę hosta, której dotyczy problem, upewnij się, że protokół HTTPS działa w całej domenie i zapoznaj się z oficjalnymi wymaganiami preloadu przed jego zastosowaniem. Większość administratorów Nextcloud może rozwiązać ten problem bez włączania preloadu.
Odniesienie: ostrzeżenia dotyczące bezpieczeństwa Nextcloud 35 , wskazówki dotyczące wzmacniania zabezpieczeń Nextcloud , konfiguracja Nextcloud NGINX i odniesienie do nagłówka HSTS MDN .