====== SSL(https) 적용 가이드 ======
* description :
* author : 김토피아
* email : kimmk@repia.com
* lastupdate : 2021-01-19
===== 요청, 질문 =====
* 요청하실 내용을 이름과 함께 작성해 주세요
* 예시) 예시) 이것 저것 모두 도와주세요~
===== SSL 이란? =====
> SSL은 Secure Socket Layer의 약자
> HTTPS는 Hypertext Transfer Protocol의 약자 보통 443 포트를 사용
> SSL를 사용하여 HTTP 프로토콜의 보안 버전
===== 준비과정(서버 작업 전) =====
'' 기존에 apache(httpd)에 적용이 된 경우라면 재부팅 시 암호를 요구 할 수 있으므로 꼭 암호 확보 후 작업 진행 할것 ''\\
**__'' 암호를 모를 경우 apache(httpd)는 종료 할 수 있으나 시작 할 수 없음 ''__**
> 0. 기본적으로 https 작업은 홈페이지 업체에 요청하며 담당자와 업체에서 작업진행을 매우 회피 할 경우 지원 ( 검색엔진의 유지보수 범위는 검색엔진까지 )
> 1. apache가 독립적으로 있을 때만 작업하며, 타 솔루션 또는 홈페이지가 같이 사용 중인 경우에는 검색엔진에서 절대 작업하지 않는다.
> 2. 담당자에게 key파일, crt 파일을 받는다. (암호도 있는지 확인 한다. apache가 재시작 할때 암호를 묻는 인증서가 있음)
> 3. search.도메인.go.kr 인 경우에는 와일드카드 사용이 가능한 파일을 달라고 요청
> 4. root 계정 필수
===== 준비과정(서버 작업) =====
> 1. OS 및 apache 버전 확인
[root@search] cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@search] httpd -version
Server version: Apache/2.2.15 (Unix)
Server built: Jun 19 2018 15:45:13
> 2. 기존 파일 백업
[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 파일 확인)
[root@search] cd /etc/httpd/modules/
[root@search] ls -al mod_ssl.so
# mod_ssl.so가 없을 경우에 /etc/httpd/conf.d/ssl.conf도 같이 없음
# mod_ssl.so 설치는 yum으로 설치 진행
[root@search] yum install mod_ssl
# OS가 노후 됐다면 아래의 오류가 발생 할 수 있음 (CentOS 6.7 기준)
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Determining fastest mirrors
YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
Eg. $ echo "https://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt/
removing mirrorlist with no valid mirrors: /var/cache/yum/x86_64/6/base/mirrorlist.txt
Error: Cannot find a valid baseurl for repo: base
#해결방안 (각 오류에 대해서는 google에 자료가 많이 있습니다.)
[root@search] echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt
[root@search] echo "https://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
[root@search] echo "https://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt
> 2. SSL 설치 완료 후 443 포트 동작 확인
# 아파치 재시작 ( 특별한 오류가 없다면 [ OK ] 메시지와 함께 프로세스 정상 구동
# 검색페이지 서비스 되는지 확인
[root@search] service httpd restart
#포트로 확인
[root@search] netstat -anlp | grep 443
tcp 0 0 :::443 :::* LISTEN 7326/httpd
unix 3 [ ] STREAM CONNECTED 17443 2786/gdm-simple-gre
#Telnet으로 확인
#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 파일 수정
# 변경이 된 부분만 수정
[root@search] vi /etc/httpd/conf.d/ssl.conf
⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩
#####################################################
ServerName www.example.com:443
⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩
ServerName search.jbe.go.kr
ServerAlias search.jbe.go.kr
######################################################
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩
SSLCertificateFile /etc/httpd/conf.d/star_jbe_go_kr_cert.pem
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩
SSLCertificateKeyFile /etc/httpd/conf.d/star_jbe_go_kr_key.pem
######################################################
# 추가 작성 부분
# 위에 추가
223 #Configure mod_jk
224 JkLogFile /var/log/httpd/mod_jk.log
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:web:apache:한국정보인증_apache_v2.2이상_ssl인증서_설치가이드_v3.1.pdf|[한국정보인증](Apache_v2.2이상)SSL인증서_설치가이드_V3.1.pdf}}
{{tag>김토피아 ssl httpd apache}}