아파치의 인증을 사용하기 위해서는 httpd.conf 를 수정 해줘야 하며 모듈라인에 mod_auth_basic 가 있어야 한다.
[root@yongbok ~]# vi /usr/local/apache2/conf/httpd.conf
LoadModule auth_basic_module modules/mod_auth_basic.so
기본적으로 Basic 인증은 브라우저가 서버로 암호를 암호화하지 않고 보내기 때문에 중요한 자료나 인증을 필요로하는곳에서는 잘 쓰지 않는다.
httpd.conf 또는 httpd-vhost.conf 에서 해당 디렉토리 옵션에 AllowOverride AuthConfig 옵션을 줘야한다.
아래는 필자가 실제로 사용하고 있는 가상호스트설정(httpd-vhsot.conf)이다.
<VirtualHost *:80>
ServerName ruo91.yongbok.net
ServerAdmin ruo91@yongbok.net
ServerAlias ruo91.yongbok.com ruo91.yongbok.net
DocumentRoot /home/ruo91/public_html
ErrorLog /home/apache2-log/ruo91-error.log
LogLevel warn
SetEnvIf Remote_Addr 192.168.0.2$ do_not_log
CustomLog /home/apache2-log/ruo91-access.log combined env=!do_not_log
ServerSignature Off
ErrorDocument 403 http://www.yongbok.net/error/permission
ErrorDocument 404 http://www.yongbok.net/error
<Directory “/home/ruo91/public_html”>
Options FollowSymLinks
AllowOverride AuthConfig
</Directory>
</VirtualHost>
설정이 완료 되었다면 아파치를 재시작한다.
[root@yongbok ~]# /usr/local/apache2/bin/apachectl restart
웹 인증을 사용하기 위해 .htaccess 를 인증할 디렉토리안에 아래 처럼 생성한다.
[root@yongbok ~]# vi /home/ruo91/public_html/auth/.htaccess
# 인증에 사용할 영역
AuthName “Admin Auth”
# 사용자를 인증할 방법 (기본 Basic)
AuthType Basic
# 사용자
AuthUserFile “/home/ruo91/public_html/auth/.htpasswd”
<Limit GET POST># 암호파일에 있는 누구라도 올바른 암호를 입력하기만 하면 접근을 허용
require valid-user
</Limit>
사용자 암호를 설정하기 위해 아파치의 htpasswd 를 사용하여 생성한다.
[root@yongbok ~]# /usr/local/apache2/bin/htpasswd -c /home/ruo91/public_html/auth/.htpasswd ruo91
New password:
Re-type new password:
Adding password for user ruo91
지정한 디렉토리에 .htpasswd 파일이 생겼으며 내용은 아래와 같다.
[root@yongbok ~]# cat /home/ruo91/public_html/auth/.htpasswd
ruo91:SN3YvECTFnFQE
필자는 사용자 아이디를 ruo91 으로 비밀번호를 1234 로 만들었으며 웹페이지에서 확인시 정상적으로 로그인 되었다.