> 운영 및 유지보수 > 엔진스 > Nginx에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?

Nginx에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?

百草
풀어 주다: 2025-03-17 17:03:14
원래의
224명이 탐색했습니다.

Nginx에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?

Nginx에서 HTTP 인증 구현은 기본 및 다이제스트 인증 방법을 사용하여 수행 할 수 있습니다. 다음은 설정 방법에 대한 단계별 안내서입니다.

기본 인증 :

  1. 비밀번호 파일 작성 : 먼저 사용자 이름과 암호가 포함 된 파일을 만들어야합니다. htpasswd 명령을 사용 하여이 파일을 만들고 관리하십시오.

     <code>sudo htpasswd -c /etc/nginx/.htpasswd username</code>
    로그인 후 복사

    따라서 지정된 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. -c 플래그없이 추가 사용자를 추가 할 수 있습니다.

  2. Nginx 구성 : 인증 세부 정보를 포함하도록 Nginx 구성 파일을 수정하십시오. 서버 또는 위치 블록에 다음을 추가하십시오.

     <code class="nginx">location /protected/ { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; }</code>
    로그인 후 복사

    이를 위해서는 /protected/ 디렉토리에 액세스하기위한 인증이 필요합니다.

  3. nginx를 다시 시작 : 변경 후 Nginx를 다시 시작하여 새 구성을 적용하십시오.

     <code>sudo systemctl restart nginx</code>
    로그인 후 복사

다이제스트 인증 :

  1. 비밀번호 파일 생성 : 기본 인증과 유사하게 비밀번호 파일이 필요합니다. htdigest 와 같은 도구를 사용하여 만들 수 있습니다.

     <code>sudo htdigest -c /etc/nginx/.htdigest "Realm Name" username</code>
    로그인 후 복사

    "Realm Name"을 원하는 영역 이름으로 바꾸십시오.

  2. Nginx : Digest Auth는 ngx_http_auth_digest_module 을 필요로하며 NGINX의 기본 빌드에는 포함되지 않을 수 있습니다. 있으면 다음과 같이 nginx를 구성하십시오.

     <code class="nginx">location /protected/ { auth_digest "Restricted Area"; auth_digest_user_file /etc/nginx/.htdigest; }</code>
    로그인 후 복사
  3. nginx를 다시 시작하십시오 : nginx를 다시 시작하여 새 구성을 적용하십시오.

Nginx에서 Basic vs. Digest 인증을 사용하는 보안의 영향은 무엇입니까?

기본 및 다이제스트 인증은 자체 보안 영향을 미칩니다.

기본 인증 :

  • 보안 : 기본 인증은 사용자 이름과 비밀번호를 일반 텍스트로 보냅니다. Base64 인코딩. 이것은 누군가가 데이터를 가로 채면 데이터를 쉽게 디코딩하고 자격 증명을 얻을 수 있음을 의미합니다.
  • 취약성 : 모든 요청과 함께 자격 증명이 전송되기 때문에 재생 공격에 취약합니다.
  • 장점 : 구현하기가 널리 지원되고 간단합니다.

다이제스트 인증 :

  • 보안 : Digest 인증은 챌린지 응답 메커니즘을 사용하기 때문에 더 안전합니다. 실제 비밀번호를 보내는 대신 해시 응답을 보내어 공격자가 자격 증명을 얻기가 더 어려워집니다.
  • 취약성 : HTTPS를 사용하지 않으면 중간 공격과 같은 특정 유형의 공격에 여전히 취약 할 수 있습니다.
  • 장점 : 기본 인증보다 더 나은 보안을 제공하지만 널리 지원되지 않고 구현하기가 더 복잡합니다.

비교:

  • 암호화 : 기본 인증을 위해서는 HTTPS가 안전해야하지만 Digest 인증은 HTTP보다 어느 정도의 보안을 제공 할 수 있지만 HTTPS는 여전히 권장됩니다.
  • 복잡성 : 기본 인증을 설정하고 관리하기가 더 쉽고 Digest 인증에는 서버 및 클라이언트의 구성과 지원이 더 필요합니다.

