아파치의 인증을 사용하기 위해서는 httpd.conf 를 수정 해줘야 하며 모듈라인에 mod_auth_basic 가 있어야 한다.

[[email protected] ~]# 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 [email protected]
    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>

설정이 완료 되었다면 아파치를 재시작한다.

[[email protected] ~]# /usr/local/apache2/bin/apachectl restart

웹 인증을 사용하기 위해 .htaccess 를 인증할 디렉토리안에 아래 처럼 생성한다.

[[email protected] ~]# 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 를 사용하여 생성한다.

[[email protected] ~]# /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 파일이 생겼으며 내용은 아래와 같다.

[[email protected] ~]# cat /home/ruo91/public_html/auth/.htpasswd
ruo91:SN3YvECTFnFQE

필자는 사용자 아이디를 ruo91 으로 비밀번호를 1234 로 만들었으며 웹페이지에서 확인시 정상적으로 로그인 되었다.