Добавьте заголовок HSTS к HTTPS-конечной точке, обслуживающей Nextcloud.
Чтобы устранить предупреждение HSTS от Nextcloud, установите заголовок на Apache, NGINX или вашем TLS-прокси, а затем безопасно проверьте публичный HTTPS-ответ.
Предупреждение Nextcloud «Strict-Transport-Security» означает, что проверка не выявила заголовок HSTS со значением max-ageне менее 15552000секунд (180 дней) в общедоступном HTTPS-ответе. Добавьте этот заголовок на веб-сервере или обратном прокси-сервере, который обслуживает HTTPS, а затем протестируйте именно этот общедоступный URL. HSTS не является настройкой в Nextcloud config.php, и обычный HTTP-ответ не может установить политику HSTS в браузерах.
Strict-Transport-Security. Отправьте одну преднамеренную политику с общедоступной конечной точки TLS; дублирующиеся или конфликтующие заголовки затрудняют проверку.includeSubDomains. Не включайте preloadэту опцию, чтобы быстро избавиться от этого предупреждения.HSTS сообщает браузерам, что будущие подключения к имени хоста должны использовать HTTPS. Это помогает предотвратить переход на HTTP после того, как браузер получил политику. HSTS не заменяет TLS, не исправляет недействительный сертификат и не перенаправляет первое HTTP-запрос; также необходимо настроить отдельное перенаправление HTTP на HTTPS. В руководстве администратора Nextcloud 35 указано минимальное значение в 15552000 секунд, и рекомендуется устанавливать заголовок на веб-сервере. Фактической точкой применения в прокси-сервере является компонент, возвращающий ответ посетителю.
В качестве консервативной начальной политики для имени хоста Nextcloud можно использовать следующий вариант:
Strict-Transport-Security: max-age=15552000
Это соответствует минимальному сроку действия документов Nextcloud без автоматического применения политики ко всем поддоменам. После того, как вы убедитесь, что все соответствующие поддомены постоянно поддерживают HTTPS, вы можете рассмотреть возможность добавления ; includeSubDomainsдирективы `https://www.nextcloud.com/domain.com/`. Браузер, который распознал эту директиву, также будет требовать HTTPS для этих поддоменов. Внутренняя панель управления, почтовый сервер или устаревшая служба, которая все еще зависит от HTTP, могут стать недоступными в этом браузере до тех пор, пока не будет выполнена миграция или не истечет срок действия политики.
Для виртуального хоста Apache с TLS включите mod_headersэту директиву и разместите её внутри виртуального хоста HTTPS, а не только на хосте перенаправления порта 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>
Замените указанное в примере имя хоста, сохранив существующий сертификат и конфигурацию прокси или PHP. В примере Nextcloud по усилению безопасности Apache используется Header always setвиртуальный хост HTTPS. Проверьте конфигурацию Apache с помощью поддерживаемой вашей дистрибуцией команды config-test, а затем перезагрузите Apache только в том случае, если тест пройден успешно.
В NGINX добавьте заголовок внутри serverблока, который прослушивает HTTPS-трафик на общедоступном имени хоста 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;
}
Не следует вставлять этот код в качестве полной замены существующей конфигурации сервера. Наследование заголовков NGINX может зависеть от того, определяет ли вложенное местоположение свои собственные add_headerдирективы; проверьте действующую конфигурацию и протестируйте типичные ответы, включая статические ресурсы и конечные точки DAV. Официальный пример Nextcloud NGINX включает настройку HSTS в конфигурации HTTPS и предупреждает администраторов о необходимости включения предварительной загрузки.
Если балансировщик нагрузки, входящий трафик или размещенный прокси-сервер завершает HTTPS-соединение до пересылки трафика в Nextcloud, установите HSTS на этом публичном уровне TLS, если только ваша архитектура намеренно не добавляет его на доверенном вышестоящем сервере. Заголовок, добавленный только бэкэндом, может быть удален или заменен прокси-сервером. И наоборот, установка его на обоих уровнях может привести к дублированию значений. Проверьте конфигурацию заголовка ответа прокси-сервера и убедитесь, что тестируется именно его маршрут HTTPS. Сохраняйте согласованность настроек доверенного прокси-сервера и URL-адреса HTTPS Nextcloud с существующей конфигурацией, но не рассматривайте эти настройки как замену отправки заголовка.
curl -sSI https://cloud.example.com/. Найдите хотя бы одну Strict-Transport-Securityстроку, в которой max-ageсодержится не менее 15552000.Если curlзаголовок HSTS отсутствует, убедитесь, что DNS указывает на отредактированную вами конечную точку, что запрос использует HTTPS и что прокси-сервер не удаляет заголовок. Если заголовок отображается на главной странице, но отсутствует в других ответах, проверьте директивы уровня местоположения NGINX или правила заголовков ответа прокси-сервера. Если публичный ответ корректен, но Nextcloud по-прежнему выдает предупреждение, убедитесь, что административная проверка использует то же внешне видимое имя хоста и схему, а затем проверьте любой уровень кэширования или прокси-сервера между сервером и проверкой.
Предварительная загрузка — это отдельный, но очень важный шаг. Сама по себе директива предварительной загрузки не регистрирует домен; списки предварительной загрузки для браузеров имеют свои собственные требования к отправке. Текущие рекомендации для браузеров требуют длинного max-ageи includeSubDomainsподробного описания для регистрации. Nextcloud предупреждает, что удаление из списка предварительной загрузки может занять несколько месяцев, прежде чем оно достигнет установленных браузеров. Начните с базовой политики, проведите инвентаризацию всех затронутых имен хостов, убедитесь, что HTTPS работает на всем домене, и ознакомьтесь с официальными требованиями к предварительной загрузке, прежде чем применять её. Большинство администраторов Nextcloud могут устранить это конкретное предупреждение без включения предварительной загрузки.
Справочная информация: предупреждения безопасности Nextcloud 35 , рекомендации по усилению безопасности Nextcloud , конфигурация Nextcloud NGINX и справочник по заголовкам HSTS на MDN .
Чтобы устранить предупреждение HSTS от Nextcloud, установите заголовок на Apache, NGINX или вашем TLS-прокси, а затем безопасно проверьте публичный HTTPS-ответ.
Причины сбоев при установке приложений из App Store могут быть связаны с DNS, HTTPS, прокси-сервером, TLS или проблемами конфигурации самого сервера Nextcloud.
Перенесите обработку миниатюр в контролируемый фоновый режим, обрежьте неиспользуемые размеры предварительного просмотра и проверьте очередь, не перегружая сервер Nextcloud.
Найдите файл, правило исключения, проблему с подключением или состояние базы данных клиента, препятствующие синхронизации Nextcloud, а затем безопасно проверьте загрузку и скачивание файлов.
Найдите ограничение на использование PHP OPcache, вызывающее предупреждение Nextcloud, обновите правильную конфигурацию PHP для веб-приложений, безопасно перезапустите систему и проверьте результат.
Сравните встроенный и основанный на Docker код, затем подключите Collabora Online к Nextcloud через защищенный обратный прокси-сервер HTTPS.
Спланируйте надежное развертывание Nextcloud HA с использованием общего хранилища, блокировок Redis, маршрутизации MariaDB с учетом кворума и практичных проверок отказоустойчивости.
Настройте и проверьте доступность TURN-ретранслятора для Nextcloud Talk, если брандмауэры или ограничительные NAT блокируют прямые вызовы.
Используйте отчет о недействительных файлах, чтобы выявить измененный, отсутствующий или лишний код Nextcloud, безопасно восстановить доверенные файлы и проверить результат.
Настройте OAuth2 для почты Nextcloud с использованием Gmail или Microsoft 365, проверьте получение и отправку сообщений, а также устраните распространенные ошибки, связанные с согласием и SMTP.