더 나은 사용자 관리를 위해 인증 영역을 사용하도록 nginx를 구성하려면 어떻게해야합니까?

Nginx의 인증 영역은 공통 이름으로 인증이 필요한 리소스를 그룹화하는 데 사용됩니다. 이는 사용자 관리를 개선하는 데 도움이 될 수 있으며 액세스하는 내용에 대해 사용자에게 명확한 컨텍스트를 제공 할 수 있습니다. 인증 영역을 사용하도록 nginx를 구성하는 방법은 다음과 같습니다.

  1. 영역을 통한 기본 인증 :

     <code class="nginx">location /protected/ { auth_basic "Restricted Area"; # This is the realm name auth_basic_user_file /etc/nginx/.htpasswd; }</code>
    로그인 후 복사

    인용문의 텍스트는 인증 프롬프트 중에 사용자에게 표시되는 영역 이름입니다.

  2. 영역으로 인증 인증 :

     <code class="nginx">location /protected/ { auth_digest "Restricted Area"; # This is the realm name auth_digest_user_file /etc/nginx/.htdigest; }</code>
    로그인 후 복사

    기본 인증과 유사하게 인용문의 텍스트는 영역 이름입니다.

  3. 다중 영역 :
    서버의 다른 부분에 대한 액세스를 관리하기 위해 다른 위치에 대해 다른 영역을 설정할 수 있습니다.

     <code class="nginx">location /admin/ { auth_basic "Admin Area"; auth_basic_user_file /etc/nginx/.htpasswd_admin; } location /user/ { auth_basic "User Area"; auth_basic_user_file /etc/nginx/.htpasswd_user; }</code>
    로그인 후 복사

    이 예제는 관리자 및 사용자 영역에 다른 영역과 다른 비밀번호 파일을 사용하여 사용자 관리를 향상시킵니다.

향상된 보안을 위해 NGINX의 기본 및 다이제스트 인증 방법을 결합 할 수 있습니까?

NGINX는 동일한 위치 블록 내에서 기본 및 다이제스트 인증을 결합하는 것을 기본적으로 지원하지 않지만 다른 인증 방법이있는 별도의 위치를 ​​설정하여 향상된 보안 형태를 달성 할 수 있습니다. 구성하는 방법은 다음과 같습니다.

  1. 덜 민감한 영역에 대한 기본 인증 :

     <code class="nginx">location /less_sensitive/ { auth_basic "Less Sensitive Area"; auth_basic_user_file /etc/nginx/.htpasswd_less_sensitive; }</code>
    로그인 후 복사
  2. 보다 민감한 영역에 대한 Digest Auth :

     <code class="nginx">location /more_sensitive/ { auth_digest "More Sensitive Area"; auth_digest_user_file /etc/nginx/.htdigest_more_sensitive; }</code>
    로그인 후 복사
  3. 폴백 인증 :
    사용자가 컨텐츠에 액세스하기 위해 폴백 방법을 갖기를 원한다면 대체 인증 방법으로 별도의 위치를 ​​설정할 수 있습니다.

     <code class="nginx">location /fallback/ { auth_basic "Fallback Area"; auth_basic_user_file /etc/nginx/.htpasswd_fallback; }</code>
    로그인 후 복사

이 설정은 동일한 위치 내에서 두 가지 메소드를 기술적으로 결합하지는 않지만 서버의 다른 영역에 대한 기본 및 다이제스트 인증의 강점을 활용하여 데이터의 민감도를 기반으로 적절한 인증 메커니즘을 제공하여 보안을 향상시킬 수 있습니다.

위 내용은 Nginx에서 HTTP 인증 (기본 인증, Digest Auth)을 구현하려면 어떻게합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