Linux

[Linux] Apache 사용자 인증 - htpasswd

thdwldud 2025. 12. 28. 16:14

Apache 사용자 인증

1. 설정 절차

  1. HTTP 프로토콜은 기본적으로 사용자 인증을 하지 않지만, 아파치 웹서버에서는 특정 웹 페이지에 대해 다음과 같은 절차를 통해 사용자 인증을 할 수 있음

1. 사용자 생성 및 사용자 계정 파일 생성

  • posein이라는 웹 사용자를 생성하고 계정 파일은 /etc/password로 생성
htpasswd -c /etc/password posein

 

2. httpd.conf 파일에 인증할 디렉터리 관련 설정

<Directory "/usr/local/apache/htdocs/admin">
    AllowOverride AuthConfig
</Directory>

 

3. 인증할 디렉터리에 관련 정보를 담고 있는 .htaccess 파일 생성

# vi /usr/local/apache/htdocs/admin/.htaccess
AuthType Basic
AuthName "Admin Login"
AuthUserFile /etc/password
Require valid-user

 

2. .htaccess 지시자

지시자 설명
AuthType 인증 형태를 지정. Basic 또는 Digest를 선택할 수 있음
AuthName 웹 브라우저 인증 창에 표시되는 메시지를 설정
AuthUserFile 사용자 계정 파일명을 설정
Require 접속을 허가할 사용자를 설정. 사용자 계정 파일에 등록된 사용자를 전부 허가하려면 ‘Require valid-user’라고 설정하고, 특정 계정만 허가하려면 ‘Require user posein yuloje’ 형태로 지정

 

3. 관련 명령어 : htpasswd

  • 아파치 사용자 인증 파일을 생성하고 관리하는 명령
htpasswd [option] 계정파일 사용자명

 

[주요 옵션]

옵션 설명
-c 사용자 계정 파일을 생성할 때 사용하는 옵션으로 계정 생성할 때 한번은 반드시 사용해야 함
-B Blowfish 기반의 bcrypt를 이용해서 패스워드를 암호화
-b 암호를 묻는 명령 줄 대신에 직접 지정
-n 파일 업데이트와 관련된 내용을 표준 출력에 표시하지 않음

 

[사용 예]

  • posein이라는 계정을 생성하고, 관련 정보 파일은 /usr/local/apache/conf/password에 생성
htpasswd -c /usr/local/apache/conf/password posein
  • yuloje라는 계정을 생성
htpasswd /usr/local/apache/conf/password yuloje
  • Blowfish 기반의 bcrypt 암호화를 사용해서 아이디는 joon, 패스워드는 password를 갖는 웹 사용자를 생성하고 관련 정보는 /etc/webuser 파일에 저장
htpasswd -Bbn joon password > /etc/webuser

 

💡위치 / 옵션 찾기

사용자 인증 관련 계정 생성 명령어

  • htpasswd 라는 것은 암기!

httpd.conf 에서 위치 찾기

  • vi /usr/local/apache/httpd.conf 
  • /htaccess 입력하여 위치 찾기 
    • /usr/local/apache/conf/extra/httpd-multilang-errordoc.conf