본문 바로가기

OS/Linux

htpasswd로 웹페이지 잠금하기

 

웹 서버의 보안을 ip나 url에서 보안을 강화하거나 .htaccess파일을 사용하여 다중 사용자 환경에서 접근제어를 하고자 할 경우

apache의 인증 설정을 사용하여 웹 리소스에 접근할 때 인증을 요구하는 방식으로 htapsswd를 사용합니다.

 

1) .htaccess파일 생성

1-1) vhost를 사용하는 경우 (apache -S로 확인)

vhost 별 DocumentRoot를 확인하여 .htaccess 파일을 확인하여 설정합니다.

 

1-2) vhost가 아닌경우

DocumentRoot를 확인하여 .htaccess 파일을 확인하여 설정합니다.

 

.htaccess파일은 각각의 DocumentRoot로 이동하여 생성하고

vi .htaccess

AuthType Basic
AuthName "Restricted Content"
AuthUserFile /PATH/TO/DocumentRoot/.htpasswd # documentroot 경로 지정
Require valid-user

AuthUserFile에 .htpasswd의 경로를 지정해줍니다.

 

2) conf파일 설정

vhost라면 conf파일에

<Directory "/PATH/TO/DocumentRoot">  # vhost의 docroot 경로
AllowOverride ALL
Options FollowSymLinks
Require all granted
</Directory>

를 추가로 설정합니다.

 

3) 계정/비밀번호 생성

먼저 1번에 설정한 경로로 이동한 후

htpasswd -c .htpasswd user1 # 최초 생성
htpasswd .htpasswd user2 # 추가 생성

으로 계정 생성 후 비밀번호를 설정합니다.

 

4) apache 재시작

이제 아파치를 재시작하여 사용하면 적용이 됩니다.

 

만약 해당 방법으로도 적용이 되지 않는다면 설정 파일에서

<Directory /PATH/TO/DocumentRoot>
        AuthType Basic
        AuthName "Restricted Content"
        AuthUserFile /PATH/TO/DocumentRoot/.htpasswd
        Require valid-user
</Directory>

를 직접 httpd.conf에 추가하여 적용이 가능합니다.

 

아래는 성공 시 화면입니다.

htpasswd