Nextcloud를 제공하는 HTTPS 엔드포인트에 HSTS 헤더를 추가하세요.

max-ageNextcloud의 "Strict-Transport-Security" 경고는 공개 HTTPS 응답에서 최소 180일(초) 의 HSTS 헤더를 찾지 못했음을 의미합니다 15552000. HTTPS를 제공하는 웹 서버 또는 리버스 프록시에 해당 헤더를 추가한 다음, 해당 공개 URL을 다시 테스트해 보세요. HSTS는 Nextcloud 설정에서 선택할 수 있는 옵션이 아니며 config.php, 일반 HTTP 응답으로는 브라우저에서 HSTS 정책을 설정할 수 없습니다.

설정을 변경하기 전에 확인해야 할 사항

  • Nextcloud 사이트가 HTTPS를 통해 올바르게 로드되고 호스트 이름에 대한 유효한 인증서를 표시하는지 확인하십시오.
  • TLS 연결을 종료하는 서비스가 무엇인지 확인하십시오. Apache, NGINX, 로드 밸런서, 컨테이너 진입점 또는 외부 프록시 중 어떤 서비스인지 확인하십시오.
  • 해당 서비스가 이미 정책을 설정했는지 확인하십시오 Strict-Transport-Security. 공개 TLS 엔드포인트에서 하나의 명확한 정책을 전송하십시오. 중복되거나 충돌하는 헤더는 검증을 혼란스럽게 만듭니다.
  • 모든 서브도메인이 HTTPS를 지원할 준비가 되었는지 확인한 후 추가하십시오 . 이 경고를 빠르게 해결하기 위해 HTTPS를 includeSubDomains활성화하지 마십시오 .preload

HSTS는 브라우저에 해당 호스트 이름에 대한 향후 연결은 HTTPS를 사용해야 함을 알립니다. 이는 브라우저가 정책을 수신한 후 HTTP로 다운그레이드되는 것을 방지하는 데 도움이 됩니다. HSTS는 TLS를 대체하거나, 유효하지 않은 인증서를 수정하거나, 최초 HTTP 방문을 리디렉션하는 기능은 제공하지 않습니다. HTTP-HTTPS 리디렉션은 별도로 구성해야 합니다. Nextcloud 35 관리 설명서에서는 최소 15552000초의 대기 시간을 명시하고 웹 서버에서 헤더를 설정할 것을 권장합니다. 프록시 배포에서 실제 적용 지점은 방문자에게 응답을 반환하는 구성 요소입니다.

기본 정책을 설정하세요

Nextcloud 호스트 이름에 대한 보수적인 초기 정책은 다음과 같습니다.

Strict-Transport-Security: max-age=15552000

이는 모든 서브도메인에 정책을 자동으로 적용하지 않고도 Nextcloud 문서의 최소 유효 기간을 충족합니다. 모든 관련 서브도메인이 HTTPS를 지속적으로 지원하는지 확인한 후에는 이 지시문을 추가하는 것을 고려할 수 있습니다 ; includeSubDomains. 이 지시문을 학습한 브라우저는 해당 서브도메인에도 HTTPS를 요구합니다. 내부 대시보드, 메일 호스트 또는 여전히 HTTP에 의존하는 레거시 서비스는 마이그레이션이 완료되거나 정책이 만료될 때까지 해당 브라우저에서 접근할 수 없게 될 수 있습니다.

아파치

Apache TLS 가상 호스트의 경우, mod_headers포트 80 리디렉션 호스트뿐만 아니라 HTTPS 가상 호스트 내부에도 해당 지시문을 활성화하고 배치해야 합니다.

<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 setHTTPS 가상 호스트를 사용합니다. 사용 중인 배포판에서 지원하는 config-test 명령어를 사용하여 Apache 구성을 검증하고, 테스트가 통과된 경우에만 Apache를 다시 로드하세요.

NGINX

NGINX에서 serverNextcloud 공개 호스트 이름에 대한 HTTPS 연결을 수신하는 블록 내부에 헤더를 추가하세요.

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 샘플에는 HTTPS 설정에 HSTS 설정이 포함되어 있으며 관리자에게 사전 로드 활성화에 대한 경고를 표시합니다.

리버스 프록시 또는 인그레스

로드 밸런서, 인그레스 또는 호스팅 프록시가 Nextcloud로 트래픽을 전달하기 전에 HTTPS를 종료하는 경우, 아키텍처에서 의도적으로 신뢰할 수 있는 업스트림에 HSTS를 추가하지 않는 한 해당 공용 TLS 계층에 HSTS를 설정하십시오. 백엔드에서만 추가된 헤더는 프록시에서 제거되거나 대체될 수 있습니다. 반대로 두 계층 모두에 설정하면 중복 값이 ​​발생할 수 있습니다. 프록시의 응답 헤더 구성을 확인하고 테스트 중인 HTTPS 경로가 프록시의 HTTPS 경로인지 확인하십시오. Nextcloud의 신뢰할 수 있는 프록시 및 HTTPS URL 설정을 기존 배포와 일관되게 유지하되, 이러한 설정을 헤더 전송을 대체하는 것으로 간주하지 마십시오.

