문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
wiki:web:apache:ssl_적용_가이드 [2021/01/19 00:29] kimmk 만듦 |
wiki:web:apache:ssl_적용_가이드 [2023/01/13 18:44] (현재) |
||
---|---|---|---|
줄 1: | 줄 1: | ||
+ | ====== SSL(https) 적용 가이드 ====== | ||
<WRAP left notice 80%> | <WRAP left notice 80%> | ||
* description : | * description : | ||
줄 6: | 줄 7: | ||
</ | </ | ||
<WRAP clear/> | <WRAP clear/> | ||
+ | ===== 요청, 질문 ===== | ||
+ | * 요청하실 내용을 이름과 함께 작성해 주세요 | ||
+ | * 예시) <do 2021-01-18 김토피아, | ||
+ | |||
+ | ===== SSL 이란? ===== | ||
+ | > SSL은 Secure Socket Layer의 약자 | ||
+ | > HTTPS는 Hypertext Transfer Protocol의 약자 보통 443 포트를 사용 | ||
+ | > SSL를 사용하여 HTTP 프로토콜의 보안 버전 | ||
+ | |||
+ | ===== 준비과정(서버 작업 전) ===== | ||
+ | '' | ||
+ | **__'' | ||
+ | > 0. 기본적으로 https 작업은 홈페이지 업체에 요청하며 담당자와 업체에서 작업진행을 매우 회피 할 경우 지원 ( 검색엔진의 유지보수 범위는 검색엔진까지 ) | ||
+ | > 1. apache가 독립적으로 있을 때만 작업하며, | ||
+ | > 2. 담당자에게 key파일, crt 파일을 받는다. (암호도 있는지 확인 한다. apache가 재시작 할때 암호를 묻는 인증서가 있음) | ||
+ | > 3. search.도메인.go.kr 인 경우에는 와일드카드 사용이 가능한 파일을 달라고 요청 | ||
+ | > 4. root 계정 필수 | ||
+ | |||
+ | ===== 준비과정(서버 작업) ===== | ||
+ | > 1. OS 및 apache 버전 확인 | ||
+ | <code bash> | ||
+ | [root@search] cat / | ||
+ | CentOS release 6.7 (Final) | ||
+ | |||
+ | [root@search] httpd -version | ||
+ | Server version: Apache/ | ||
+ | Server built: | ||
+ | |||
+ | </ | ||
+ | > 2. 기존 파일 백업 | ||
+ | <code bash> | ||
+ | [root@search] cd /etc/httpd/ | ||
+ | [root@search] cp -rf conf conf_20210118 | ||
+ | [root@search] cp -rf conf.d conf.d_20210118 | ||
+ | </ | ||
+ | |||
+ | ===== 적용과정(서버 작업) ===== | ||
+ | > 1. ssl module 확인 (mod_ssl.so 파일 확인) | ||
+ | <code bash> | ||
+ | [root@search] cd / | ||
+ | [root@search] ls -al mod_ssl.so | ||
+ | |||
+ | # mod_ssl.so가 없을 경우에 / | ||
+ | # mod_ssl.so 설치는 yum으로 설치 진행 | ||
+ | |||
+ | [root@search] yum install mod_ssl | ||
+ | |||
+ | # OS가 노후 됐다면 아래의 오류가 발생 할 수 있음 (CentOS 6.7 기준) | ||
+ | Loaded plugins: fastestmirror, | ||
+ | Setting up Install Process | ||
+ | Determining fastest mirrors | ||
+ | YumRepo Error: All mirror URLs are not using ftp, http[s] or file. | ||
+ | Eg. $ echo " | ||
+ | removing mirrorlist with no valid mirrors: / | ||
+ | Error: Cannot find a valid baseurl for repo: base | ||
+ | # | ||
+ | [root@search] echo " | ||
+ | [root@search] echo " | ||
+ | [root@search] echo " | ||
+ | </ | ||
+ | > 2. SSL 설치 완료 후 443 포트 동작 확인 | ||
+ | <code bash> | ||
+ | # 아파치 재시작 ( 특별한 오류가 없다면 [ OK ] 메시지와 함께 프로세스 정상 구동 | ||
+ | # 검색페이지 서비스 되는지 확인 | ||
+ | [root@search] service httpd restart | ||
+ | #포트로 확인 | ||
+ | [root@search] netstat -anlp | grep 443 | ||
+ | tcp 0 0 ::: | ||
+ | unix 3 [ ] | ||
+ | # | ||
+ | #Escap character is 가 보이면 포트 활성화 | ||
+ | [root@search] telnet 127.0.0.1 | ||
+ | Trying 127.0.0.1... | ||
+ | Connected to 127.0.0.1. | ||
+ | Escape character is ' | ||
+ | </ | ||
+ | > 3. ssl.conf 파일 수정 | ||
+ | <code bash> | ||
+ | # 변경이 된 부분만 수정 | ||
+ | [root@search] vi / | ||
+ | |||
+ | < | ||
+ | ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ | ||
+ | < | ||
+ | ##################################################### | ||
+ | |||
+ | ServerName www.example.com: | ||
+ | ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ | ||
+ | ServerName search.jbe.go.kr | ||
+ | ServerAlias search.jbe.go.kr | ||
+ | |||
+ | ###################################################### | ||
+ | |||
+ | SSLCertificateFile / | ||
+ | ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ | ||
+ | SSLCertificateFile / | ||
+ | |||
+ | SSLCertificateKeyFile / | ||
+ | ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ | ||
+ | SSLCertificateKeyFile / | ||
+ | |||
+ | ###################################################### | ||
+ | |||
+ | # 추가 작성 부분 | ||
+ | # </ | ||
+ | |||
+ | 223 #Configure mod_jk | ||
+ | 224 JkLogFile / | ||
+ | 225 JkLogLevel info | ||
+ | 226 | ||
+ | 227 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " | ||
+ | 228 JkRequestLogFormat "%w %V %T" | ||
+ | 229 | ||
+ | 230 #Root context | ||
+ | 231 JkMount /*.jsp ajp13 | ||
+ | 232 JkMount /*.do ajp13 | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== Doc ===== | ||
+ | * {{wiki: | ||
+ | |||
+ | {{tag> |