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 <VirtualHost _default_:443> ⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩⇩ <VirtualHost *:443> ##################################################### 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 ###################################################### # 추가 작성 부분 # </VirtualHost> 위에 추가 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