대중의 반응을 검증하세요

  1. 변경된 웹 서버 또는 프록시 구성에 대해 플랫폼의 구문 검사기를 사용하십시오.
  2. 검증된 구성을 다시 로드하거나 배포하십시오.
  3. 공개 HTTPS 주소를 요청하고 응답 헤더를 검사합니다. 최소한 다음 조건을 만족하는 줄을 curl -sSI https://cloud.example.com/하나 이상 찾습니다 .Strict-Transport-Securitymax-age15552000
  4. 브라우저 개발자 도구에서 동일한 공개 호스트 이름에 대한 응답을 검사해 보세요. 이를 통해 헤더를 변경하는 프록시나 예상되는 가상 호스트를 우회하는 경로를 확인할 수 있습니다.
  5. Nextcloud의 관리 → 개요 페이지를 새로고침하고 보안 검사가 완료될 때까지 기다리세요.

HSTS 헤더가 표시 되지 curl않으면 DNS가 수정된 엔드포인트를 가리키는지, 요청에 HTTPS가 사용되는지, 프록시에서 헤더를 제거하지 않는지 확인하십시오. 헤더가 홈페이지에는 표시되지만 다른 응답에는 표시되지 않으면 NGINX 위치 수준 지시문 또는 프록시 응답 헤더 규칙을 검토하십시오. 공개 응답이 올바른데도 Nextcloud에서 경고가 계속 표시되면 관리자 검사에서 외부에서 볼 수 있는 호스트 이름과 스키마가 동일한지 확인하고 서버와 검사 사이에 있는 캐싱 또는 프록시 계층을 검사하십시오.

도메인 전체 검토를 마친 후에만 사전 로드를 사용하십시오.

사전 로드는 별도의 중요한 선택 사항입니다. 사전 로드 지시문 자체는 도메인을 등록하지 않으며, 브라우저 사전 로드 목록에는 자체 제출 요건이 있습니다. 현재 브라우저 지침에 따르면 등록에 상당한 시간이 소요됩니다 max-age. includeSubDomainsNextcloud는 배포된 사전 로드 목록에서 제거된 내용이 설치된 브라우저에 반영되기까지 몇 달이 걸릴 수 있다고 경고합니다. 적용하기 전에 기본 정책부터 시작하여 영향을 받는 모든 호스트 이름을 파악하고, 도메인 전체에서 HTTPS가 제대로 작동하는지 확인하고, 공식 사전 로드 요건을 검토하십시오. 대부분의 Nextcloud 관리자는 사전 로드를 선택하지 않고도 이 특정 경고를 해결할 수 있습니다.

참고: Nextcloud 35 보안 경고 , Nextcloud 보안 강화 지침 , Nextcloud NGINX 구성 및 MDN의 HSTS 헤더 참조 .

댓글 남기기

OCC를 사용하여 분실한 Nextcloud 관리자 암호를 재설정하세요

Nextcloud의 OCC 명령어를 사용하여 서버 셸에서 관리자 암호를 재설정하는 방법을 안내합니다. 사용자 이름, 권한 및 외부 로그인 공급자에 대한 지침도 제공됩니다.

Nextcloud를 제공하는 HTTPS 엔드포인트에 HSTS 헤더를 추가하세요.

Apache, NGINX 또는 TLS 프록시에서 헤더를 설정하여 Nextcloud의 HSTS 경고를 해제한 다음 공개 HTTPS 응답을 안전하게 확인하십시오.

Nextcloud 앱 설치 시 인터넷 연결이 안 된다는 오류 메시지 표시 문제 해결

Nextcloud 앱 설치 시 인터넷 연결이 안 된다는 오류 메시지 표시 문제 해결

Nextcloud 서버 자체의 DNS, HTTPS, 프록시, TLS 또는 구성 문제로 인해 App Store 설치가 실패하는 경우 원인을 추적하십시오.

예약 대기열을 사용하여 Nextcloud 미리보기의 CPU 사용량 급증을 제어하세요

썸네일 작업을 제어된 백그라운드 일정으로 이동하고, 사용하지 않는 미리보기 크기를 줄이고, Nextcloud 서버에 과부하를 주지 않고 대기열을 검증하세요.

Nextcloud 데스크톱 동기화, "파일 처리 중" 문제 해결

Nextcloud 동기화를 방해하는 파일, 제외 규칙, 연결 문제 또는 클라이언트 데이터베이스 상태를 찾은 다음 업로드 및 다운로드가 안전하게 진행되는지 확인하십시오.

Nextcloud OPcache 경고를 해결하려면 적정 한도를 조정하세요.

Nextcloud 경고를 유발하는 PHP OPcache 제한을 찾아 올바른 웹 PHP 구성을 업데이트하고 안전하게 재시작한 후 결과를 확인하십시오.

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

Nextcloud를 CODE Docker에 연결하기: 설정 및 장단점

내장 CODE와 Docker 기반 CODE를 비교한 다음, 안전한 HTTPS 역방향 프록시를 통해 Collabora Online을 Nextcloud에 연결합니다.

Galera를 사용하여 안정적인 Nextcloud 클러스터를 구축하세요

공유 스토리지, Redis 잠금, 쿼럼 인식 MariaDB 라우팅 및 실용적인 장애 조치 점검을 ​​통해 안정적인 Nextcloud 고가용성(HA) 배포를 계획하십시오.

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

직접 미디어 연결이 실패할 경우 Nextcloud Talk 통화를 연결하세요

방화벽이나 제한적인 NAT로 인해 직접 통화 매체가 차단되는 경우, Nextcloud Talk에 연결 가능한 TURN 릴레이를 구성하고 확인하십시오.

올바른 파일을 복원하여 Nextcloud 무결성 경고를 해결하세요

잘못된 파일 보고서를 사용하여 변경되었거나 누락되었거나 추가된 Nextcloud 코드를 식별하고, 신뢰할 수 있는 파일을 안전하게 복원하고, 결과를 확인할 수 있습니다.