일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- Notification
- 3d프린터 초보
- Token인증방식
- OnlineIDE
- linux job
- docker container
- Jenkins
- gitlab
- 3D프린터입문
- 3D
- NAS HDD교체
- ci/cd
- octoprint
- data serialization formats
- kubernetes
- 3D 프린터 용어
- 리눅스 파일동기화
- Kotlin
- 3D모델링
- 3D프린터 입문
- 코틀린개발환경
- 3D프린터
- git
- C언어
- 데이터 직렬화 포맷
- 네이버클라우드
- docker
- github
- nas
- IoTNetwork
- Today
- Total
0과 1을 공부하다.
[Apache] 특정 디렉터리 Http Authentication 적용 본문
본 글에서는 Apache 웹서버의 특정 디렉터리에 Http Authentication 적용하는 방법에 대해 알아본다.
※ 본 글은 Linux Rocky8 기준으로 작성되었음.
Apache 설정
아파치에 basic Authentication을 적용하기 위해서는 mod_auth_basic 모듈이 필요하다. httpd.conf 파일에서 확인 가능하다. Apache를 기본적으로 설치하면 내장되어 있기 때문에 별도 설치는 불필요하지만 아래 명령어를 통해 httpd와 관련된 의존성 소프트웨어를 모두 설치한다.
$ yum install -y httpd*
설치 이후 httpd.conf 경로에서 웹 디렉터리의 AllowOverride를 변경한다. httpd.conf의 경로는 Rocky/centos 기준으로 /etc/httpd/conf/httpd.conf이다.
필자는 기본 경로가 /project/web이라서 해당 디렉터리 정보를 변경하였다. AllowOverride에 기본값으로 허용하지 않음(None)으로 지정되어 있다면 허용함(All)으로 변경한다.
.htaccess / .htpasswd 생성
웹 접근제한을 하기 위해 접근제한에 대한 정보를 담는 .htaccess 파일과 사용자 ID/PW를 담는 .htpasswd 파일 생성에 대해 알아본다.
(1) .htaccess
Http Authentication를 적용하기 위한 특정 디렉터리에 텍스트 에디터를 이용하여 파일을 생성한다.
파일에는 아래의 내용을 작성한다.
AuthType Basic
AuthName "사용자 인증 페이지 테스트"
AuthUserFile /test_web/testdir/.htpasswd
require valid-user
각 변수가 의미하는 바는 아래와 같다.
- AuthType -> Basic을 입력한다. 기본 인증방식을 사용한다는 의미한다.
- AuthName -> 사용자 인증시에 나오는 메세지. 사용자가 임의로 원하는 문구를 기입한다.
- AuthUserFile -> 아래 설명할 .htpasswd파일의 경로를 작성한다. 기본적으로 웹에서 .htpasswd 파일에 접근할 수 없지만, 서버의 일반유저가 접근할 수 없는 경로에 지정할 것을 권장한다.
- require valid-user -> 인증된 유저만 접근하도록 한다는 의미한다.
(2) .htpasswd
.htaccess에서 지정한 경로에 .htpasswd 파일을 생성한다. 최초 .htpasswd 파일을 생성하고 아래 명령어를 입력하여 사용자를 등록한다. 최초 등록 할 때만 -c 옵션을 통해 등록하고 이후 생각해도 된다.
$ htpasswd -c .htpasswd [사용자id]
> password: [비밀번호 입력]
명령어를 실행하면 아래와 같이 ID와 PW 정보가 암호화되어 .htpasswd 파일에 입력된 모습을 확인 할 수 있다.
ID / PW URL 전달
위에서 웹 서버의 Http Authentication 적용한 사이트에 접속하기 위해 URL에 ID/PW 정보를 전달하는 방법에 대해 알아본다. 앞서 보았던 것처럼 URL에 접속하여 계정 정보를 입력하여 접근 할 수도 있지만 URL에 계정정보를 함께 전달하여 웹에 접근하거나 파일을 내려 받을 수 있다.
계정 정보를 함께 전달하기 위해서는 '--http-user=test' '--http-password=test' 형태로 파라미터를 전달하면 된다. 예를 들어 test.com/test/test.html 경로에 Http Authentication를 적용하였고 계정 정보를 ID:test /pw:1234로 지정하였다면 아래와 같이 접근할 수 있다.
http://test.com/test/test.html --http-user=test --http-password=1234
wget을 통해 웹서버에서 파일을 내려받는 것도 동일하다.
Wget http://test.com/test/data.jpg --http-user=test --http-password=1234
참고사이트
- https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=bb_&logNo=220929210003
- https://vineblog.tistory.com/300
- https://www.badaweb.co.kr/bada3/bbs/board.php?bo_table=lecture&wr_id=12291
※ 본 게시글의 정보가 잘못 되었거나 부족한 부분에 대한 피드백을 환영합니다.
* CopyRight 2022. Jay Park All rights reserved.
'Study > Web' 카테고리의 다른 글
[Laravel] Laravel 프로젝트에 Swagger 적용 (0) | 2023.02.13 |
---|---|
[Laravel] Laravel 형상관리 (0) | 2022.10.27 |
[Laravel] Eloquent Model 작성 (0) | 2022.10.13 |
[Laravel] Laravel 설치 및 개요 (0) | 2022.10.13 |
[PHP] PHPUnit Test 환경구성 및 테스트 (0) | 2022.04.14 |