시작페이지로 즐겨찾기추가
로그인
회원가입 l 출석체크 l 마이페이지 l CGIMALL
자료실 사이트등록 랭킹100 프로그램리뷰 관리자추천자료 초보가이드
커뮤니티
전체 펼쳐보기
퀵메뉴링크
jquery , CSS , PHP , Javascript , 무료폰트 , ASP
상세검색
> 상세보기 초보가이드
사이트등록
현재접속자 새로고침
게시판타이틀 초보가이드 / 상세보기
트위터로 보내기 미투데이로 보내기 싸이월드 공감
Apache기본인증절차
초보가이드 > 상세보기 | 2013-05-29 14:48:03
추천수 539
조회수   7,818

닉네임

HappyCGI

제목

Apache기본인증절차
내용
 
1 개념
2 .htaccess 파일 만들기
3 .htpasswd 파일 만들기
4 아파치 인증화면

1 개념 #


특정 페이지를 접속하게 될 경우 ID와 Password를 물어 인증을 통해 접속을 허용하는 것을 말하며, 쿠키 (Cookie)를 이용하는 것과 아파치에서 제공하는 다른 인증 모듈을 이용하는 방법이 있습니다.

여기서는 아파치 기본 인증모듈인 htpasswd를 통해서 사용자 인증하는 방법을 사용자가 디렉토리에서 설정해야 할 것들에 대해서 알아 보겠습니다.

이 것은 cgi?java script으로 만든 것이 아닌 APACHE httpd server 데몬과, 사용자가 만드는 두 개의 파일을 이용한 웹서버의 기본 인증 절차에 의한 것입니다.

두 개의 파일은 각각 .htaccess 파일과 .htpasswd 파일인데 그 파일들을 패스워드를 걸 페이지가 있는 디렉토리에 두면, 외부인이 브라우저로 그 디렉토리에 있는 파일들(HTML파일들)에 접근을 할 때, 패스워드를 묻는 대화상자를 내보내게 합니다.

이 것은 아래와 같은 방식으로 두 파일을 설치하면 특정페이지에 쉽게 패스워드를 설치 할 수 있습니다.

2 .htaccess 파일 만들기 #

.htaccess 파일을 에디터 (vi, [http]
메모장)을 이용해 아래와 같이 만들어 server에 있는 자기 계정의 암호 인증할 특정 디렉토리로 전송합니다. (FTP의 경우 반드시 ASCII 모드로 전송하셔야 합니다.)


 AuthName "안녕하세요" --- 인증 창 이름(보통 홈페이지 이름)
 AuthType Basic --- 인증타입은 일반적으로 Basic
 AuthUserFile /home/user_id/public_html/.htpasswd --- (htpasswd 유틸리티를 실행할 경우 이 파일(.htpasswd)이 생성된다.)
 AuthGroupFile /dev/null --- 그룹으로 인증확인할 경우 그룹 인증파일명
 <Limit GET POST> --- GET 과 POST 방식의 접근만을 허용
 require  valid-user--- 인증된 사용자만 접근 허용하는 것을 말함
 </Limit> --- 닫기


아래는 샘플파일 .htaccess 입니다.

   AuthName "해피CGI 인증테스트중"
   AuthType Basic
   AuthUserFile /home/my_id/public_html/.htpasswd
   AuthGroupFile /dev/null
   <Limit GET POST>
   require valid-user
   </Limit>


3 .htpasswd 파일 만들기 #

이 파일을 만들기 위해서는 htpasswd라는 프로그램을 사용해야 합니다.

일반적으로 계정에 PATH 설정이 되어 있으므로, 실행파일을 자신의 홈디렉토리나 혹은 실행할 디렉토리 (패스워드를 걸 디렉토리)에 둔 후,

htpasswd -c .htpasswd UserID

라는 명령을 내립니다.

여기서 .htpasswd 파일은 처음 만드는 것이므로 반드시 -c 옵션을 줍니다.
.htpasswd 는 사용자이름과 비밀번호를 저장하는 파일입니다.

만약 위의 명령의 결과가 "No such file or directory" 라면 이는 htpasswd명령어를 찾지 못하는 경우이며, which나 whereis등의 명령어로 확인 한 후에 path가 잡혀있지 않다면 절대경로로 명령어를 사용하셔야 합니다.
예를 들어 파일의 위치가 /usr/sbin이라면 절대경로로 명령을 사용하는 경우의 예는 다음과 같습니다.

/usr/sbin/htpasswd -c .htpasswd UserID


?UserID에는 등록할 자신의 사용자ID를 쓰면 됩니다. 그러면 사용자의 패스워드를 묻고, 그 패스워드를 입력하면, 다시 그 패스워드를 재입력하게 하여 확인합니다.


자, 이제 .htpasswd 파일이 만들어 졌습니다. 이제 부터는 그 디렉토리에 있는 페이지들(html파일들)을 브라우저에서 호출하면 비밀번호을 묻는 대화상자가 나타나고, 그곳에 .htpasswd에 입력되어 있는 아이디와 패스워드를 입력해야 통과하게 됩니다.


.htpasswd에 다른 사람들의 아이디와 패스워드를 추가하려면,

htpasswd .htpasswd USER-ID

로 입력하여 추가합니다. 여기서 USER-ID에는 추가하려는 아이디를 입력하고, .htpasswd 는 .htaccess파일의 ?AuthUserFile에서 지정한 파일이름입니다. (조심할 점은 한번 만들어진 .htpasswd파일에 -c 옵션을 넣으면 새로운 .htpasswd 파일이 만들어지면서 기존파일을 덮어쓰므로 절대 -c 옵션을 사용하면 안됩니다.)


.htpasswd에 다른 사람들의 패스워드를 변경하려면,

htpasswd .htpasswd USER-ID

로 입력하여 변경합니다. 추가하는 방법과 같다는 걸 아시겠죠..!!

4 아파치 인증화면 #


ClipBoard3.jpg

아파치 사용자 인증이 잘 되었다면 위 그림처럼 특정페이지,폴더의 접속시 화면이 나옵니다. ^^
추천스크랩소스보기 목록
이전게시글 이메일 포워딩하기 2013-05-29 14:47:20
다음게시글 파일변경이안될때 2013-05-29 14:48:35