====== 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}}