# 사이트 비밀번호 보호하기

Source: https://support.kapsulehost.com/ko-kr/site-password-protect

암호 보호는 사이트 전체 또는 특정 경로 앞에 브라우저 로그인 프롬프트를 배치하여, 출시 전 사이트나 스테이징 사본, 관리자 영역을 비공개로 유지하는 가장 간단한 방법입니다. 이 가이드에서는 설정 방법, 사용자 관리, 작동 확인, 그리고 다시 제거하는 방법을 다룹니다.

## KPanel에서 암호 보호 기능의 위치

1. [KPanel](https://kpanel.kapsulehost.com)에 로그인합니다.
2. 왼쪽 사이드바에서 **웹사이트**를 클릭한 다음 사이트를 클릭합니다.
3. 사이트의 왼쪽 메뉴에서 **설정**를 연 다음 **암호 보호**을 엽니다.

직접 주소는 `/websites/<site-id>/password-protect`입니다.

![KPanel에서 사이트의 암호 보호](https://support.kapsulehost.com/help/screenshots/site-password-protect.b85dc769.webp)

## 작동 방식

보호 기능은 애플리케이션이 실행되기 전에 웹 서버가 HTTP Basic Auth를 사용하여 적용합니다. 보호된 URL을 방문하는 사람은 브라우저 자체의 로그인 대화상자를 받게 되며, 인증하기 전까지는 콘텐츠를 전혀 볼 수 없고 애플리케이션 코드에도 접근할 수 없습니다.

모든 것 앞에 위치하기 때문에, 렌더링된 페이지뿐만 아니라 같은 경로 아래의 자산, 업로드 파일, API 엔드포인트도 함께 보호합니다. 또한 검색 엔진 크롤러도 완전히 차단하는데, 이는 출시 전 사이트에서 정확히 원하는 동작입니다.

## 보호할 대상 선택하기

**보호 추가**을 클릭하면 첫 번째 질문은 범위이며, 두 가지 답이 있습니다.

**Protect entire site.** 루트, 관리자 영역 등 도메인을 방문하는 모든 사람이 로그인 프롬프트를 받게 됩니다. 아직 출시되지 않은 사이트, 스테이징 사본, 또는 전혀 공개적으로 읽혀서는 안 되는 것에 적합한 선택입니다.

**Protect a specific path.** 하나의 하위 경로만 잠그고 나머지 사이트는 공개로 둡니다. 해당 경로 아래의 모든 것이 포함되므로, `/admin`를 보호하면 `/admin/users`도 함께 보호됩니다.

한 사이트에 서로 다른 경로를 포함하는 여러 보호 설정을 생성할 수 있으며, 각각 다른 사용자를 가질 수 있습니다.

## 설정하기

1. **보호 추가**을 클릭합니다.
2. **전체 사이트 보호** 또는 **특정 경로 보호**를 선택합니다. 경로의 경우 `/admin`처럼 슬래시로 시작하도록 입력합니다.
3. **프롬프트 레이블**을 설정합니다. 이는 브라우저 로그인 대화상자에 표시되는 텍스트로, 최대 64자까지 가능합니다. 기본값은 **제한된 영역**입니다. 사이트 이름처럼 알아보기 쉬운 것을 사용하면 방문자가 해당 프롬프트가 피싱 시도가 아니라 정상적인 것임을 알 수 있습니다.
4. 사용자 이름과 8자 이상의 비밀번호를 가진 사용자를 최소 한 명 추가합니다.
5. 접근이 필요한 추가 사용자마다 **사용자 추가**를 클릭합니다.
6. **보호 적용**을 클릭합니다.

규칙이 적용된 후 사이트에 직접 대조하여 확인되므로, 이후에 표시되는 상태는 실제 동작을 반영합니다.

> **Warning:** Basic Auth 자격 증명은 모든 요청과 함께 전송됩니다. HTTPS에서는 전송 중 암호화되므로, 스테이징 사이트나 내부 영역을 차단하는 데는 적합합니다. 다만 이는 신원 확인 시스템이 아닙니다: 사용자별 감사 기록도 없고, 세션도 없으며, 비밀번호 재설정 절차도 없고, 로그인 실패 후 잠금 처리도 없습니다. 진짜로 민감한 것을 보호하는 데는 사용하지 말고, 팀에서 다른 곳에 쓰는 비밀번호를 재사용하지 마세요.

## 사용자 관리하기

기존 보호 설정의 수정 버튼을 열어 사용자 목록을 변경합니다.

- **사용자 추가:** **사용자 추가**를 클릭한 다음 사용자 이름과 비밀번호를 입력합니다.
- **비밀번호 변경:** 해당 사용자의 비밀번호 필드에 새 비밀번호를 입력합니다.
- **비밀번호 유지:** 필드를 비워 둡니다. 기존 사용자는 비밀번호가 변경되지 않았음을 나타내는 플레이스홀더가 표시됩니다.
- **사용자 제거:** 해당 행의 제거 버튼을 클릭합니다.

비밀번호는 다시 표시되지 않습니다. 누군가 비밀번호를 잊어버렸다면 새 비밀번호를 설정하고 알려주세요.

기존 보호 설정의 범위는 변경할 수 없습니다. 보호 설정을 한 경로에서 다른 경로로 옮기려면 제거한 후 새로 만드세요.

## 작동 확인하기

각 보호 설정에는 상태 배지가 표시됩니다:

| 배지 | 의미 |
|---|---|
| 아직 확인되지 않음 | 아직 확인이 실행되지 않았습니다. 잠시 후 새로고침하세요 |
| 보호 확인됨(401) | 외부에서 해당 URL을 요청했을 때 실제 로그인 요청을 받았습니다 |
| 적용되었지만 응답하지 않음, 상태 코드 표시 | 규칙은 작성되었지만 사이트가 다른 것으로 응답했습니다 |

가운데 배지가 원하는 상태입니다. 이는 설정 파일이 작성되었다는 뜻이 아니라, 실제로 외부 요청이 인증 요구를 받았다는 뜻입니다.

각 행에는 **Test** 버튼도 있는데, 이를 누르면 새 탭에서 보호된 URL이 열려 직접 프롬프트를 확인할 수 있습니다. 이는 시크릿 창에서 하세요. 한번 로그인하면 브라우저가 계속 자격 증명을 전송하므로 사이트가 열려 있는 것처럼 보일 것입니다.

저장 후 서버의 다른 설정이 같은 도메인을 사용한다는 경고가 표시되면, 해당 충돌이 해결될 때까지 보호 설정이 적용되지 않습니다. 메시지에는 다른 설정의 이름이 표시됩니다. 확실하지 않다면 지원팀에 문의하세요.

## 보호 설정 제거하기

보호 설정의 제거 버튼을 클릭하고 확인합니다. 확인 창에는 결과가 명확히 안내됩니다: 로그인 프롬프트가 제거되고 해당 경로 또는 전체 사이트가 누구에게나 열립니다.

제거 후 패널은 사이트를 다시 확인합니다. 사이트가 열렸음을 아직 확인할 수 없다면, 확인되지 않은 성공을 주장하는 대신 약 30초 기다렸다가 새로고침하라고 안내합니다.

> **Important:** 전체 사이트 보호를 제거하면 검색 엔진을 포함하여 즉시 전체 인터넷에 사이트가 공개됩니다. 출시일에 이를 수행하기 전에, 올바른 페이지가 게시되었는지, 테스트 콘텐츠가 제거되었는지, 그리고 플레이스홀더 가격이 수정되었는지 등 콘텐츠가 실제로 준비되었는지 확인하세요.

## 일반적인 사용 사례

**출시 전.** 사이트를 구축하는 동안 전체 사이트를 보호합니다. 출시할 때 제거하세요. 이는 관리자 영역, 업로드 파일, 스테이징 데이터도 함께 숨기기 때문에 "출시 예정" 플러그인보다 더 신뢰할 수 있습니다.

**스테이징 환경.** 공개적으로 읽힐 수 있는 스테이징 사본은 중복 콘텐츠 문제이자 데이터 유출 위험입니다. 보호를 적용하고 계속 보호된 상태로 두세요. [스테이징 환경](https://support.kapsulehost.com/ko-kr/staging-environments)을 참조하세요.

**비 WordPress 사이트의 관리자 영역.** 정적 사이트나 `/admin` 경로가 있는 커스텀 애플리케이션의 경우, 애플리케이션이 이미 수행하는 것 앞에 추가 잠금을 설정합니다.

**클라이언트 검토 사이트.** 클라이언트에게 사용자 이름과 비밀번호를 하나 제공하면, 프롬프트 레이블이 무엇에 로그인하는지 알려줍니다.

## 문제 해결

**프롬프트는 나타나지만 비밀번호가 거부됩니다.** 사용자 이름 앞뒤에 공백이 없는지 확인하고, 수정 대화상자에서 비밀번호를 다시 설정하세요. 비밀번호는 최소 8자 이상이어야 합니다.

**제게는 사이트가 열려 있는 것처럼 보이지만 다른 사람에게는 보호되어 있습니다.** 브라우저에 자격 증명이 캐시되어 있습니다. 시크릿 창에서 테스트하세요.

**가동 시간 모니터링이 이제 사이트가 다운된 것으로 보고합니다.** 전체 사이트 보호 시 예상되는 동작입니다: 검사기가 401을 받습니다. [사이트 가동 시간 모니터링](https://support.kapsulehost.com/ko-kr/site-uptime-monitoring)을 참조하면, 장애 사유에 401이 표시됩니다.

**검색 엔진에서 제 페이지가 빠졌습니다.** 보호가 적용된 동안 역시 예상되는 동작입니다. 보호를 제거하고 사이트가 다시 크롤링 가능해지면 복원됩니다.

**배지에 적용되었지만 응답하지 않음이라고 표시됩니다.** 규칙보다 먼저 무언가가 응답한 것입니다. 표시된 상태 코드를 확인하고, 해당 경로에 리디렉션이 먼저 요청을 가로채는지 확인한 후 [사이트 리디렉션](https://support.kapsulehost.com/ko-kr/site-redirects)을 참조하세요.

**보호 설정을 제거할 수 없습니다.** 제거하려면 사이트 쓰기 권한이 필요합니다. 읽기 전용 역할에서는 버튼이 비활성화되어 있습니다.

## 관련 페이지

- 인증서, 악성코드 검사, IP 차단, 로그인 강화 관련 [사이트 보안](https://support.kapsulehost.com/ko-kr/site-security)
- 방문자 국가에 따라 접근을 제한하려면 [사이트의 국가 차단](https://support.kapsulehost.com/ko-kr/site-geo-blocking)
- 방문자에게 표시되는 401 페이지를 브랜드화하려면 [맞춤 오류 페이지](https://support.kapsulehost.com/ko-kr/site-error-pages)
