목 차

Similar documents
Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

1. 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$Apache] = Apache 디렉토리. 소스버전의경우 Apache]# mkdir conf/ssl Apache]# cp

Apache( 단일도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

1. 발급받으신인증서를해당 SSL 폴더에업로드또는저장합니다. Apache source 및 package 구분아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름은상이할수있음 ] -> 확인경로에설

Apache( 단일도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache( 멀티도메인 ) SSL 인증서신규설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

목차 1. 사전준비 mod_ssl OpenSSL 인증서파일 2. 주의사항 신규및갱신구분 CSR 직접생성여부 3. 인증서설치 httpd.conf 설정 httpd-ssl.conf 설정 갱신설치 서비스재시작 4. 확인및테스트 서비스구동확인 네트워크상태확인 방화벽확인 실제브라

4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY

Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 본문서는주식회사한국기업보안에서 SSL 보안서버인증서설치를위해작성된문서로 주식회사한국기업보안의동의없이무단으로사용하실수없습니다. [ 고객센터 ] 한국기업보안. 유서트기술팀 Copyright 201

Apache install guide

untitled

untitled

Tomcat 4.x 웹서버에 J2SE 를설치를확인합니다. java -version java version "1.4.2_05" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04) Java HotSp

ApacheWebServer.hwp

Apache를 이용한 CSR 생성방법

4. CSR 값확인. (vi csr.pem) CSR(Certificate Signing Request) 즉, 인증서서명요청입니다. 이는자신이설치할웹서버에서 DN 값, 각종정보를암호화한파일로써 한국전자인증 신청란에서붙여넣으면됩니다. 인증서설치 1. 직접 CSR 및 KEY

PowerPoint 프레젠테이션

SSL인증서 설치 매뉴얼 (Apache)

멀티 & 와일드 1. OHS 인증서설치 * $ORACLE_HOME/opmn/conf/opmn.xml 파일확인하기 default]$ vi /App/UCERT/opmn/conf/opmn.conf <ias-component id="http_serve

BEA_WebLogic.hwp

Microsoft Word - SSL_apache.doc

1. OHS 인증서설치 * $ORACLE_HOME/opmn/conf/opmn.xml 파일확인하기 default]$ vi /App/UCERT/opmn/conf/opmn.conf <ias-component id="http_server"> <proc


정적으로 설치된 mod_ssl 모듈확인 동적으로 설치된 mod_ssl 모듈확인 웹서버에 설치된 모듈중 mod_so.c 를 먼저 확인후 동적으로 설치된 모듈중 mod_ssl.so 를 확인합니다. 동적으로 설치된 경우 apache 설치 디렉토리의 module 이나 libe

개정이력 버전 개정일 개정내용 Ver 년 5월 Apache Web Server SSL 설명서최초작성 Ver 년 1월 인증서갱신방법, 다중 SSL 서버설정방법추가 Ver 년 12월 암호체계고도화관련키길이변경 (2,048bit)

Tomcat.hwp

Apache 설치방법보기 Apache 웹서버에 SSL 를적용하기위해아래두항목이웹서버에설치되어있어야합니다. - Openssl 암호화라이브러리 - Mod_ssl 모듈 위두항목이웹서버에설치되어있다면개인키를생성하고생성된개인키를바탕으로 CSR 파일을생성합니다. 생성된 CSR 파

PowerPoint 프레젠테이션

WebtoB.hwp

Windows 8에서 BioStar 1 설치하기

2. 개인키권한설정 보안경고개인키의유출방지를위해 group 과 other 의 permission 을모두제거한다. chmod 600 /etc/pki/tls/private/lesstif-rootca.key 3. CSR(Certificate Signing Request) 생

Click to edit Master title style

< 목차 > Ⅰ. 개요 3 Ⅱ. 실시간스팸차단리스트 (RBL) ( 간편설정 ) 4 1. 메일서버 (Exchange Server 2007) 설정변경 4 2. 스팸차단테스트 10

초기설정 WebtoB Web Server 에서인증서를사용하기위해 CSR 을생성하는방법입니다. 1. 초기설정 - CSR 을생성하기전에다음의몇가지사항을필히확인합니다. 부팅후 Path 나환경변수를일일이설정하지않게초기설정파일을사용하여로그인시자동으로실행되도록하고있습니다. 그러나

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

슬라이드 1

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

PowerPoint 프레젠테이션

기술교육 SSL 설정및변환방법

작성자 기술지원부 김 삼 수

PowerPoint 프레젠테이션

아래 항목은 최신( ) 이미지를 모두 제대로 설치하였을 때를 가정한다

게시판 스팸 실시간 차단 시스템

1. efolder 시스템구성 A. DB B. apache - mod-perl - PHP C. SphinxSearch ( 검색서비스 ) D. File Storage 2. efolder 설치순서 A. DB (MySQL) B. efolder Service - efolder

본문서는 초급자들을 대상으로 최대한 쉽게 작성하였습니다. 본문서에서는 설치방법만 기술했으며 자세한 설정방법은 검색을 통하시기 바랍니다. 1. 설치개요 워드프레스는 블로그 형태의 홈페이지를 빠르게 만들수 있게 해 주는 프로그램입니다. 다양한 기능을 하는 플러그인과 디자인

PowerPoint 프레젠테이션

슬라이드 1

Microsoft PowerPoint - [Practice #1] APM InstalI.ppt

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

메뉴얼41페이지-2

Sena Device Server Serial/IP TM Version

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

NTD36HD Manual

RHEV 2.2 인증서 만료 확인 및 갱신

Microsoft Word - src.doc

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

SSL Strip Attack JAC (SemiDntmd) 이우승 semidntmd.tistory.com

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

<4D F736F F D20BAB8BEC8BCADB9F620BCD2BDBA20BCF6C1A420BBE7BFEBC0DA20B8DEB4BABEF32E646F63>

PowerPoint 프레젠테이션

작성자 기술지원부 김 삼 수

SBR-100S User Manual

Microsoft PowerPoint - 11주차_Android_GoogleMap.ppt [호환 모드]

LXR 설치 및 사용법.doc

작성자 : 기술지원부 김 삼 수

Microsoft Word - Armjtag_문서1.doc

<BAB8BEC8BCADB9F6B1B8C3E0B0A1C0CCB5E D E687770>

PowerPoint 프레젠테이션

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

IRISCard Anywhere 5

Windows Server 2012

chapter1,2.doc

Remote UI Guide

MF Driver Installation Guide

단계

보안서버구축가이드 (ver 5.1) Ⅰ. 보안서버개요 5 Ⅱ. 웹서버종류별 SSL 구축방법 11 Ⅲ. 이중화된웹서버 SSL 적용방법 96 Ⅳ.SSL 적용여부확인방법 106 Ⅴ. 웹페이지 SSL 구현방법 108 Ⅵ. 보안서버구축시유의사항 113 Ⅶ

Secure Programming Lecture1 : Introduction

SPECweb Install

MF5900 Series MF Driver Installation Guide

View Licenses and Services (customer)

Cloud Friendly System Architecture

< DC1A6C1D6C1BEC7D5BBE7C8B8BAB9C1F6B0FCBBE7BEF7BAB8B0EDBCADC7A5C1F62E696E6464>

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

gcloud storage 사용자가이드 1 / 17

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

슬라이드 1

StruxureWare Data Center Expert 7.2.x 의 새 기능 StruxureWare Data Center Expert 7.2.x 릴리스에서 사용할 수 있는 새 기능에 대해 자세히 알아보십시오. 웹 클라이언트 시작 화면: StruxureWare Cen

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

Report Designer V3.0 사용설명서 2장

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

행자부 G4C

Transcription:

2018 년보안서버구축가이드 OPA

< 목차 > I. 보안서버의정의 1 1. 보안서버구축의필요성 1 2. 보안서버관련법률 4 3. 보안서버적용범위 5 II. 보안서버구축방법 6 1. 보안서버구축절차 7 2. 웹서버별개인키및 CSR 생성가이드 8 2.1 Apache 개인키및 CSR 생성가이드 8 2.2 IIS6 개인키및 CSR 생성가이드 10 2.3 IIS7 개인키및 CSR 생성가이드 16 2.4 Iplanet 개인키및 CSR 생성가이드 19 2.5 Lighttpd 개인키및 CSR 생성가이드 28 2.6 OHS 개인키및 CSR 생성가이드 30 2.7 Resin 개인키및 CSR 생성가이드 33 2.8 Tomcat 개인키및 CSR 생성가이드 35 2.9 Webtob 개인키및 CSR 생성가이드 37 2.10 Weblogic 개인키및 CSR 생성가이드 39 3. 웹서버별보안서버설치가이드 41 3.1 Apache( 싱글도메인 ) SSL 인증서신규설치가이드 (Package Version) 41 3.2 Apache( 싱글도메인 ) SSL 인증서갱신설치가이드 (Package Version) 50 3.3 Apache( 멀티도메인 ) SSL 인증서신규설치가이드 (Package Version) 60 3.4 Apache( 멀티도메인 ) SSL 인증서갱신설치가이드 (Package Version) 67 3.5 Apache( 싱글도메인 ) SSL 인증서갱신설치가이드 (Source Version) 75 3.6 Apache( 싱글도메인 ) SSL 인증서신규설치가이드 (Source Version) 85 3.7 Apache( 멀티도메인 ) SSL인증서신규설치가이드 (Source Version) 91 3.8 Apache( 멀티도메인 )SSL 인증서갱신설치가이드 (Source Version) 100 3.9 IHS( 싱글도메인 ) SSL 인증서신규설치가이드 108 3.10 IHS( 싱글도메인 ) SSL 인증서갱신설치가이드 110 3.11 Jboss( 싱글 & 멀티도메인 ) SSL 인증서신규 & 갱신설치가이드 112 3.12 Lighttpd( 싱글도메인 ) SSL 인증서신규설치가이드 113 3.13 Lighttpd( 멀티도메인 ) SSL 인증서신규설치가이드 115 3.14 Nginx( 싱글도메인 ) SSL 인증서신규설치가이드 118 3.15 Nginx( 싱글도메인 ) SSL 인증서갱신설치가이드 122

3.16 Nginx( 멀티도메인 ) SSL 인증서신규설치가이드 126 3.17 Nginx( 멀티도메인 ) SSL 인증서갱신설치가이드 131 3.18 Oracle HTTP Server ( 싱글도메인 ) SSL 인증서신규설치가이드 136 3.19 Oracle HTTP Server ( 싱글도메인 ) SSL 인증서갱신설치가이드 140 3.20 Oracle HTTP Server ( 멀티도메인 ) SSL 인증서신규설치가이드 144 3.21 Oracle HTTP Server ( 멀티도메인 ) SSL 인증서갱신설치가이드 149 3.22 Resin( 싱글도메인 ) SSL 인증서신규설치가이드 153 3.23 Resin( 싱글도메인 ) SSL 인증서갱신설치가이드 155 3.24 Webtob( 싱글도메인 ) SSL 인증서신규설치가이드 157 3.25 Webtob( 싱글도메인 ) SSL 인증서갱신설치가이드 161 3.26 Webtob( 멀티도메인 ) SSL 인증서신규설치가이드 166 3.27 Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 171 3.28 Tomcat6( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 176 3.29 Tomcat6( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 178 3.30 Tomcat8.0X( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 180 3.31 Tomcat8.5X( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 182 3.32 Tomcat8.0X( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 184 3.33 Tomcat8.5X( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 186 3.34 Tomcat9( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 188 3.35 Tomcat9( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 190 3.36 Iplanet 7( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 192 3.37 Weblogic 11( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 201 3.38 Weblogic 12( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 208 3.39 Windows Server 2003 IIS6( 싱글도메인 ) SSL 인증서설치가이드 214 3.40 Windows Server 2003 IIS6( 멀티도메인 ) SSL 인증서설치가이드 222 3.41 Windows Server 2008 IIS7( 싱글도메인 ) SSL 인증서설치가이드 230 3.42 Windows Server 2008 IIS7( 멀티도메인 ) SSL 인증서설치가이드 235 3.43 Windows Server 2012 IIS8( 싱글도메인 ) SSL 인증서설치가이드 242 3.44 Windows Server 2012 IIS8( 멀티도메인 ) SSL 인증서설치가이드 247 III. 웹페이지암호화통신소스수정방법및적용확인방법 253 1. 전체페이지암호화하기 254 2. 페이지별암호화하기 256 3. 프레임별암호화하기 258 4. 보안서버암호화통신확인방법 259 IV. 오류발생시대처방법 261 1. 인증서오류관련 262 2. 웹페이지오류관련 264 3. 웹서버오류관련 266

V. 웹사이트운영 관리상유의사항 267 1. 인증서의유효성확보 268 2. 보안경고창발생 269 3. SSL Ciphersuite 취약성해결방안 270 3.1 3.1 Apache SSL Protocol 및 cipher 설정 270 3.2 IHS SSL Protocol 및 cipher 설정 274 3.3 IHS 2.0 SSL Protocol 및 cipher 설정 278 3.4 Nginx SSL Protocol 및 cipher 설정 281 3.5 Nginx 2.0 SSL Protocol 및 cipher 설정 284 3.6 Tomcat SSL Protocol 및 cipher 설정 287 3.7 Weblogic SSL Protocol 및 cipher 설정 290 3.8 OHS SSL Protocol 및 cipher 설정 296 3.9 IIS SSL Protocol 및 cipher 설정 300

I. 보안서버의정의 1. 보안서버구축의필요성 2. 보안서버관련법률 3. 보안서버적용범위

Ⅰ. 보안서버의정의 보안서버란인터넷상에서주고받는정보를암호화하여통신하는기능이구축된웹사이트를의미합니다. 보안서버는독립적인하드웨어를별도로설치하는것이아니라이미사용하고있는웹서버에 SSL(Secure Sockets Layer) 인증서나암호화소프트웨어를설치하여암호화통신을지원하는것을의미합니다. SSL인증서의경우해당전자상거래업체의실존을증명하는과정을거쳐발급되기때문에웹사이트에대한인증기능도일부가지고있습니다. 인터넷상에서송수신되는개인정보의대표적인예로는로그인시 ID, 패스워드, 회원가입시이름, 전화번호, 인터넷뱅킹이용시계좌번호, 계좌패스워드등이있습니다. 암호화되지않은개인정보는해킹 ( 공격 ) 을통해유출될경우심각한피해를초래할수있습니다. 보안서버는이러한위협을방지하기위한방법중하나로, 개인정보를암호화하여송수신함으로써개인정보의노출을막습니다. 그러나보안서버의구축및운영방법은업체에따라많은차이점이있으며, 잘못된보안서버의구축및운영은개인정보의유출을초래할수있습니다. 인터넷상에서암호화되지않은개인정보는가로채기등의해킹을통해해커 ( 공격자 ) 에게 쉽게노출될수있으나, 웹서버에보안서버솔루션을설치하면해커가중간에데이터를가 로채도암호화되어있어개인정보가노출되지않게됩니다. 1. 보안서버구축의필요성 인터넷환경은개방되어있습니다. 인터넷을이용하는이용자, 사업자및컴퓨터의신원정 보 (Identity) 를확인하는것은어렵지않습니다. 송수신되는모든정보는도청자 ( 공격자 ) 가 중간에가로채어수정할수있는위험에노출되어있습니다. 인터넷통신은종종전통적인우편시스템에서우편엽서의사용과비유되곤합니다. 만일공격자가적시에적절한장소에있다면, 공격자는 - 당신의우편엽서를읽고정보를훔칠수있으며,( 스니핑 ) - 당신의우편엽서를수정하여대화내용을뒤엎을수있으며,( 데이터변조 ) - 당신또는대화대상자에게또다른우편엽서를송부하여, 양당사자를흉내낼수있습니다.( 피싱 ) 비록그러한위협은일반적으로드물고수행하기어렵지만, 인터넷에서전송되는정보의가치및민감정도는잠재적이득을원하는자에게동기를부여할수있습니다. 실제로인터넷패킷 ( 전송되는데이터 ) 을캡쳐하는프로그램을이용하면내가속한네트워크를지나가는대부분의패킷내용을쉽게열어볼수있습니다. 이러한문제점을해결하기위한보안서버는네트워크응용프로그램간의통신에대하여프 라이버시, 인증, 신뢰를보장해주는것을목표로하고있습니다. 이를위한 SSL 프로토콜은 - 1 -

어떤 TCP/IP 기반의통신에도유용하게적용될수있으나, HTTP( 웹사이트트래픽 ) 를보호하는데특히많이사용되고있습니다. SSL기반의통신은개인적으로이루어집니다. 암호화는도청자에대하여통신을안전하게보호해줍니다. 그리고통신하는양자가신뢰기반의구조를공유하여인증이될수있습니다. 보안서버는네트워크통신에서다음의장점을제공합니다. 1.1 정보노출방지 (Sniffing Prevention) 스니핑이란네트워크통신구간의중간에서전송되는데이터 ( 정보 ) 를훔쳐보는것 ( 도청 ) 을의미합니다. 공격자가악의적인목적으로설치한스니핑프로그램을통해기업의대외비정보, 개인의금융및로그인접속정보일경우공격을당한이는치명적일수있습니다. 일반적인웹사이트에로그인할때아이디와비밀번호가평문형태로전송됩니다. 이를다른사람이중간에서훔쳐볼수있는스니핑툴 (Sniffing Tool) 은인터넷에서손쉽게구할수있습니다. 학교, PC방, 회사등의공용네트워크에서는스니핑툴을이용하여타인의개인정보를쉽게수집할수있는데웹사이트에보안서버가구축된경우에는개인정보가암호화되어전송되므로이러한노출위협으로부터안심할수있습니다. 따라서보안서버구축은개인정보보호를위한필수적이며기본적인수단이다. 1.2 데이터변조방지 (Data Modulation Prevention) 각종통신환경을이용하여컴퓨터내의정보또는데이터의전송결과를임의로변조하는범죄의일종으로제 3자의악의적인개입으로인하여데이터값이변조될가능성이농후합니다. 직장내급여변경, 온라인이체시금액변조, 학생의성적기록등이있는데이러한악의적인데이터의변조는보안서버구축을통해해소할수있습니다. - 2 -

1.3 위조사이트방지 (Phishing Prevention) 피싱 (Phishing) 이란개인정보 (Private Data) 와낚시 (Fishing) 를합성한조어입니다. 이는인터넷이용자에게이메일이나링크를전송하여금융기관이나합법적인기관으로가장한허위웹사이트로접속하게한후, 이용자가입력한비밀번호나개인정보를추출하여금융사기등으로악용하는사기기법입니다. 현재피싱수법이더욱교묘해져가고피해자가속출하고있는상황으로사용자가개인정보를입력시해당페이지가신뢰할수있는인증서가설치되어있는지확인하는등의사용자의주의가필요합니다. 보안서버를구축하기위해서는공인된인증기관으로부터 SSL인증서를발급받아야합니다. 발급받기위해서는도메인정보등을제공해야하며, 발급받은인증서에는도메인정보가포함되어있습니다. 평상시접속하는웹페이지에서자물쇠이미지를확인하거나개인정보입력시암호화호출 (https://), 암호화모듈로딩화면등을확인하였다면유사하게구성된피싱사이트를쉽게구별할수있습니다. 따라서해커등의제3자가유사사이트를만들어피싱을시도하더라도 SSL인증서가진짜사이트임을증명하므로피싱으로인한피해를줄일수있습니다. 1.4 기업의신뢰도향상 (Improved Business Confidence) 사회에대해서도깊은관심과책임감을가져야한다는사회책임경영의중요성이나날이커져나가고있습니다. 사회책임경영은기업의사회적책임감을의미하는것으로기업의존재기반인사회에대해서도깊은관심과책임감을가져야한다는기업경영의화두입니다. 이에대한관심이점차높아지고있으며, 많은기업들이이미적극적으로사회책임경영에입각한경영을펼치고있습니다. 보안서버의설치는고객에게 고객의개인정보를안전하고소중히다루는기업 이라는이미지를부각시켜사회책임경영기업에한걸음더다가갈수있습니다. 보안서버인증마크또한개인정보보호의신뢰성을사용자에게보여줄수있으며, 가시적인홍보효과인해또한얻을수있습니다. - 3 -

2. 보안서버관련법률 2012년 8월 18일정보통신망법개정으로개인정보를취급하는모든웹사이트의보안서버구축이의무화되었습니다. 위반시최대 3천만원의과태료가부과되므로반드시인증서를구축이필요합니다. 보안서버의무화관련법령은아래와같습니다. 정보통신망이용촉진및정보보호등에관한법률제2조 ( 정의 ) 6. " 개인정보 " 란생존하는개인에관한정보로서성명 / 주민등록번호등에의하여특정한개인을알아볼수있는부호, 문자, 음성, 음향및영상등의정보 ( 해당정보만으로는특정개인을알아볼수없어도다른정보와쉽게결합하여알아볼수있는경우에는그정보를포함한다 ) 를말한다. 제28조 ( 개인정보의보호조치 ) 1 정보통신서비스제공자등이개인정보를취급할때에는개인정보의분실ㆍ도난ㆍ누출ㆍ변조또는훼손을방지하기위하여대통령령으로정하는기준에따라다음각호의기술적 / 관리적조치를하여야한다. 4. 개인정보를안전하게저장ㆍ전송할수있는암호화기술등을이용한보안조치제76조 ( 과태료 ) 1 다음각호의어느하나에해당하는자와제7호부터제11호까지의경우에해당하는행위를하도록한자에게는 3천만원이하의과태료를부과한다. 3. 제28조제1항 ( 제67조에따라준용되는경우를포함한다 ) 에따른기술적ㆍ관리적조치를하지아니한자 정보통신망이용촉진및정보보호등에관한법률시행령제15조 ( 개인정보의보호조치 ) 4 법제28조제1항제4호에따라정보통신서비스제공자등은개인정보가안전하게저장ㆍ전송될수있도록다음각호의보안조치를하여야한다. 3. 정보통신망을통하여이용자의개인정보및인증정보를송신ㆍ수신하는경우보안서버구축등의조치 개인정보의기술적 / 관리적보호조치기준 [ 방송통신위원회고시제2012-50 호 ] 제6조 ( 개인정보의암호화 ) 3 정보통신서비스제공자등은정보통신망을통해이용자의개인정보및인증정보를송 / 수신할때에는안전한보안서버구축등의조치를통해이를암호화해야한다. 보안서버는다음각호중하나의기능을갖추어야한다. 1. 웹서버에 SSL(Secure Socket Layer) 인증서를설치하여전송하는정보를암호화하여송 / 수신하는기능 2. 웹서버에암호화응용프로그램을설치하여전송하는정보를암호화하여송 / 수신하는기능 - 4 -

3. 보안서버적용범위일반적으로 개인정보 라함은생존하는개인에관한정보로서성명, 주민등록번호등에의하여당해개인을알아볼수있는부호 문자 음성 음향및영상등의정보를말합니다. 인터넷에서사용되는대표적인개인정보의예로는로그인시 ID, Password, 회원가입시주민등록번호, 인터넷뱅킹시계좌번호, 계좌 Password 등이해당됩니다. 또게시판등에서사용하는성명, 이메일, 연락처등도개인을식별할수있는정보로서개인정보에해당합니다. 이러한개인정보를안전하게관리하기위해서는해당개인정보를포함하고있는웹페이지 에대해암호화통신을적용해야합니다. 조사결과로그인과정과신원확인과정의보안서버적용비율이높은데비해회원가입, 분실ID찾기, 회원정보수정등의경우보안서버적용비율이낮은것으로확인되었습니다. 이처럼보안서버를구축하고있어도암호화통신을하지않으면개인정보유출될수있습니다. 그러므로웹사이트에서제공하는서비스중개인정보를포함하고있는서비스에대해서는보안서버의적용이반드시이루어져야합니다. - 5 -

II. 보안서버구축방법 1. 보안서버구축절차 2. 개인키및 CSR 생성가이드 3. 웹서버종류별보안서버설치가이드 - 6 -

1. 보안서버구축절차 SSL보안서버를사용하기위해서는운영하고있는웹서버종류를파악한후해당웹서버에맞는 SSL보안서버인증서를발급받고, SSL보안서버인증서발급후에는웹서버에 SSL보안서버인증서를설치해야합니다. 마지막으로 SSL보안서버설치후에는반드시웹페이지에서 HTTPS통신으로접속되도록설정해야합니다. SSL 보안서버구축기본절차는다음과같습니다. <SSL 보안서버구축절차 > 사용하는웹서버종류확인 (Apache, IIS, Tomcat, Nginx, Webtob 등 ) CSR(Certificate Signing Request) 및 개인키 (Private key) 생성 CSR 정보인증기관에접수및 SSL 인증서발급 SSL 인증서, Root 인증서, Chain 인증서설정 웹페이지 HTTPS 접속설정 웹페이지 SSL 인증서정상설치확인 - 7 -

2. 웹서버별개인키및 CSR 생성가이드 2.1 Apache 개인키및 CSR 생성가이드 1) 개인키 (Private key) 생성 명령어형식 : openssl genrsa -des3 -out [ 생성할키이름 ] 2048 [root@mailcsr]# openssl genrsa -des3 -out www.opa.or.kr.key 2048 GeneratingRSAprivatekey,2048bitlongmodulus...+++.....+++ eis65537(0x10001) Enterpassphraseforwww.opa.or.kr.key: [ 패스워드입력 ] Verifying-Enterpassphraseforwww.opa.or.kr.key: [ 패스워드입력확인 ] [root@mailcsr]#ls www.opa.or.kr.key 설명 : 개인키생성명령어를입력후개인키패스워드를입력합니다. 2) 공개키 (CSR) 생성 명령어형식 : openssl req -new -key [ 키파일 ] -out [ 생성할 CSR 키파일명 ] [root@mailcsr]# openssl req -new -key www.opa.or.kr.key -out www.opa.or.kr.csr Enterpassphraseforwww.opa.or.kr.key: [ 패스워드입력 ] Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter'.',thefieldwillbeleftblank. ----- CountryName(2lettercode)[AU]:KR [ 국가코드 ] StateorProvinceName(fullname)[Some-State]:Seoul [ 도 / 시 ] LocalityName(eg,city)[]:Seocho-gu [ 시 / 구 / 군 ] OrganizationName(eg,company)[InternetWidgitsPtyLtd]: Korea Online Privacy Association [ 회사명 ] OrganizationalUnitName(eg,section)[]:Dev Team [ 부서명 ] CommonName(eg,YOURname)[]:www.opa.or.kr [ 도메인 ] EmailAddress[]: Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]: [Enter] Anoptionalcompanyname[]: [Enter] [root@mailcsr]#ls www.opa.or.kr.csrwww.opa.or.kr.key [root@mailcsr]# 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력후공개키 (CSR) 생성정보를입력하여생성합니다. - 8 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINCERTIFICATEREQUEST----- MIIC7zCCAdcCAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIDAVTZW91bDESMBAG A1UEBwwJU2VvY2hvLWd1MSMwIQYDVQQKDBpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1 cml0eteomawga1uecwwfvunfulqxgdawbgnvbammd3d3dy51y2vydc5jby5rcjcc ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMVGkya5m+jZIUym6z/akHr Wr6/CUyWzdQV501PEXHN6xVPWaLCQF/kLMPo854ebMbIsg3E323oicmL5PLFLLUU vm+tiij5asl+tqgqfvv4jsdb1jzt2hiyei3kfwsav1blctpvp1xg7tu8kpbyunep p3gzpl3k3m+nhqz/af2um1f3p8bb1yernso9c/+olcgkkbedxnzmb72suxht9gbs FfaGvtmAOa91rBiZBY9V/ws8VjXa9H7I/i2f9ZB8++k7uNWOBmRrGKrXBENgOBLo Ad3dBK7isrrfyvu3bxMCdXvGuVDJr0b7Jy7Pzk25oQHlth0YLAl5boMX6MY/NDEC AwEAAaApMCcGCSqGSIb3DQEJDjEaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw DQYJKoZIhvcNAQEFBQADggEBAGSvSeLd7+YjNgeIszugewKARoszSJoiFsFLGyvM 4zz3x85eNwIc6tCIvuf2bc+DUtstqE4m4WQJy1tbIMuFTk3HSq8sdwjuKuJhJIyO Kskqly1lCxfV1uayOmqJN7V+jCCz3Jf2UvMPHIClpGa+pNBOk9drzOtZPUqMTIRa rltpqjnaiotqav3t27rwtlyc3z3pfe+i0eyynto1smhubqim/hdkf/idyfgbgq6w Gbb89uTBMK4msKqmJCGadQkaE2s8LyotPoHQBGRQAIXN5MAOo/eS2IaY0ZfaZUmp tqb6it/i4jjgdfuke6oli7zdu+t46fynn/bgyx9odxoccqq= -----ENDCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 9 -

2.2 IIS6 개인키및 CSR 생성가이드 1) IIS 를실행 SSL 보안서버인증서를적용할사이트우클릭 속성 을클릭합니다. - 10 -

2) 디렉터리보안탭을선택한후 서버인증서 를클릭합니다. 3) 다음 을클릭합니다. - 11 -

4) 새인증서를만듭니다 선택후다음을클릭합니다. 5) 요청을지금준비하지만나중에보냅니다. 를선택후다음을클릭합니다. - 12 -

6) 비트길이를 2048 로선택후다음을클릭합니다. 7) 조직 (O) 에영문회사명을입력하고조직구성단위 (U) 에부서명을입력합니다. - 13 -

8) 일반이름 (C) 에도메인주소를입력합니다. 9) 국가지역 (C) 를 KR( 대한민국 ) 으로선택후시 / 도 (S) 와구 / 군 / 시 (L) 에주소를입력합니다. - 14 -

10) CSR 값을저장해야하는위치를선택한후다음을클릭합니다. 11) 저장한위치의파일을 notepad 로열고 CSR 을복사후인증기관에전달합니다. - 15 -

2.3 IIS7 개인키및 CSR 생성가이드 1) [ 시작 ] [ 프로그램 ] [ 관리도구 ] 인터넷정보서비스 (IIS) 관리자 를선택합니다. 2) 인증서를설치할서버이름을선택하고, 오른쪽의 서버인증서 를선택합니다. 3) 작업 메뉴에서 인증서요청만들기 를선택합니다. 4) 다음과같이 CSR 생성에필요한정보를입력합니다. - 16 -

5) 암호화서비스공급자속성 에서 Microsoft RSA SChannel Cryptographic Provider 및 2048 bit 로선택합니다. 6) CSR 파일을저장할경로를지정합니다. - 17 -

(C:\Users\Administrator\Documents\www.opa.or.kr.csr ) 7) 저장한위치의파일을 notepad 로열고 CSR 을복사후인증기관에전달합니다. - 18 -

2.4 Iplanet 개인키및 CSR 생성가이드 1) 서버환경확인 ( 도메인설정확인 ) - 해당서버선택후서버설정 일반탭에서호스트명과도메인주소확인 2) 해당가상서버에 SSL 포트추가를위한 HTTP Listener 를새로만듭니다. - 19 -

3) 추가할 SSL 포트를입력하고서버이름을입력합니다. 4) 다음 마침후다사서버설정 일반으로이동후 HTTP Listener 에추가합니다. - 20 -

- 21 -

5) PKCS11 토큰생성하기 ( 인증서 DB 생성하기 ) - 서버설정에서인증서 -> PKCS11 토큰으로이동합니다. 그후 internel 를선택합니다. 6) 토큰상태 에서사용가능체크후원하는패스워드를입력합니다. - 인스턴스시작시패스워드입력창을나타내지않게하기위해서는아래와같이체크 - 22 -

7) 보류중인배포 를클릭하여배포합니다. - 23 -

8) CSR 생성하기 - 서버설정에서 [ 인증서 ] -> [ 서버인증서 ] -> [ 요청 ] 을클릭합니다. 9) 서버인증서요청마법사가실행되면비밀번호입력후다음을클릭합니다. - 24 -

10) CSR 생성정보를입력합니다. 11) 키유형에서 RSA -> 2048 bit 를선택합니다. - 25 -

12) CA 서명이있는인증서를선택합니다. 13) 정보를확인후 마침 을클릭합니다. - 26 -

14) 생성된 CSR 코드를마우스로드래그하여복사한후메모장에복사합니다. 15) 복사한 CSR 코드값에서공백을제거하여인증서발급업체로전달합니다. - 27 -

2.5 Lighttpd 개인키및 CSR 생성가이드 1) 개인키 ( 사설키 ) 생성 명령어형식 : openssl genrsa -des3 -out [ 생성할키이름 ] 2048 [root@mailcsr]#openssl genrsa -des3 -out www.opa.or.kr.key 2048 GeneratingRSAprivatekey,2048bitlongmodulus...+++.....+++ eis65537(0x10001) Enterpassphraseforwww.opa.or.kr.key:[ 패스워드입력 ] Verifying-Enterpassphraseforwww.opa.or.kr.key: [ 패스워드입력확인 ] [root@mailcsr]#ls www.opa.or.kr.key 설명 : 개인키생성명령어를입력후개인키패스워드를입력합니다. 2) 개인키 ( 사설키 ) 생성 명령어형식 : openssl req -new -key [ 키파일 ] -out [ 생성할 CSR 키파일명 ] [root@mailcsr]#openssl req -new -key www.opa.or.kr.key -out www.opa.or.kr.csr Enterpassphraseforwww.opa.or.kr.key:[ 패스워드입력 ] Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter'.',thefieldwillbeleftblank. ----- Country Name (2 letter code) [AU]:KR [ 국가코드 ] StateorProvinceName(fullname)[Some-State]:Seoul [ 도 / 시 ] LocalityName(eg,city)[]:Seocho-gu [ 시 / 구 / 군 ] OrganizationName(eg,company)[InternetWidgitsPtyLtd]: Korea Online Privacy Association [ 회사명 ] OrganizationalUnitName(eg,section)[]:Dev Team [ 부서명 ] CommonName(eg,YOURname)[]:www.opa.or.kr [ 도메인 ] EmailAddress[]: Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]:[Enter] Anoptionalcompanyname[]:[Enter] [root@mailcsr]#ls www.opa.or.kr.csr www.opa.or.kr.key 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력후공개키 (CSR) 생성정보를입력하여생성합니다. - 28 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINCERTIFICATEREQUEST----- MIIC7zCCAdcCAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIDAVTZW91bDESMBAG A1UEBwwJU2VvY2hvLWd1MSMwIQYDVQQKDBpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1 cml0eteomawga1uecwwfvunfulqxgdawbgnvbammd3d3dy51y2vydc5jby5rcjcc ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMVGkya5m+jZIUym6z/akHr Wr6/CUyWzdQV501PEXHN6xVPWaLCQF/kLMPo854ebMbIsg3E323oicmL5PLFLLUU vm+tiij5asl+tqgqfvv4jsdb1jzt2hiyei3kfwsav1blctpvp1xg7tu8kpbyunep p3gzpl3k3m+nhqz/af2um1f3p8bb1yernso9c/+olcgkkbedxnzmb72suxht9gbs FfaGvtmAOa91rBiZBY9V/ws8VjXa9H7I/i2f9ZB8++k7uNWOBmRrGKrXBENgOBLo Ad3dBK7isrrfyvu3bxMCdXvGuVDJr0b7Jy7Pzk25oQHlth0YLAl5boMX6MY/NDEC AwEAAaApMCcGCSqGSIb3DQEJDjEaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw DQYJKoZIhvcNAQEFBQADggEBAGSvSeLd7+YjNgeIszugewKARoszSJoiFsFLGyvM 4zz3x85eNwIc6tCIvuf2bc+DUtstqE4m4WQJy1tbIMuFTk3HSq8sdwjuKuJhJIyO Kskqly1lCxfV1uayOmqJN7V+jCCz3Jf2UvMPHIClpGa+pNBOk9drzOtZPUqMTIRa rltpqjnaiotqav3t27rwtlyc3z3pfe+i0eyynto1smhubqim/hdkf/idyfgbgq6w Gbb89uTBMK4msKqmJCGadQkaE2s8LyotPoHQBGRQAIXN5MAOo/eS2IaY0ZfaZUmp tqb6it/i4jjgdfuke6oli7zdu+t46fynn/bgyx9odxoccqq= -----ENDCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 29 -

2.6 OHS 개인키및 CSR 생성가이드 1) 새로생성아이콘을클릭합니다. 2) 인증서생성암호를입력합니다. - 30 -

3) 인증서생성암호를입력합니다. 4) 생성정보를입력후확인을클릭합니다. ( 키크기 : 2048bit) 5) 확인을클릭합니다. - 31 -

6) 아래와같이 CSR 정보를처음부터끝까지복사한뒤인증서발급업체로전달합니다. 7) 생성완료후인증키를안전한장소에저장합니다. 8) 확인을클릭하여종료합니다. - 32 -

2.7 Resin 개인키및 CSR 생성가이드 1) KeyStore 생성 명령어형식 : keytool -genkey -alias [ 별칭 ] -keyalg RSA -keysize 2048 -keystore [ 생성할키스토어명 ] [root@mailcsr]#keytool -genkey -alias opa -keyalg RSA -keysize 2048 -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] 새암호를다시입력하십시오 : [ 패스워드입력확인 ] 이름과성을입력하십시오. [Unknown]:www.opa.or.kr [ 도메인 ] 조직단위이름을입력하십시오. [Unknown]:Dev Team [ 부서명 ] 조직이름을입력하십시오. [Unknown]:Korea Online Privacy Association [ 회사명 ] 구 / 군 / 시이름을입력하십시오. [Unknown]:Seocho-gu [ 구 / 군 / 시 ] 시 / 도이름을입력하십시오. [Unknown]:Seoul [ 시 / 도 ] 이조직의두자리국가코드를입력하십시오. [Unknown]:KR [ 국가코드 ] CN=www.opa.or.kr,OU=DevTeam,O= Korea Online Privacy Association, L=Seocho-gu, ST=Seoul, C=KR 이 ( 가 ) 맞습니까? [ 아니오 ]: y <opa> 에대한키암호를입력하십시오. (keystore 암호와같은경우 Enter 를누르십시오 ): [root@mailcsr]# [root@mailcsr]#ls www.opa.or.kr.key 설명 : 임의별칭명으로생성하실 keystore 정보를입력합니다. 2) 공개키 (CSR) 생성 명령어형식 : keytool -certreq -alias [ 별칭 ] -file [ 생성할 CSR 파일명 ] -keystore [ 키스토어명 ] [root@mailcsr]#keytool -certreq -alias opa -file www.ucert.co.kr.csr -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] [root@mailcsr]#ls www.opa.or.kr.csrwww.opa.or.kr.key [root@mailcsr]# 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력하여공개키 (CSR) 를생성합니다. - 33 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINNEWCERTIFICATEREQUEST----- MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDESMBAGA1UEB xmju2vv Y2hvLWd1MSMwIQYDVQQKExpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1cml0eTEOMAwGA1UECxM FVUNF UlQxGDAWBgNVBAMTD3d3dy51Y2VydC5jby5rcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADC CAQoC ggebalnbkcck2/q9xq8iqfzhoj8+phqn1dzs6se7ffqm2f51opf88qdkbiwbdsbzxtbrske81cb 3 /gyoh7fm+cpnvzfsar0tlrbg25fpavfzy65l7uvctzycy3cori3c26nx65pt5mzgtztzyn/dxaka sdsosfjhcyu4zfo7j4sustqxoljt+mlf8gmufobq5973bcz7lkarv/e3ws0ig4huql58jur4te19 +Lv7BLicXowht3H/S5VYYFS/uHzB8MTB+gVNoCp8QIOzlQPhEugzh589B1tHNHZJcST6Kvg02gB q kt3hrdefcbqaof25oy9sjlvpmb587qgrdzdpjqpiagecaweaaaaama0gcsqgsib3dqebbqu AA4IB AQAP8MEPlhBDs/mJjX82AGz5bi2B7/Ie30it9bDnj0x21y3ReQNrM4+P0W7gfO3haAPXiRynRm4 + 8tnHgJnH3mSpOKSCbDqTmAXx8uaLXJbQXlk/KvnK906jl9tsyXKk0zzdUsw3E+CFjT6CSEcOM6Fz J0SBzMRqQitPeX7Rv0vPoXL8yG+hR/QIfBU3KhD9tUP28a3tqDeE04W+iZ8EXACqbssJKMhVwp6 S vjtxzth1euxryjiwk27beknft6sc2r5dtaq0fnylkaglsqsn197pebacr+51d3g6lkuo7hfjcb0k F7W7p6EB5SNt1yiDuqq37ASJhIzkbhT2aN8aUMcc -----ENDNEWCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 34 -

2.8 Tomcat 개인키및 CSR 생성가이드 1) KeyStore 생성 명령어형식 : keytool -genkey -alias [ 별칭 ] -keyalg RSA -keysize 2048 -keystore [ 생성할키스토어명 ] [root@mailcsr]#keytool -genkey -alias opa -keyalg RSA -keysize 2048 -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] 새암호를다시입력하십시오 : [ 패스워드입력확인 ] 이름과성을입력하십시오. [Unknown]:www.opa.or.kr [ 도메인 ] 조직단위이름을입력하십시오. [Unknown]:Dev Team [ 부서명 ] 조직이름을입력하십시오. [Unknown]:Korea Online Privacy Association [ 회사명 ] 구 / 군 / 시이름을입력하십시오. [Unknown]:Seocho-gu [ 구 / 군 / 시 ] 시 / 도이름을입력하십시오. [Unknown]:Seoul [ 시 / 도 ] 이조직의두자리국가코드를입력하십시오. [Unknown]:KR [ 국가코드 ] CN=www.opa.or.kr,OU=DevTeam,O= Korea Online Privacy Association, L=Seocho-gu, ST=Seoul, C=KR 이 ( 가 ) 맞습니까? [ 아니오 ]: y <opa> 에대한키암호를입력하십시오. (keystore 암호와같은경우 Enter 를누르십시오 ): [root@mailcsr]# [root@mailcsr]#ls www.opa.or.kr.key 설명 : 임의별칭명으로생성하실 keystore 정보를입력합니다. 2) 공개키 (CSR) 생성 명령어형식 : keytool -certreq -alias [ 별칭 ] -file [ 생성할 CSR 파일명 ] -keystore [ 키스토어명 ] [root@mailcsr]#keytool -certreq -alias opa -file www.opa.or.kr.csr -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] [root@mailcsr]#ls www.opa.or.kr.csrwww.opa.or.kr.key [root@mailcsr]# 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력하여공개키 (CSR) 를생성합니다. - 35 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINNEWCERTIFICATEREQUEST----- MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDESMBAGA1UEB xmju2vv Y2hvLWd1MSMwIQYDVQQKExpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1cml0eTEOMAwGA1UECxM FVUNF UlQxGDAWBgNVBAMTD3d3dy51Y2VydC5jby5rcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADC CAQoC ggebalnbkcck2/q9xq8iqfzhoj8+phqn1dzs6se7ffqm2f51opf88qdkbiwbdsbzxtbrske81cb 3 /gyoh7fm+cpnvzfsar0tlrbg25fpavfzy65l7uvctzycy3cori3c26nx65pt5mzgtztzyn/dxaka sdsosfjhcyu4zfo7j4sustqxoljt+mlf8gmufobq5973bcz7lkarv/e3ws0ig4huql58jur4te19 +Lv7BLicXowht3H/S5VYYFS/uHzB8MTB+gVNoCp8QIOzlQPhEugzh589B1tHNHZJcST6Kvg02gB q kt3hrdefcbqaof25oy9sjlvpmb587qgrdzdpjqpiagecaweaaaaama0gcsqgsib3dqebbqu AA4IB AQAP8MEPlhBDs/mJjX82AGz5bi2B7/Ie30it9bDnj0x21y3ReQNrM4+P0W7gfO3haAPXiRynRm4 + 8tnHgJnH3mSpOKSCbDqTmAXx8uaLXJbQXlk/KvnK906jl9tsyXKk0zzdUsw3E+CFjT6CSEcOM6Fz J0SBzMRqQitPeX7Rv0vPoXL8yG+hR/QIfBU3KhD9tUP28a3tqDeE04W+iZ8EXACqbssJKMhVwp6 S vjtxzth1euxryjiwk27beknft6sc2r5dtaq0fnylkaglsqsn197pebacr+51d3g6lkuo7hfjcb0k F7W7p6EB5SNt1yiDuqq37ASJhIzkbhT2aN8aUMcc -----ENDNEWCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 36 -

2.9 Webtob 개인키및 CSR 생성가이드 1) 개인키 ( 사설키 ) 생성 명령어형식 : openssl genrsa -des3 -out [ 생성할키이름 ] 2048 [root@mailcsr]#openssl genrsa -des3 -out www.opa.or.kr.key 2048 GeneratingRSAprivatekey,2048bitlongmodulus...+++ eis65537(0x10001) Enterpassphraseforwww.opa.or.kr.key:[ 패스워드입력 ] Verifying-Enterpassphraseforwww.opa.or.kr.key:[ 패스워드입력확인 ] [root@mailcsr]#ls www.opa.or.kr.key 설명 : 개인키생성명령어를입력후개인키패스워드를입력합니다. 2) 개인키 ( 사설키 ) 생성 명령어형식 : openssl req -new -key [ 키파일 ] -out [ 생성할 CSR 키파일명 ] [root@mailcsr]#openssl req -new -key www.opa.or.kr.key -out www.opa.or.kr.csr Enterpassphraseforwww.ucert.co.kr.key:[ 패스워드입력 ] Youareabouttobeaskedtoenterinformationthatwillbeincorporated intoyourcertificaterequest. WhatyouareabouttoenteriswhatiscalledaDistinguishedNameoraDN. Therearequiteafewfieldsbutyoucanleavesomeblank Forsomefieldstherewillbeadefaultvalue, Ifyouenter'.',thefieldwillbeleftblank. ----- CountryName(2lettercode)[AU]:KR [ 국가코드 ] StateorProvinceName(fullname)[Some-State]:Seoul [ 도 / 시 ] LocalityName(eg,city)[]:Seocho-gu [ 시 / 구 / 군 ] OrganizationName(eg,company)[InternetWidgitsPtyLtd]: Korea Online Privacy Association [ 회사명 ] OrganizationalUnitName(eg,section)[]:UCERT [ 부서명 ] CommonName(eg,YOURname)[]:www.opa.co.kr [ 도메인 ] EmailAddress[]: Pleaseenterthefollowing'extra'attributes tobesentwithyourcertificaterequest Achallengepassword[]:[Enter] Anoptionalcompanyname[]:[Enter] [root@mailcsr]#ls www.opa.or.kr.csrwww.opa.or.kr.key 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력후공개키 (CSR) 생성정보를입력하여생성합니다. - 37 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINCERTIFICATEREQUEST----- MIIC7zCCAdcCAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIDAVTZW91bDESMBAG A1UEBwwJU2VvY2hvLWd1MSMwIQYDVQQKDBpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1 cml0eteomawga1uecwwfvunfulqxgdawbgnvbammd3d3dy51y2vydc5jby5rcjcc ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMVGkya5m+jZIUym6z/akHr Wr6/CUyWzdQV501PEXHN6xVPWaLCQF/kLMPo854ebMbIsg3E323oicmL5PLFLLUU vm+tiij5asl+tqgqfvv4jsdb1jzt2hiyei3kfwsav1blctpvp1xg7tu8kpbyunep p3gzpl3k3m+nhqz/af2um1f3p8bb1yernso9c/+olcgkkbedxnzmb72suxht9gbs FfaGvtmAOa91rBiZBY9V/ws8VjXa9H7I/i2f9ZB8++k7uNWOBmRrGKrXBENgOBLo Ad3dBK7isrrfyvu3bxMCdXvGuVDJr0b7Jy7Pzk25oQHlth0YLAl5boMX6MY/NDEC AwEAAaApMCcGCSqGSIb3DQEJDjEaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAw DQYJKoZIhvcNAQEFBQADggEBAGSvSeLd7+YjNgeIszugewKARoszSJoiFsFLGyvM 4zz3x85eNwIc6tCIvuf2bc+DUtstqE4m4WQJy1tbIMuFTk3HSq8sdwjuKuJhJIyO Kskqly1lCxfV1uayOmqJN7V+jCCz3Jf2UvMPHIClpGa+pNBOk9drzOtZPUqMTIRa rltpqjnaiotqav3t27rwtlyc3z3pfe+i0eyynto1smhubqim/hdkf/idyfgbgq6w Gbb89uTBMK4msKqmJCGadQkaE2s8LyotPoHQBGRQAIXN5MAOo/eS2IaY0ZfaZUmp tqb6it/i4jjgdfuke6oli7zdu+t46fynn/bgyx9odxoccqq= -----ENDCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 38 -

2.10 Weblogic 개인키및 CSR 생성가이드 1) KeyStore 생성 명령어형식 : keytool -genkey -alias [ 별칭 ] -keyalg RSA -keysize 2048 -keystore [ 생성할키스토어명 ] [root@mailcsr]#keytool -genkey -alias opa -keyalg RSA -keysize 2048 -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] 새암호를다시입력하십시오 : [ 패스워드입력확인 ] 이름과성을입력하십시오. [Unknown]:www.opa.or.kr [ 도메인 ] 조직단위이름을입력하십시오. [Unknown]:Dev Team [ 부서명 ] 조직이름을입력하십시오. [Unknown]:Korea Online Privacy Association [ 회사명 ] 구 / 군 / 시이름을입력하십시오. [Unknown]:Seocho-gu [ 구 / 군 / 시 ] 시 / 도이름을입력하십시오. [Unknown]:Seoul [ 시 / 도 ] 이조직의두자리국가코드를입력하십시오. [Unknown]:KR [ 국가코드 ] CN=www.opa.or.kr,OU=DevTeam,O= Korea Online Privacy Association, L=Seocho-gu, ST=Seoul, C=KR 이 ( 가 ) 맞습니까? [ 아니오 ]: y <opa> 에대한키암호를입력하십시오. (keystore 암호와같은경우 Enter 를누르십시오 ): [root@mailcsr]# [root@mailcsr]#ls www.opa.or.kr.key 설명 : 임의별칭명으로생성하실 keystore 정보를입력합니다. 2) 공개키 (CSR) 생성 명령어형식 : keytool -certreq -alias [ 별칭 ] -file [ 생성할 CSR 파일명 ] -keystore [ 키스토어명 ] [root@mailcsr]#keytool -certreq -alias opa -file www.opa.or.kr.csr -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : [ 패스워드입력 ] [root@mailcsr]#ls www.opa.or.kr.csrwww.opa.or.kr.key [root@mailcsr]# 설명 : 1 번을 ( 개인키생성 ) 을진행하셨을때입력했던패스워드를입력하여공개키 (CSR) 를생성합니다. - 39 -

3) 공개키 (CSR) 전달 [root@mail csr]# cat www.opa.or.kr.csr -----BEGINNEWCERTIFICATEREQUEST----- MIICxjCCAa4CAQAwgYAxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDESMBAGA1UEB xmju2vv Y2hvLWd1MSMwIQYDVQQKExpLb3JlYSBDb3Jwb3JhdGlvbiBTZWN1cml0eTEOMAwGA1UECxM FVUNF UlQxGDAWBgNVBAMTD3d3dy51Y2VydC5jby5rcjCCASIwDQYJKoZIhvcNAQEBBQADggEPADC CAQoC ggebalnbkcck2/q9xq8iqfzhoj8+phqn1dzs6se7ffqm2f51opf88qdkbiwbdsbzxtbrske81cb 3 /gyoh7fm+cpnvzfsar0tlrbg25fpavfzy65l7uvctzycy3cori3c26nx65pt5mzgtztzyn/dxaka sdsosfjhcyu4zfo7j4sustqxoljt+mlf8gmufobq5973bcz7lkarv/e3ws0ig4huql58jur4te19 +Lv7BLicXowht3H/S5VYYFS/uHzB8MTB+gVNoCp8QIOzlQPhEugzh589B1tHNHZJcST6Kvg02gB q kt3hrdefcbqaof25oy9sjlvpmb587qgrdzdpjqpiagecaweaaaaama0gcsqgsib3dqebbqu AA4IB AQAP8MEPlhBDs/mJjX82AGz5bi2B7/Ie30it9bDnj0x21y3ReQNrM4+P0W7gfO3haAPXiRynRm4 + 8tnHgJnH3mSpOKSCbDqTmAXx8uaLXJbQXlk/KvnK906jl9tsyXKk0zzdUsw3E+CFjT6CSEcOM6Fz J0SBzMRqQitPeX7Rv0vPoXL8yG+hR/QIfBU3KhD9tUP28a3tqDeE04W+iZ8EXACqbssJKMhVwp6 S vjtxzth1euxryjiwk27beknft6sc2r5dtaq0fnylkaglsqsn197pebacr+51d3g6lkuo7hfjcb0k F7W7p6EB5SNt1yiDuqq37ASJhIzkbhT2aN8aUMcc -----ENDNEWCERTIFICATEREQUEST----- [root@mailcsr]# 설명 : -----BEGIN NEW CERTIFICATE REQUEST----- 부터 -----END NEW CERTIFICATE REQUEST----- 까지복사후인증서발급업체로전달합니다. 주의사항 : 생성된파일을유출되거나분실하지않도록주의부탁드립니다. - 40 -

3. 웹서버별보안서버설치가이드 3.1 Apache( 싱글도메인 ) SSL 인증서신규설치가이드 (Package Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] -> /etc/httpd 경로에설정파일존재 2) 발급받으신인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl [root@localhost httpd]# cp www.opa.or.kr.* conf.d/ssl [root@localhost httpd]# ls -la conf.d/ssl -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$httpd_home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost httpd_home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost httpd_home]# httpd l Compiled in modules: core.c prefork.c http_core.c - 41 -

mod_so.c mod_ssl.c 4) ssl.conf 파일수정.( 필요한문구만을안내.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so * 설명 : ssl 모듈불러오는설정 Listen 443 * 설명 : 사용할 SSL 포트번호 #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입. DocumentRoot "/var/www/html" * 설명 : 도메인홈디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log - 42 -

LogLevel warn SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 43 -

5) 싱글인증서 2 개이상설치를진행할경우 ssl.conf 파일수정. ( 필요한문구만을출력하여안내.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so Listen 443 Listen 444 * 설명 : 사용할포트번호추가. #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> DocumentRoot "/var/www/html" ServerName www.opa.or.kr:443 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle - 44 -

* 설명 www.opa.or.kr 인증서경로설정및파일명 www.opa.or.kr 개인키경로설정및파일명 www.opa.or.kr Chain 인증서경로설정및파일명 www.opa.or.kr Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:444> * 설명 : VirtualHost 자리에사용할포트조정. DocumentRoot "/var/dev/html" * 설명 : 도메인홈디렉토리설정. ServerName www.eprivacy.or.kr:444 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on * 설명 : SSL 엔진사용. SSL을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. - 45 -

SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.root-bundle * 설명 www.eprivacy.or.kr 인증서의경로설정및파일명 www.eprivacy.or.kr 개인키경로설정및파일명 www.eprivacy.or.kr 의 Chain 인증서경로설정및파일명 www.eprivacy.or.kr 의 Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 6) 기존인증서파일명이 PEM 으로되어있을경우 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /etc/httpd/conf.d/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt - 46 -

* 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat 명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가 - 47 -

하여생성한다.( 순서중요!) cat www.opa.or.kr.key > www.opa.or.kr.pem cat www.opa.or.kr.crt >> www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 7) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 8) Shell Script 제작. Shell Script 가있으면재시작시 비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost httpd]# vi conf.d/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost httpd]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700-48 -

9) 아파치재시작진행 [root@localhost httpd]# /usr/sbin/httpd -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost httpd]# /usr/sbin/httpd -k restart [ 혹은 ] service httpd restart * 설명 : 아파치재시작. [root@localhost httpd]# ps -ef grep httpd * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/sbin/httpd daemon 117032 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117033 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117034 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117121 117031 0 Feb20 00:00:00 /usr/sbin/httpd root 118682 117620 0 01:22 pts/1 00:00:00 grep httpd [root@localhost httpd]# netstat -nlp grep httpd tcp 0 0 :::80 :::* LISTEN 118721/httpd tcp 0 0 :::443 :::* LISTEN 118721/httpd 10) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2016 GMT # 인증서시작일 notafter=dec 31 :38:20 2017 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 49 -

3.2 Apache( 싱글도메인 ) SSL 인증서갱신설치가이드 (Package Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] -> /etc/httpd 경로에설정파일존재 2) 발급받은인증서를해당서버폴더에업로드또는저장. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl_new [root@localhost httpd]# cp www.opa.or.kr.* conf.d/ssl_new [root@localhost httpd]# ls -la conf.d/ssl_new -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$httpd_home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost httpd_home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost httpd_home]# httpd l Compiled in modules: core.c prefork.c http_core.c mod_so.c mod_ssl.c - 50 -

4) ssl.conf 파일수정.( 필요한문구만을안내.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so * 설명 : ssl 모듈불러오는설정 Listen 443 * 설명 : 사용할 SSL 포트번호 #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입. DocumentRoot "/var/www/html" * 설명 : 도메인홈디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on - 51 -

* 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 5) 싱글인증서 2개이상설치를진행할경우 ssl.conf 파일수정. ( 필요한문구만을출력하여안내.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so Listen 443 Listen 444 * 설명 : 사용할포트번호추가. - 52 -

#SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> DocumentRoot "/var/www/html" ServerName www.opa.or.kr:443 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 www.opa.or.kr 인증서경로설정및파일명 www.opa.or.kr 개인키경로설정및파일명 www.opa.or.kr Chain 인증서경로설정및파일명 www.opa.or.kr Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> - 53 -

SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:444> * 설명 : VirtualHost 자리에사용할포트조정. DocumentRoot "/var/dev/html" * 설명 : 도메인홈디렉토리설정. ServerName www.eprivacy.or.kr:444 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.eprivacy.or.kr.root-bundle - 54 -

* 설명 www.eprivacy.or.kr 인증서의경로설정및파일명 www.eprivacy.or.kr 개인키경로설정및파일명 www.eprivacy.or.kr 의 Chain 인증서경로설정및파일명 www.eprivacy.or.kr 의 Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 6) 지정되어있는기존인증서경로에신규인증서업로드 [root@localhost httpd]# ls -al /etc/httpd/conf.d/ssl -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 비밀번호.txt * 설명 : 해당위치에인증서가있는지확인. [root@localhost httpd]# mkdir /etc/httpd/conf.d/ssl/ssl_old [root@localhost httpd]# cp /etc/httpd/conf.d/ssl/www.opa.or.kr* /etc/httpd/conf.d/ssl_old [root@localhost httpd]# ls -al /etc/httpd/conf.d/ssl/ssl_old -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.key - 55 -

-rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.root-bundle * 설명 : ssl 디렉토리의인증서를 20180222 디렉토리에백업을진행하고백업을확인. [root@localhost httpd]# cp conf.d/ssl_new/www.opa.or.kr.* cp conf.d/ssl/ * 설명 : 신규업데이트한인증서파일을기존인증서폴더에저장. 7) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /etc/httpd/conf.d/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt - 56 -

* 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > www.opa.or.kr.pem cat www.opa.or.kr.crt >> www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 8) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3-57 -

writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 9) Shell Script 제작. Shell Script 가있으면재시작시 비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost httpd]# vi conf.d/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost httpd]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 10) 아파치재시작진행 [root@localhost httpd]# /usr/sbin/httpd -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost httpd]# /usr/sbin/httpd -k restart [ 혹은 ] service httpd restart * 설명 : 아파치재시작. [root@localhost httpd]# ps -ef grep httpd * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/sbin/httpd daemon 117032 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117033 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117034 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117121 117031 0 Feb20 00:00:00 /usr/sbin/httpd root 118682 117620 0 01:22 pts/1 00:00:00 grep httpd [root@localhost httpd]# netstat -nlp grep httpd tcp 0 0 :::80 :::* LISTEN 118721/httpd tcp 0 0 :::443 :::* LISTEN 118721/httpd - 58 -

11) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2016 GMT # 인증서시작일 notafter=dec 31 :38:20 2017 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 59 -

3.3 Apache( 멀티도메인 ) SSL 인증서신규설치가이드 (Package Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] -> /etc/httpd 경로에설정파일존재 2) 발급받은인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl [root@localhost httpd]# cp www.opa.or.kr.* conf.d/ssl [root@localhost httpd]# ls -la conf.d/ssl -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$httpd_home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost httpd_home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.s mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost httpd_home]# httpd l Compiled in modules: core.c prefork.c http_core.c mod_so.c - 60 -

mod_ssl.c 4) ssl.conf 파일확인. ( 필요한문구만을안내 / 2 개의도메인설정.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so * 설명 : ssl 모듈불러오는설정 Listen 443 * 설명 : 사용할 SSL 포트번호 #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입. DocumentRoot "/var/www/html" * 설명 : 도메인홈디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log - 61 -

LogLevel warn SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 62 -

<VirtualHost *:443> * 설명 : www.eprivact.ot.kr SSL 설정 DocumentRoot "/var/dev/html" ServerName www.eprivacy.or.kr:443 * 설명 : eprivacy 도메인이름을기입 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 : 인증서위치는 www.opa.or.kr 도메인과동일한위치로지정. <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 63 -

5) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /etc/httpd/conf.d/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 아래와같이 1 가지형식으로있을경우. - 64 -

SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > www.opa.or.kr.pem cat www.opa.or.kr.crt >> www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 5) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. - 65 -

6) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost httpd]# vi conf.d/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost httpd]# chmod a+x paas.sh * 설명 : root만권한준다면 chmod 700 7) 아파치재시작진행 [root@localhost httpd]# /usr/sbin/httpd -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost httpd]# /usr/sbin/httpd -k restart [ 혹은 ] service httpd restart * 설명 : 아파치재시작. [root@localhost httpd]# ps -ef grep httpd * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/sbin/httpd daemon 117032 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117033 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117121 117031 0 Feb20 00:00:00 /usr/sbin/httpd root 118682 117620 0 01:22 pts/1 00:00:00 grep httpd [root@localhost httpd]# netstat -nlp grep httpd tcp 0 0 :::80 :::* LISTEN 118721/httpd tcp 0 0 :::443 :::* LISTEN 118721/httpd 8) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2016 GMT # 인증서시작일 notafter=dec 31 :38:20 2017 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 66 -

3.4 Apache( 멀티도메인 ) SSL 인증서갱신설치가이드 (Package Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep httpd -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] -> /etc/httpd 경로에설정파일존재 2) 발급받은인증서를해당서버폴더에업로드또는저장합니다. 설명 : [$httpd_home] = Apache 디렉토리 [root@localhost httpd]# mkdir conf.d/ssl_new [root@localhost httpd]# cp www.opa.or.kr.* conf.d/ssl _new [root@localhost httpd]# ls -la conf.d/ssl_new -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$httpd_home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost httpd_home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost httpd_home]# httpd l Compiled in modules: core.c prefork.c http_core.c mod_so.c mod_ssl.c - 67 -

4) ssl.conf 파일확인. ( 필요한문구만을안내 / 2 개의도메인설정.) [root@localhost httpd]# vi conf.d/ssl.conf LoadModule ssl_module modules/mod_ssl.so * 설명 : ssl 모듈불러오는설정 Listen 443 * 설명 : 사용할 SSL 포트번호 #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/etc/httpd/conf.d/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin ## ## SSL Virtual Host Context ## <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입. DocumentRoot "/var/www/html" * 설명 : 도메인홈디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 도메인이름. ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on - 68 -

* 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:443> * 설명 : www.eprivact.ot.kr SSL 설정 DocumentRoot "/var/dev/html" ServerName www.eprivacy.or.kr:443-69 -

* 설명 : eprivacy 도메인이름을기입 ErrorLog logs/ssl_error_log TransferLog logs/ssl_access_log LogLevel warn SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key SSLCertificateChainFile /etc/httpd/conf.d/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.root-bundle * 설명 : 인증서위치는 www.opa.or.kr 도메인과동일한위치로지정. <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 70 -

5) 기존인증서백업후지정되어있는경로에신규인증서업로드 [root@localhost httpd]# mkdir conf.d/ssl_old [root@localhost httpd]# cp conf.d/ssl/www.opa.or.kr* 비밀번호.txt conf.d/ssl_old [root@localhost httpd]# ls -al /etc/httpd/conf.d/ssl_old -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 비밀번호.txt * 설명 : ssl 디렉토리의인증서를 ssl_old 디렉토리에백업후확인. [root@localhost httpd]# cp conf.d/ssl_new/www.opa.or.kr.* cp conf.d/ssl/ * 설명 : 신규업데이트한인증서파일을기존인증서폴더에저장한다. 6) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /etc/httpd/conf.d/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 - 71 -

SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /etc/httpd/conf.d/ssl/www.opa.or.kr.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /etc/httpd/conf.d/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /etc/httpd/conf.d/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > www.opa.or.kr.pem cat www.opa.or.kr.crt >> www.opa.or.kr.pem cat www.opa.or.kr.ca-bundle >> www.opa.or.kr.pem cat www.opa.or.kr.root-bundle >> www.opa.or.kr.pem - 72 -

7) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost httpd]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 8) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost httpd]# vi conf.d/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost httpd]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 9) 아파치재시작진행 [root@localhost httpd]# /usr/sbin/httpd -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. - 73 -

[root@localhost httpd]# /usr/sbin/httpd -k restart [ 혹은 ] service httpd restart * 설명 : 아파치재시작. [root@localhost httpd]# ps -ef grep httpd * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/sbin/httpd daemon 117032 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117033 117031 0 Feb20 00:00:00 /usr/sbin/httpd daemon 117121 117031 0 Feb20 00:00:00 /usr/sbin/httpd root 118682 117620 0 01:22 pts/1 00:00:00 grep httpd [root@localhost httpd]# netstat -nlp grep httpd tcp 0 0 :::80 :::* LISTEN 118721/httpd tcp 0 0 :::443 :::* LISTEN 118721/httpd 10) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2016 GMT # 인증서시작일 notafter=dec 31 :38:20 2017 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 74 -

3.5 Apache( 싱글도메인 ) SSL 인증서갱신설치가이드 (Source Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep Apache -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] ->/etc/apache 경로에설정파일존재 2) 발급받으신인증서를해당서버폴더에업로드또는저장. 설명 : [$Apache_Home] = Apache 디렉토리 [root@localhost Apache]# mkdir conf/ssl [root@localhost Apache]# cp www.opa.or.kr.* conf/ssl [root@localhost Apache]# ls -la conf/ssl -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$Apache_Home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost Apache_Home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost Apache_Home]# Apache l Compiled in modules: core.c prefork.c http_core.c mod_so.c mod_ssl.c - 75 -

4) httpd.conf 파일수정. 모듈및설정파일활성화. ( 필요한문구만을출력하여나타내었습니다.) [root@localhost Apache]# vi conf/httpd.conf Listen 80 # Dynamic Shared Object (DSO) Support # # Example: # LoadModule foo_module modules/mod_foo.so # #LoadModule mpm_event_module modules/mod_mpm_event.so #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so #LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so LoadModule ssl_module modules/mod_ssl.so * 설명 : 위와같은 ssl 모듈을찾아서주석을제거하여활성화한다. <IfModule proxy_html_module> #Include conf/extra/proxy-html.conf </IfModule> Include conf/extra/httpd-ssl.conf * 설명 : 위와같은 ssl 설정파일을찾아서주석을제거하여활성화한다. <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> 5) httpd-ssl.conf 파일수정.( 필요한문구만을안내.) [root@localhost Apache]# vi conf/extra/httpd-ssl.conf - 76 -

Listen 443 * 설명 : 사용할 SSL 포트번호 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 * 설명 : SSL 프로토콜설정. #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/usr/local/apache/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache SSLSessionCacheTimeout 300 "shmcb:/usr/local/apache/logs/ssl_scache(512000)" <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입 DocumentRoot "/usr/local/apache/www" * 설명 : 도메인홈d 디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 설치가필요한도메인이름. ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 - 77 -

-Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 6) 싱글인증서 2 개이상설치를진행할경우 httpd-ssl.conf 파일수정. ( 필요한문구만을출력하여안내.) [root@localhost Apache]# vi conf/extra/httpd-ssl.conf LoadModule ssl_module modules/mod_ssl.so Listen 443 Listen 444 * 설명 : 사용할포트번호추가. SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec: :/usr/local/apache/conf/pass.sh SSLSessionCache "shmcb:/usr/local/apache/logs/ssl_scache(512000)" - 78 -

SSLSessionCacheTimeout 300 <VirtualHost *:443> DocumentRoot "/usr/local/apache/www" ServerName www.opa.or.kr:443 ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 www.opa.or.kr 인증서경로설정및파일명 www.opa.or.kr 개인키경로설정및파일명 www.opa.or.kr Chain 인증서경로설정및파일명 www.opa.or.kr Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> </Files> SSLOptions +StdEnvVars <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" - 79 -

</VirtualHost> <VirtualHost *:444> * 설명 : VirtualHost 자리에사용할포트조정. DocumentRoot "/usr/local/apache/ep" * 설명 : 도메인홈디렉토리설정. ServerName www.eprivacy.or.kr:444 * 설명 : 도메인이름. ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLProtocol all -SSLv2 * 설명 : SSL 프로토콜설정. SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /usr/local/apache/conf/ssl/www.eprivacy.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.eprivacy.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.eprivacy.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.eprivacy.or.kr.root-bundle * 설명 www.eprivacy.or.kr 인증서의경로설정및파일명 www.eprivacy.or.kr 개인키경로설정및파일명 www.eprivacy.or.kr 의 Chain 인증서경로설정및파일명 www.eprivacy.or.kr 의 Root 인증서경로설정및파일명 <FilesMatch "\.(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> - 80 -

BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 7) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /usr/local/apache/conf/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt - 81 -

* 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 8) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 - 82 -

[root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 9) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost Apache]# vi conf/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost Apache]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 10) 아파치재시작진행 [root@localhost Apache]# bin/apachectl -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. [root@localhost Apache]# bin/apachectl -v * 설명 : 아파치버전확인. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost Apache]# bin/apachectl stop ß아파치 2.0.X 이하버전 [root@localhost Apache]# bin/apachectl startssl or [root@localhost Apache]# bin/apachectl restart ß아파치 2.0.X 이상버전 * 설명 : 아파치재시작. [root@localhost Apache]# ps -ef grep Apache * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/local/apache/bin/apache -k - 83 -

start daemon 117032 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117033 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117034 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117121 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start root 118682 117620 0 01:22 pts/1 00:00:00 grep Apache [root@localhost Apache]# netstat -nlp grep Apache * 설명 : SSL 443 포트확인 tcp 0 0 :::80 :::* LISTEN 118721/Apache tcp 0 0 :::443 :::* LISTEN 118721/Apache 11) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT # 인증서시작일 notafter=dec 31 :38:20 2019 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 84 -

3.6 Apache( 싱글도메인 ) SSL 인증서신규설치가이드 (Source Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep Apache -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] ->/etc/apache 경로에설정파일존재 2) 발급받으신인증서를해당서버폴더에업로드또는저장. 설명 : [$Apache_Home] = Apache 디렉토리 [root@localhost Apache]# mkdir conf/ssl_new [root@localhost Apache]# cp www.opa.or.kr.* conf/ssl_new [root@localhost Apache]# ls -la conf/ssl -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) 기존인증서의시작일과만료일확인. [root@localhost Apache_Home]# netstat -nlp grep httpd tcp 0 0 :::80 :::* LISTEN 118721/httpd tcp 0 0 :::443 :::* LISTEN 118721/httpd * 설명 : 기존 SSL 사용중인포트확인.( 포트번호는 443 이아닐수도있음 ) [root@localhost Apache_Home]# echo "" openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 기존인증서시작일및만료일확인. notbefore=jan 30 11:16:09 2018 GMT notafter=jan 31 10:58:54 2019 GMT 인증서시작일 인증서만료일 - 85 -

* 명령어형식 : echo "" openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates 4) httpd.conf 파일확인. # Various default settings #Include conf/extra/httpd-default.conf <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> Include conf/extra/httpd-ssl.conf * 설명 : SSL 설정파일위치확인. <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> 5) httpd-ssl.conf 파일확인.( 필요한문구만을안내.) [root@localhost Apache]# vi conf/extra/httpd-ssl.conf Listen 443 * 설명 : 사용할 SSL 포트번호 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 * 설명 : SSL 프로토콜설정. #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/usr/local/apache/pass.sh - 86 -

* 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache SSLSessionCacheTimeout 300 "shmcb:/usr/local/apache/logs/ssl_scache(512000)" <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입 DocumentRoot "/usr/local/apache/www" * 설명 : 도메인홈d 디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 설치가필요한도메인이름. ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ - 87 -

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 6) 기존인증서파일명이 PEM 으로되어있을경우 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /usr/local/apache/conf/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat 명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. - 88 -

cat www.opa.or.kr.crt > newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pemcat www.opa.or.kr.root-bundle >> newreq.pem 7) 지정되어있는기존인증서경로에신규인증서업로드 [root@localhost Apache]# mkdir /usr/local/apache/conf/ssl/ssl_old [root@localhost Apache]# cp /conf/ssl/www.ucert.co.kr.* /conf/ssl/ssl_old [root@localhost Apache]# ls -al /usr/local/apache/conf/ssl/ssl_old -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.ucert.co.kr.ca-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 www.ucert.co.kr.crt -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.ucert.co.kr.key -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.ucert.co.kr.root-bundle * 설명 : ssl 디렉토리의인증서를 ssl_old 디렉토리에백업을진행하고백업을확인한다. [root@localhost Apache]# cp /conf/ssl_new/www.ucert.co.kr.* /usr/local/apache/conf/ssl * 설명 : 신규업데이트한인증서파일을기존인증서폴더에저장한다. - 89 -

8) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 9) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost Apache]# vi conf/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost Apache]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 10) 아파치재시작진행 [root@localhost Apache]# bin/apachectl -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. [root@localhost Apache]# bin/apachectl -v * 설명 : 아파치버전확인. - 90 -

비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost Apache]# bin/apachectl stop ß아파치 2.0.X 이하버전 [root@localhost Apache]# bin/apachectl startssl or [root@localhost Apache]# bin/apachectl restart ß아파치 2.0.X 이상버전 * 설명 : 아파치재시작. [root@localhost Apache]# ps -ef grep Apache * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/local/apache/bin/apache -k start daemon 117032 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117033 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117034 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117121 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start root 118682 117620 0 01:22 pts/1 00:00:00 grep Apache [root@localhost Apache]# netstat -nlp grep Apache * 설명 : SSL 443 포트확인 tcp 0 0 :::80 :::* LISTEN 118721/Apache tcp 0 0 :::443 :::* LISTEN 118721/Apache 11) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT # 인증서시작일 notafter=dec 31 :38:20 2019 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 91 -

3.7 Apache( 멀티도메인 ) SSL 인증서신규설치가이드 (Source Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep Apache -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] ->/etc/apache 경로에설정파일존재 2) 발급받으신인증서를해당서버폴더에업로드또는저장. 설명 : [$Apache_Home] = Apache 디렉토리 [root@localhost Apache]# mkdir conf/ssl [root@localhost Apache]# cp www.opa.or.kr.* conf/ssl [root@localhost Apache]# ls -la conf/ssl -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$Apache_Home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost Apache_Home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost Apache_Home]# Apache l Compiled in modules: core.c prefork.c http_core.c mod_so.c mod_ssl.c - 92 -

4) httpd.conf 파일수정. 모듈및설정파일활성화.( 필요한문구만을출력.) [root@localhost Apache]# vi conf/httpd.conf Listen 80 # Dynamic Shared Object (DSO) Support # # Example: # LoadModule foo_module modules/mod_foo.so # #LoadModule mpm_event_module modules/mod_mpm_event.so #LoadModule mpm_prefork_module modules/mod_mpm_prefork.so #LoadModule mpm_worker_module modules/mod_mpm_worker.so #LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authz_dbd_module modules/mod_authz_dbd.so LoadModule ssl_module modules/mod_ssl.so * 설명 : 위와같은 ssl 모듈을찾아서주석을제거하여활성화한다. <IfModule proxy_html_module> #Include conf/extra/proxy-html.conf </IfModule> Include conf/extra/httpd-ssl.conf * 설명 : 위와같은 ssl 설정파일을찾아서주석을제거하여활성화한다. <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> 5) httpd-ssl.conf 파일수정.( 필요한문구만을안내.) [root@localhost Apache]# vi conf/extra/httpd-ssl.conf Listen 443-93 -

* 설명 : 사용할 SSL 포트번호 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 * 설명 : SSL 프로토콜설정. #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/usr/local/apache/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache SSLSessionCacheTimeout 300 "shmcb:/usr/local/apache/logs/ssl_scache(512000)" <VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입 DocumentRoot "/usr/local/apache/www" * 설명 : 도메인홈d 디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 설치가필요한도메인이름. ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 - 94 -

-Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <VirtualHost *:443> * 설명 : aka.ucert.co.kr SSL 설정 DocumentRoot "/usr/local/apache/ep" * 설명 :aka 홈디렉토리설정. ServerName www.eprivacy.or.kr:443 * 설명 : www가아닌 aka 도메인이름을기입 ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 : 인증서위치는 www.opa.or.kr 도메인과동일한위치로지정토록한다. <FilesMatch "\.(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> - 95 -

<Directory "/usr/local/apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> 6) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /usr/local/apache/conf/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 - 96 -

SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 아래와같이 1 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 7) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] - 97 -

* 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 8) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost Apache]# vi conf/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost Apache]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 9) 아파치재시작진행 [root@localhost Apache]# bin/apachectl -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. [root@localhost Apache]# bin/apachectl -v * 설명 : 아파치버전확인. 비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost Apache]# bin/apachectl stop ß아파치 2.0.X 이하버전 [root@localhost Apache]# bin/apachectl startssl or [root@localhost Apache]# bin/apachectl restart ß아파치 2.0.X 이상버전 * 설명 : 아파치재시작. - 98 -

[root@localhost Apache]# ps -ef grep Apache * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/local/apache/bin/apache -k start daemon 117032 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117033 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117034 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117121 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start root 118682 117620 0 01:22 pts/1 00:00:00 grep Apache [root@localhost Apache]# netstat -nlp grep Apache * 설명 : SSL 443 포트확인 tcp 0 0 :::80 :::* LISTEN 118721/Apache tcp 0 0 :::443 :::* LISTEN 118721/Apache 10) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT # 인증서시작일 notafter=dec 31 :38:20 2019 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 99 -

3.8 Apache( 멀티도메인 )SSL 인증서갱신설치가이드 (Source Version) 1) Apache source 및 package 구분 아파치경로확인명령어 : ps ef grep Apache -source: /usr/local/apache [ 경로및 apache이름상이할수있음 ] -> 확인경로에설정파일존재 -package: /usr/sbin/apache [apache이름상이할수있음 ] ->/etc/apache 경로에설정파일존재 2) 발급받으신인증서를해당서버폴더에업로드또는저장. 설명 : [$Apache_Home] = Apache 디렉토리 [root@localhost Apache]# mkdir conf/ssl_new [root@localhost Apache]# cp www.opa.or.kr.* conf/ssl_new [root@localhost Apache]# ls -la conf/ssl_new -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 비밀번호.txt 3) [$Apache_Home]/modules 디렉토리를확인하여 ssl 모듈확인. 동적설치확인. [root@localhost Apache_Home]# ls modules mod_authn_anon.so mod_authz_owner.so mod_deflate.so mod_ssl.so mod_authn_dbd.so mod_authz_user.so mod_dir.so mod_speling.so mod_authn_dbm.so mod_autoindex.so mod_disk_cache.so mod_ssl.so mod_authn_default.so mod_cache.so mod_dnssd.so mod_status.so 정적설치확인. [root@localhost Apache_Home]# Apache l Compiled in modules: core.c prefork.c http_core.c mod_so.c mod_ssl.c - 100 -

4) httpd.conf 파일확인. # Various default settings #Include conf/extra/httpd-default.conf <IfModule proxy_html_module> Include conf/extra/proxy-html.conf </IfModule> Include conf/extra/httpd-ssl.conf * 설명 : SSL 설정파일위치확인. <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> 5) httpd-ssl.conf 파일확인.( 필요한문구만을안내.) [root@localhost Apache]# vi conf/extra/httpd-ssl.conf Listen 443 * 설명 : 사용할 SSL 포트번호 SSLCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLProxyCipherSuite HIGH:MEDIUM:!MD5:!RC4:!3DES SSLHonorCipherOrder on SSLProtocol all -SSLv3 SSLProxyProtocol all -SSLv3 * 설명 : SSL 프로토콜설정. #SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/usr/local/apache/pass.sh * 설명 : ssl 인증서비밀번호 shell script 위치및설정. 비밀번호가없다면설정불필요. SSLSessionCache SSLSessionCacheTimeout 300 "shmcb:/usr/local/apache/logs/ssl_scache(512000)" - 101 -

<VirtualHost *:443> * 설명 : 주로 * 자리에 IP 주소기입 DocumentRoot "/usr/local/apache/www" * 설명 : 도메인홈d 디렉토리설정. ServerName www.opa.or.kr:443 * 설명 : 설치가필요한도메인이름. ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Chain 인증서경로설정및파일명 -Root 인증서경로설정및파일명 <Files ~ "\.(cgi shtml phtml php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 102 -

<VirtualHost *:443> * 설명 : www.eprivacy.or.kr SSL 설정 DocumentRoot "/usr/local/apache/ep" * 설명 : www.eprivacy.or.kr 홈디렉토리설정. ServerName www.eprivacy.or.kr:443 * 설명 : www.opa.or.kr 가아닌 www.eprivacy.or.kr 도메인이름을기입 ServerAdmin you@example.com ErrorLog "/usr/local/apache/logs/error_log" TransferLog "/usr/local/apache/logs/access_log" SSLEngine on * 설명 : SSL 엔진사용. SSL 을사용토록한다. SSLCertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.crt SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key SSLCertificateChainFile /usr/local/apache/conf/ssl/www.opa.or.kr.ca-bundle SSLCACertificateFile /usr/local/apache/conf/ssl/www.opa.or.kr.root-bundle * 설명 : 인증서위치는 www.opa.or.kr 도메인과동일한위치로지정토록한다. <FilesMatch "\.(cgi shtml phtml php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch "MSIE [2-5]" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog "/usr/local/apache/logs/ssl_request_log" \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> - 103 -

6) 기존인증서파일명이 PEM 으로되어있을경우. 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 SSLCertificateChainFile /usr/local/apache/conf/ssl/chain.pem * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! -cat명령어로도메인.key, 도메인.crt 파일을하나의파일에추가하여생성. cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem -cat 명령어로체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.ca-bundle > chain.pem cat www.opa.or.kr.root-bundle >> chain.pem 아래와같이 2 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/www.opa.or.kr.key * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 순서중요! cat명령어로도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성. cat www.opa.or.kr.crt > newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem - 104 -

아래와같이 1 가지형식으로있을경우. SSLCertificateFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 인증서경로설정및파일명 SSLCertificateKeyFile /usr/local/apache/conf/ssl/newreq.pem * 설명 : 개인키경로설정및파일명 #SSLCertificateChainFile /usr/local/apache/conf/ssl/server-ca.crt * 설명 : Chain 인증서경로설정및파일명 #SSLCACertificateFile /usr/local/apache/conf/ssl/ca-bundle.crt * 설명 : Root 인증서경로설정및파일명 cat명령어로도메인.key 도메인.crt, 체인인증서, 루트인증서파일을하나의파일에추가하여생성한다.( 순서중요!) cat www.opa.or.kr.key > newreq.pem cat www.opa.or.kr.crt >> newreq.pem cat www.opa.or.kr.ca-bundle >> newreq.pem cat www.opa.or.kr.root-bundle >> newreq.pem 7) 지정되어있는기존인증서경로에신규인증서업로드 [root@localhost Apache]# mkdir /usr/local/apache/conf/ssl/ssl_old [root@localhost Apache]# cp conf/ssl/www.opa.or.kr* conf/ssl/ssl_old [root@localhost Apache]# ls -al /usr/local/apache/conf/ssl/ssl_old -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Feb 22 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Feb 22 00:00 www.opa.or.kr.root-bundle * 설명 : ssl 디렉토리의인증서를 ssl_old 디렉토리에백업을진행하고백업을확인한다. [root@localhost Apache]# cp conf/ssl_new/mdc.ucert.co.kr.* cp conf/ssl/ * 설명 : 신규업데이트한인증서파일을기존인증서폴더에저장한다. - 105 -

8) KEY 파일비밀번호제거및추가하는방법. - 비밀번호제거 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -out www.opa.or.kr.key Enter pass phrase for www.opa.or.kr.key: [ 비밀번호 ] writing RSA key * 명령어형식 : openssl rsa -in [ 제거할키파일명 ] -out [ 제거한키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호제거완료. - 비밀번호추가 [root@localhost Apache]# openssl rsa -in www.opa.or.kr.key -passout pass:'test1234' -out www.opa.or.kr.key -des3 writing RSA key * 명령어형식 : openssl rsa -in [ 추가할키파일명 ] -passout pass:'[ 비밀번호 ]' -out [ 추가키파일명 ] * 설명 : 위와같이쓰기문구가출력된다면비밀번호추가완료. 9) Shell Script 제작. Shell Script 가있으면재시작시비밀번호를입력할필요가없음. ( 인증서비밀번호가없다면불필요함.) [root@localhost Apache]# vi conf/pass.sh #!/bin/sh echo 패스워드 :wq [root@localhost Apache]# chmod a+x paas.sh * 설명 : root 만권한준다면 chmod 700 10) 아파치재시작진행 [root@localhost Apache]# bin/apachectl -t Syntax OK * 설명 : 설정문법에오류가있는지확인한다. 오류가있다면오류문구출력. [root@localhost Apache]# bin/apachectl -v * 설명 : 아파치버전확인. - 106 -

비밀번호가있는인증서라면재시작시비밀번호를입력. 비밀번호가제거혹은 Shell Script 사용시비밀번호입력불필요. [root@localhost Apache]# bin/apachectl stop ß아파치 2.0.X 이하버전 [root@localhost Apache]# bin/apachectl startssl or [root@localhost Apache]# bin/apachectl restart ß아파치 2.0.X 이상버전 * 설명 : 아파치재시작. [root@localhost Apache]# ps -ef grep Apache * 설명 : 아파치데몬확인진행 root 117031 1 0 Feb20 00:00:03 /usr/local/apache/bin/apache -k start daemon 117032 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117033 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117034 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start daemon 117121 117031 0 Feb20 00:00:00 /usr/local/apache/bin/apache -k start root 118682 117620 0 01:22 pts/1 00:00:00 grep Apache [root@localhost Apache]# netstat -nlp grep Apache * 설명 : SSL 443 포트확인 tcp 0 0 :::80 :::* LISTEN 118721/Apache tcp 0 0 :::443 :::* LISTEN 118721/Apache 11) 서버내에서인증서설치확인 [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout -dates * 설명 : 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT # 인증서시작일 notafter=dec 31 :38:20 2019 GMT # 인증서만료일 * 명령어형식 : openssl s_client -connect [ 도메인 or IP]:[ 포트번호 ] openssl x509 -noout -dates - 107 -

3.9 IHS( 싱글도메인 ) SSL 인증서신규설치가이드 1) [$HTTPSever]/conf/ httpd.conf 파일을확인합니다. # Uncomment the following line to load the IBM SSL module. # Note: You must have installed the corresponding IBM SSL support for this to work LoadModule ibm_ssl_module modules/mod_ibm_ssl.so // 주석처리되어있을시주석제거. Listen 443 <VirtualHost *:443> SSLEnable SSLClientAuth None SSLCRLHostname www.opa.or.kr:443 SSLCRLPort 443 </VirtualHost> kdb 파일위치를지정. SSLDisable Keyfile "C:/Program Files/IBM/HTTPServer/ssl/www.opa.or.kr.kdb" SSLV2Timeout 100 SSLV3Timeout 1000 :wq // 저장후종료. 2) SSL 인증서파일업로드작업. 1. 지정한인증서의위치로파일명을맞추어서진행. ex) www.opa.or.kr.kdb www.opa.or.kr.sth 2. 발급받은인증서를해당위치에업로드. 3. 업로드후 httpd.conf 환경파일에설정되어있는이름과동일하게세팅. - 108 -

3) IHS 웹서버재시작 [root@localhost HTTPServer]# bin/apachectl stop [root@localhost HTTPServer]# bin/apachectl star 4) SSL 포트확인 [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN 5) 인증서확인 [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout dates // 위의명령어를입력하여인증서만료날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 - 109 -

3.10 IHS( 싱글도메인 ) SSL 인증서갱신설치가이드 1) [$HTTPSever]/conf/ httpd.conf 파일을확인합니다. # Uncomment the following line to load the IBM SSL module. # Note: You must have installed the corresponding IBM SSL support for this to work LoadModule ibm_ssl_module modules/mod_ibm_ssl.so // 주석처리되어있을시주석제거. Listen 443 <VirtualHost *:443> SSLEnable SSLClientAuth None SSLCRLHostname www.opa.or.kr:443 SSLCRLPort 443 </VirtualHost> kdb 파일위치를지정. SSLDisable Keyfile "C:/Program Files/IBM/HTTPServer/ssl/www.opa.or.kr.kdb" SSLV2Timeout 100 SSLV3Timeout 1000 :wq // 저장후종료. 2) SSL 인증서파일교체작업. 1. 기존인증서위치에서인증서백업 [root@localhost HTTPServer/ssl]#mkdir ssl_old [root@localhost HTTPServer/ssl]#cp www.opa.or.kr.kdb www.opa.or.kr.sth ssl_old 2. 발급받은인증서를해당위치에업로드. (sth 파일은기존인증서패스워드와동일할경우업로드하지않아도무관.) 3. 업로드후 httpd.conf 환경파일에설정되어있는이름과동일하게세팅. - 110 -

3) IHS 웹서버재시작. [root@localhost HTTPServer]# bin/apachectl stop [root@localhost HTTPServer]# bin/apachectl start 4) SSL 포트확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN 5) 인증서확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout dates // 위의명령어를입력하여인증서만료날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 - 111 -

3.11 Jboss( 싱글 & 멀티도메인 ) SSL 인증서신규 & 갱신설치가이드 JBoss 의웹컨테이너는 Jakarta Tomcat 으로 Jboss_home/server/default/deply/jbossweb.deployer/server.xml 파일을살펴보면 tomcat 의 SSL 설정과동일. 1) Server.xml 설정파일에서 SSL 설정. [ 일반설정 ] <Connector protocol="org.apache.coyote.http11.http11protocol" port="443" minsparethreads="5" maxsparethreads="75" // SSL 기본포트 443 설정. [default 는 8443] enablelookups="true" disableuploadtimeout="true" acceptcount="100" maxthreads="200" scheme="https" secure="true" S S L E n a b l e d = " t r u e " keystorefile="${jboss_home}/conf/ssl/www.opa.or.kr.jks // 인증서위치 keystorepass="changeit" // 인증서패스워드 clientauth="false" sslprotocol="tls"/> :wq // 저장후종료 2) 서버재시작진행. 3) 웹페이지에서의인증서확인방법 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 112 -

3.12 Lighttpd( 싱글도메인 ) SSL 인증서신규설치가이드 1) 인증서만들기 [root@localhost ssl]# cat www.opa.or.kr.key www.opa.or.kr.crt >www.opa.or.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장. 2) SSL 환경설정. [root@localhost lighttpd]# vi lighttpd.conf // 설명 : lighttpd 환경파일수정 $HTTP["host"]=~"www.opa.or.kr" { server.document-root = "/srv/www/htdocs" index-file.names += ( "index.html", "index.xhtml", "index.htm", "default.htm", "index.php" ) } #### CGI module #cgi.assign = ( ".pl" => "/usr/bin/perl", # ".cgi" => "/usr/bin/perl" ) # #### SSL engine $SERVER["socket"] == ":443" { // 설명 : SSL 서비스포트설정 ssl.engine = "enable" // 설명 : SSL 서비스활성화설정 ssl.pemfile = "/usr/local/lighttpd/conf/ssl/www.opa.or.kr.pem" ssl.ca-file = "/usr/local/lighttpd/conf/ssl/www.opa.or.kr.ca-bundle" // 설명 : 인증서 + 개인키경로설정 // 설명 : CA 인증서경로설정 server.name = www.opa.or.kr // 설명 : 도메인명 server.document-root = "/srv/www/vhosts/opa/" index-file.names += ( "index.html", "index.xhtml", "index.htm", "default.htm", "index.php" ) // 설명 : 홈디렉토리 } - 113 -

3) Lighttpd 재시작. [root@localhost conf]# /etc/rc.d/init.d/lighttpd restart lighttpd 를정지중 : [ OK ] lighttpd ( 을 ) 를시작중 : Enter PEM pass phrase: [ 개인키패스워드입력 ] [ OK ] 4) 인증서만료일확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN 19301/lighttpd tcp 0 0 :::443 :::* LISTEN 19301/lighttpd // 설명 : 443포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@mail ~]# openssl s_client -connect localhost:443 openssl x509 -noout -enddate notafter=jan 01 21:38:20 2019 GMT // 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접 속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가 ) 되어있는지확인. 5) 웹브라우저에서인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 114 -

3.13 Lighttpd( 멀티도메인 ) SSL 인증서신규설치가이드 1) 인증서만들기 [root@localhost ssl]# cat www.opa.or.kr.key www.opa.or.kr.crt >www.opa.or.kr.pem // 설명 : 발급받은인증서 / 개인키파일을한파일로저장. 2) SSL 환경설정 [root@localhost lighttpd]# vi lighttpd.conf // 설명 : lighttpd 환경파일수정 $HTTP["host"]=~"www.opa.or.kr" { server.document-root = "/srv/www/htdocs" index-file.names += ( "index.html", "index.xhtml", "index.htm", "default.htm", "index.php" ) } #### CGI module #cgi.assign = ( ".pl" => "/usr/bin/perl", # ".cgi" => "/usr/bin/perl" ) # #### SSL engine $SERVER["socket"] == ":443" { // 설명 : SSL 서비스포트설정 ssl.engine = "enable" // 설명 : SSL 서비스활성화설정 ssl.pemfile = "/usr/local/lighttpd/conf/ssl/www.opa.or.kr.pem" ssl.ca-file = "/usr/local/lighttpd/conf/ssl/www.opa.or.kr.ca-bundle" // 설명 : 인증서 + 개인키경로설정 // 설명 : CA 인증서경로설정 server.name = www.opa.or.kr // 설명 : 도메인명 server.document-root = "/srv/www/vhosts/opa/" index-file.names += ( "index.html", "index.xhtml", "index.htm", "default.htm", "index.php" ) // 설명 : 홈디렉토리 } - 115 -

#### SSL engine // 설명 : 같은설정을진행. $SERVER["socket"] == ":443" { // 설명 : SSL 서비스포트설정 ssl.engine = "enable" // 설명 : SSL 서비스활성화설정 ssl.pemfile = "/usr/local/lighttpd/conf/ssl/www.eprivacy.or.kr.pem" ssl.ca-file = "/usr/local/lighttpd/conf/ssl/www.eprivacy.or.kr.ca-bundle" // 설명 : 인증서 + 개인키경로설정 // 설명 : CA 인증서경로설정 server.document-root = "/usr/local/lighttpd/eprivacy/" // 설명 : 홈디렉토리설정 3) Lighttpd 재시작 [root@localhost conf]# /etc/rc.d/init.d/lighttpd restart lighttpd 를정지중 : [ OK ] lighttpd ( 을 ) 를시작중 : Enter PEM pass phrase: [ 개인키패스워드입력 ] [ OK ] 4) 인증서만료일확인 [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN 19301/lighttpd tcp 0 0 :::443 :::* LISTEN 19301/lighttpd // 설명 : 443포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@mail ~]# openssl s_client -connect localhost:443 openssl x509 -noout -enddate notafter=jan 01 21:38:20 2019 GMT // 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접 속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가 ) 되어있는지확인. - 116 -

5) 웹브라우저에서인증서확인방법 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 117 -

3.14 Nginx( 싱글도메인 ) SSL 인증서신규설치가이드 1) [ 도메인 ].pem 파일구성하기 - 파일업로드전에파일을.pem 파일을생성. - 위의내용을차례대로도메인.crt, ca.crt, root.crt 순으로내용을복사. - 118 -

2) 위의내용을차례대로도메인.crt, ca.crt, root.crt 순으로내용을복사. 3) 인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp www.opa.or.kr* /Nginx/ssl [root@localhost New]$ cd /Nginx/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.pem -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt - 119 -

4) [$Nginx_Home]/conf/nginx.conf 파일을열어 SSL 환경설정을합니다. 설명 : [$Nginx_Home] = Nginx 디렉토리 # HTTPS server // 설명 : 아래에주석을해제하여 SSL 을사용설정토록한다. server { listen 443 ; // 설명 : 포트번호설정. server_name www.opa.or.kr; // 설명 : 서버네임을기입한다. ssl on; ssl_certificate /usr/local/nginx/ssl/www.opa.or.kr.pem; ssl_certificate_key /usr/local/nginx/ssl/www.opa.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게설정 // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; } location / { root html; index index.html index.htm; } 5) Nginx 재시작 [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ll total 7292 -rwxr-xr-x. 1 root root 4720496 Jan 1 19:36 nginx // 설명 : 실행파일확인완료 -rwxr-xr-x. 1 root root 2742665 Jan 1 19:10 nginx.old [root@localhost sbin]#./nginx -s stop [root@localhost sbin]#./nginx start - 120 -

6) Nginx 포트확인. [root@localhost ~]# netstat -nlp grep nginx tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 설정하신 SSL 포트가 Listen 상태인지확인합니다. - 웹브라우져주소창에 https:// 도메인 :SSL 포트 를입력하여접속이되는지확인. -SSL 기본포트인 443 포트로설정하셨다면 https:// 도메인 으로접속확인. 7) 서버내에서인증서확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -out -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 8) 웹브라우저에서인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 121 -

3.15 Nginx( 싱글도메인 ) SSL 인증서갱신설치가이드 1) [ 도메인 ].pem 파일구성하기 - 파일업로드전에파일을.pem 파일을생성. - 위의내용을차례대로도메인.crt, ca.crt, root.crt 순으로내용을복사. - 122 -

2) 확장자명을도메인.pem 파일로저장. 3) [$Nginx_Home]/conf/nginx.conf 파일을열어 SSL 환경설정을확인합니다. 설명 : [$Nginx_Home] = Nginx 디렉토리 # HTTPS server // 설명 : 아래에주석을해제하여 SSL 을사용설정토록한다. server { - 123 -

listen 443 ; // 설명 : 포트번호설정. server_name www.opa.or.kr; // 설명 : 서버네임을기입한다. ssl on; ssl_certificate /usr/local/nginx/ssl/www.opa.or.kr.pem; ssl_certificate_key /usr/local/nginx/ssl/www.opa.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게설정 // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; } location / { root html; index index.html index.htm; } 4) 인증서를해당 SSL 폴더에업로드또는저장. [ 기존인증서는백업진행 ] [root@localhost ssl]$mkdir ssl_old [root@localhost ssl]$cp www.opa.or.kr.* ssl_old [root@localhost New]$ cp www.opa.or.kr* /Nginx/ssl [root@localhost New]$ cd /Nginx/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.pem -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 5) Nginx 재시작 [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ll total 7292 -rwxr-xr-x. 1 root root 4720496 Jan 1 19:36 nginx // 설명 : 실행파일확인완료 -rwxr-xr-x. 1 root root 2742665 Jan 1 19:10 nginx.old - 124 -

[root@localhost sbin]#./nginx -s stop [root@localhost sbin]#./nginx start 6) 포트확인. [root@localhost ~]# netstat -nlp grep nginx tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 설정하신 SSL 포트가 Listen 상태인지확인합니다. - 웹브라우져주소창에 https:// 도메인 :SSL 포트 를입력하여접속이되는지확인. -SSL 기본포트인 443 포트로설정하셨다면 https:// 도메인 으로접속확인. 7) 서버내에서인증서확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -out -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 8) 웹브라우저에서인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 125 -

3.16 Nginx( 멀티도메인 ) SSL 인증서신규설치가이드 멀티인증서와와일드카드인증서는중복포트사용이가능하다. ( 동일한 443포트설정가능 ) 1) [ 도메인 ].pem 파일구성하기 - 파일업로드전에파일을.pem 파일을생성. - 위의내용을차례대로도메인.crt, ca.crt, root.crt 순으로내용을복사. - 126 -

2) 확장자명을도메인.pem 파일로저장. 3) 인증서를해당 SSL 폴더에업로드또는저장 [root@localhost New]$ cp www.opa.or.kr* /Nginx/ssl [root@localhost New]$ cd /Nginx/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.pem -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt. - 127 -

4) [$Nginx_Home]/conf/nginx.conf 파일을열어 SSL 환경설정을합니다. 설명 : [$Nginx_Home] = Nginx 디렉토리 # HTTPS server // 설명 : 아래에주석을해제하여 SSL 을사용설정토록한다. server { listen 443 ; // 설명 : 포트번호설정. server_name www.opa.or.kr; // 설명 : 서버네임을기입한다. ssl on; ssl_certificate /usr/local/nginx/ssl/www.opa.or.kr.pem; ssl_certificate_key /usr/local/nginx/ssl/www.opa.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게설정 // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; } location / { root html; index index.html index.htm; } server { listen 443 ; // 설명 : 동일한포트번호설정. server_name www.eprivacy.or.kr; // 설명 : 서버네임을기입한다. } ssl on; ssl_certificate /usr/local/nginx/ssl/www.eprivacy.or.kr.key; ssl_certificate_key /usr/local/nginx/ssl/www.eprivacy.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게한다. // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; - 128 -

} location / { root html; index index.html index.htm; } 5) Nginx 재시작 [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ll total 7292 -rwxr-xr-x. 1 root root 4720496 Jan 1 19:36 nginx // 설명 : 실행파일확인완료 -rwxr-xr-x. 1 root root 2742665 Jan 1 19:10 nginx.old [root@localhost sbin]#./nginx -s stop [root@localhost sbin]#./nginx start 6) 포트확인. [root@localhost ~]# netstat -nlp grep nginx tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 설정하신 SSL 포트가 Listen 상태인지확인합니다. - 웹브라우져주소창에 https:// 도메인 :SSL 포트 를입력하여접속이되는지확인. -SSL 기본포트인 443 포트로설정하셨다면 https:// 도메인 으로접속확인. 7) 서버내에서인증서확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -out -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 - 129 -

8) 웹브라우저에서인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 130 -

3.17 Nginx( 멀티도메인 ) SSL 인증서갱신설치가이드 멀티인증서와와일드카드인증서는중복포트사용이가능하다. ( 동일한 443포트설정가능 ) 1) [ 도메인 ].pem 파일구성하기 - 파일업로드전에파일을.pem 파일을생성. - 위의내용을차례대로도메인.crt, ca.crt, root.crt 순으로내용을복사. - 131 -

2) 확장자명을도메인.pem 파일로저장. 3) [$Nginx_Home]/conf/nginx.conf 파일을열어 SSL 환경설정확인. 설명 : [$Nginx_Home] = Nginx 디렉토리 # HTTPS server // 설명 : 아래에주석을해제하여 SSL 을사용설정토록한다. server { - 132 -

listen 443 ; // 설명 : 포트번호설정. server_name www.opa.or.kr; // 설명 : 서버네임을기입한다. ssl on; ssl_certificate /usr/local/nginx/ssl/www.opa.or.kr.pem; ssl_certificate_key /usr/local/nginx/ssl/www.opa.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게설정 // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; } location / { root html; index index.html index.htm; } server { listen 443 ; // 설명 : 동일한포트번호설정. server_name www.eprivacy.or.kr; // 설명 : 서버네임을기입한다. } ssl on; ssl_certificate /usr/local/nginx/ssl/www.eprivacy.or.kr.key; ssl_certificate_key /usr/local/nginx/ssl/www.eprivacy.or.kr.key; // 설명 : 인증서위치를설정하고파일명을동일하게한다. // 설명 : 인증서키파일경로설정및파일명동일하게한다. ssl_session_cache shared:ssl:1m; ssl_session_timeout 5m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; } location / { root html; index index.html index.htm; } - 133 -

4) 인증서를해당 SSL 폴더에업로드또는저장. [ 기존인증서는백업후진행 ] [root@localhost ssl]$ mkdir ssl_old [root@localhost ssl]$ cp www.opa.or.kr* /Nginx/ssl/ssl_old [root@localhost New]$ cp www.opa.or.kr* /Nginx/ssl [root@localhost New]$ cd /Nginx/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.pem -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 5) Nginx 재시작 [root@localhost nginx]# cd sbin/ [root@localhost sbin]# ll total 7292 -rwxr-xr-x. 1 root root 4720496 Jan 1 19:36 nginx // 설명 : 실행파일확인완료 -rwxr-xr-x. 1 root root 2742665 Jan 1 19:10 nginx.old [root@localhost sbin]#./nginx -s stop [root@localhost sbin]#./nginx start 6) 포트확인. [root@localhost ~]# netstat -nlp grep nginx tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 설정하신 SSL 포트가 Listen 상태인지확인합니다. - 웹브라우져주소창에 https:// 도메인 :SSL 포트 를입력하여접속이되는지확인. -SSL 기본포트인 443 포트로설정하셨다면 https:// 도메인 으로접속확인. 7) 서버내에서인증서확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -out -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. - 134 -

notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 8) 웹브라우저에서인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 135 -

3.18 Oracle HTTP Server ( 싱글도메인 ) SSL 인증서신규설치가이드 1) OHS 설치 * $ORACLE_HOME/opmn/conf/opmn.xml 파일확인. [oracle@localhost default]$ vi /App/LOCALHOST/opmn/conf/opmn.conf <ias-component id="http_server"> <process-type id="http_server" module-id="ohs"> <module-data> <category id="start-parameters"> <data id="start-mode" value="ssl-enabled"/> * 설명 : disabled 로되어있을경우 enabled 로수정합니다. </category> </module-data> <process-set id="http_server" numprocs="1"/> </process-type> </ias-component> 2) OHS 의환경파일인 httpd.conf 파일편집. [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/httpd.conf * 설명 : 주석처리되어있을경우해제 <IfDefine SSL> LoadModule ossl_module "/App/LOCALHOST/Apache/Apache/modules/mod_ossl.so" </IfDefine> # Include the SSL definitions and Virtual Host container include "/App/LOCALHOST/Apache/Apache/conf/ssl.conf" * 설명 : 참조된파일을확인합니다. 3) 인증서파일업로드 [oracle@localhost /]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso [oracle@localhost /]$ mv /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost /]$ cd /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso - 136 -

4) SSL 환경파일인 ssl.conf 파일편집. [ 필요한구문만출력.] [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/ssl.conf <IfDefine SSL> SSLPassPhraseDialog builtin #SSLSessionCache none #SSLSessionCache dbm:/app/localhost/apache/apache/logs/ssl_scache #SSLSessionCache SSLSessionCache shmcb:/app/localhost/apache/apache/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex file:/app/localhost/apache/apache/logs/ssl_mutex SSLLog /App/LOCALHOST/Apache/Apache/logs/ssl_engine_log SSLLogLevel warn AddType application/x-x509-ca-cert.crt AddType application/x-pkcs7-crl.crl Listen 443 * 설명 : 서비스포트설정 <VirtualHost *:443> * 설명 : 가상호스트설정 DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.opa.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP # Server Wallet: # The server wallet contains the server's certificate, private key - 137 -

# and trusted certificates. Set SSLWallet at the wallet directory # using the syntax: file: SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 인증서경로는폴더를경로로한다. SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars </Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" RewriteEngine on RewriteOptions inherit </VirtualHost> </IfDefine> 5) OHS 재시작. [oracle@localhost default]$ opmnctl stopall [oracle@localhost default]$ opmnctl startall - 138 -

6) 인증서확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 : 443 포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@localhost ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 openssl x509 -noout enddate notafter=dec 20 23:59:59 2018 GMT * 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가되어있는지확인합니다. 7) 웹브라우저에서인증서확인 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 139 -

3.19 Oracle HTTP Server ( 싱글도메인 ) SSL 인증서갱신설치가이드 1) 인증서파일백업후업로드 [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2017-06-14 14:03 cwallet.sso [oracle@localhost default]$ mkdir ssl_old [oracle@localhost default]$ cp cwallet.sso ssl_old [oracle@localhost default]$ ll ssl_old drwxr-xr-x. 2 root root 4096 2017-06-14 14:03 cwallet.sso [oracle@localhost /]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso [oracle@localhost /]$ cp cwallet.sso /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost /]$ cd /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso 2) SSL 환경파일인 ssl.conf 파일확인. [ 필요한구문만출력.] [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/ssl.conf <IfDefine SSL> SSLPassPhraseDialog builtin #SSLSessionCache none #SSLSessionCache dbm:/app/localhost/apache/apache/logs/ssl_scache #SSLSessionCache SSLSessionCache shmcb:/app/localhost/apache/apache/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex file:/app/localhost/apache/apache/logs/ssl_mutex SSLLog /App/LOCALHOST/Apache/Apache/logs/ssl_engine_log SSLLogLevel warn AddType application/x-x509-ca-cert.crt - 140 -

AddType application/x-pkcs7-crl.crl Listen 443 * 설명 : 서비스포트설정 <VirtualHost *:443> * 설명 : 가상호스트설정 DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.opa.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP # Server Wallet: # The server wallet contains the server's certificate, private key # and trusted certificates. Set SSLWallet at the wallet directory # using the syntax: file: SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 인증서경로는폴더를경로로한다. SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars </Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> - 141 -

SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" RewriteEngine on RewriteOptions inherit </VirtualHost> </IfDefine> 3) OHS 재시작. [oracle@localhost default]$ opmnctl stopall [oracle@localhost default]$ opmnctl startall 4) 인증서확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 : 443 포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@localhost ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 openssl x509 -noout enddate notafter=dec 20 23:59:59 2018 GMT * 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가되어있는지확인합니다. - 142 -

5) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 143 -

3.20 Oracle HTTP Server ( 멀티도메인 ) SSL 인증서신규설치가이드 1) OHS 설치 *. $ORACLE_HOME/opmn/conf/opmn.xml 파일확인. [oracle@localhost default]$ vi /App/LOCALHOST/opmn/conf/opmn.conf <ias-component id="http_server"> <process-type id="http_server" module-id="ohs"> <module-data> <category id="start-parameters"> <data id="start-mode" value="ssl-enabled"/> * 설명 : disabled 로되어있을경우 enabled로수정합니다. </category> </module-data> <process-set id="http_server" numprocs="1"/> </process-type> </ias-component> 2) OHS 의환경파일인 httpd.conf 파일편집. [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/httpd.conf * 설명 : 주석처리되어있을경우해제 <IfDefine SSL> LoadModule ossl_module "/App/LOCALHOST/Apache/Apache/modules/mod_ossl.so" </IfDefine> # Include the SSL definitions and Virtual Host container include "/App/LOCALHOST/Apache/Apache/conf/ssl.conf" * 설명 : 참조된파일을확인합니다. 3) 인증서파일업로드. [oracle@localhost /]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso [oracle@localhost /]$ mv /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost /]$ cd /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso - 144 -

4) SSL 환경파일인 ssl.conf 파일편집. [ 필요한구문만출력.] [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/ssl.conf <IfDefine SSL> SSLPassPhraseDialog builtin SSLSessionCache shmcb:/app/localhost/apache/apache/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex file:/app/localhost/apache/apache/logs/ssl_mutex SSLLog /App/LOCALHOST/Apache/Apache/logs/ssl_engine_log SSLLogLevel warn AddType application/x-x509-ca-cert.crt AddType application/x-pkcs7-crl.crl Listen 443 * 설명 : 서비스포트설정 <VirtualHost *:443> * 설명 : 가상호스트설정 DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.opa.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 인증서경로는폴더를경로로한다. SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars - 145 -

</Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" RewriteEngine on RewriteOptions inherit </VirtualHost> <VirtualHost *:443> * 설명 : 가상호스트설정 DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.eprivacy.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 멀티인증서의경우동일경로로설정 - 146 -

SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars </Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" RewriteEngine on RewriteOptions inherit </VirtualHost> </IfDefine> 5) OHS 재시작. [oracle@localhost default]$ opmnctl stopall [oracle@localhost default]$ opmnctl startall 6) 인증서확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN - 147 -

tcp 0 0 :::443 :::* LISTEN * 설명 : 443 포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@localhost ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 openssl x509 -noout enddate notafter=dec 20 23:59:59 2018 GMT * 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가되어있는지확인합니다. 7) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 148 -

3.21 Oracle HTTP Server ( 멀티도메인 ) SSL 인증서갱신설치가이드 1) 인증서파일백업후업로드. [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2017-06-14 14:03 cwallet.sso [oracle@localhost default]$ mkdir ssl_old [oracle@localhost default]$ cp cwallet.sso ssl_old [oracle@localhost default]$ ll ssl_old drwxr-xr-x. 2 root root 4096 2017-06-14 14:03 cwallet.sso [oracle@localhost /]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso [oracle@localhost /]$ cp cwallet.sso /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost /]$ cd /App/LOCALHOST/Apache/Apache/conf/ssl.wlt/default [oracle@localhost default]$ ll drwxr-xr-x. 2 root root 4096 2018-01-01 14:03 cwallet.sso 2) SSL 환경파일인 ssl.conf 파일확인. [ 필요한구문만출력.] [oracle@localhost default]$ vi /App/LOCALHOST/Apache/Apache/conf/ssl.conf <IfDefine SSL> SSLPassPhraseDialog builtin SSLSessionCache shmcb:/app/localhost/apache/apache/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex file:/app/localhost/apache/apache/logs/ssl_mutex SSLLog /App/LOCALHOST/Apache/Apache/logs/ssl_engine_log SSLLogLevel warn AddType application/x-x509-ca-cert.crt AddType application/x-pkcs7-crl.crl Listen 443 * 설명 : 서비스포트설정 <VirtualHost *:443> * 설명 : 가상호스트설정 - 149 -

DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.opa.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 인증서경로는폴더를경로로한다. SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars </Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a # compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" - 150 -

RewriteEngine on RewriteOptions inherit </VirtualHost> <VirtualHost *:443> * 설명 : 가상호스트설정 DocumentRoot "/App/LOCALHOST/Apache/Apache/htdocs" ServerNae www.eprivacy.or.kr ServerAdmin you@your.address ErrorLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/error_ssl_log 43200" TransferLog " /App/LOCALHOST/Apache/Apache/bin/rotatelogs \ /App/LOCALHOST/Apache/Apache/logs/access_ssl_log 43200" Port 443 SSLCipherSuite ALL:!ADH:!EXPORT56:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP SSLWallet file:/app/localhost/apache/apache/conf/ssl.wlt/default * 설명 : 인증서경로설정 * 설명 : 멀티인증서의경우동일경로로설정 SSLWalletPassword a12345 * 설명 : 인증서패스워드설정 <Files ~"\.(cgi shtml)$"> SSLOptions +StdEnvVars </Files> < D i r e c t o r y "/App/LOCALHOST/Apache/Apache/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown # Per-Server Logging: # The home of a custom SSL log file. Use this when you want a - 151 -

# compact non-error SSL logfile on a virtual host basis. C u s t o m L o g /App/LOCALHOST/Apache/Apache/logs/ssl_request _log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" RewriteEngine on RewriteOptions inherit </VirtualHost> </IfDefine> 3) OHS 재시작. [oracle@localhost default]$ opmnctl stopall [oracle@localhost default]$ opmnctl startall 4) 인증서확인. [root@localhost ~]# netstat -nap grep httpd tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 : 443 포트 Listen 된상태에서아래의명령어를사용하여로컬에서인증서를확인합니다. 인증서만료일확인방법 [root@localhost ~]# openssl s_client -connect localhost:443 < /dev/null 2>&1 openssl x509 -noout enddate notafter=dec 20 23:59:59 2018 GMT * 설명 : 로컬에서인증서출력이정상적이고외부에서 https://[ 도메인 ] 으로브라우저접속시통신이되지않을경우내부방화벽 ( 예. iptables), 외부방화벽등에 SSL 포트가 Allow ( 또는웹방화벽에인증서가설치가되어있는지확인합니다. 5) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 152 -

3.22 Resin( 싱글도메인 ) SSL 인증서신규설치가이드 1) 인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp www.opa.or.kr* /Resin/keys [root@localhost New]$ cd /Resin/keys [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) conf/resin.properties.in 파일확인. #Set HTTP and HTTPS bind address http_address : * # Set HTTP and HTTPS ports. # Use overrides for individual server control, for example: app-0.http : 8081 app.http : 80 app.https : 443 web.http : 80 web.https : 443 // # 주석해제. 포트번호는디폴트로 443 설정 # JSSE certificate configuration # Keys are typically stored in the resin configuration directory. jsse_keystore_type : jks jsse_keystore_file : /usr/local/resin/keys/www.opa.or.kr.jks jsse_keystore_password : ****** // 비밀번호기입. // # 주석을해제해주도록한다. 파일경로와확장자를기입하고설정을저장한다. 3) Resin 재시작. [root@localhost resin4]# bin/resin.sh stop //Resin 프로세스정지. [root@localhost resin4]# bin/resin.sh start-all // Resin 프로세스시작 - 153 -

4) SSL 포트확인. [root@localhost resin-4.0.48]# netstat -nlp grep java tcp 0 0 ::ffff:127.0.0.1:6600 :::* LISTEN 3195/java tcp 0 0 ::ffff:127.0.0.1:6800 :::* LISTEN 3244/java tcp 0 0 :::88 :::* LISTEN 3244/java tcp 0 0 :::443 :::* LISTEN 3244/java 5) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 154 -

3.23 Resin( 싱글도메인 ) SSL 인증서갱신설치가이드 1) 인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp www.opa.or.kr* /Resin/keys [root@localhost New]$ cd /Resin/keys [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) conf/resin.properties.in 파일확인. #Set HTTP and HTTPS bind address http_address : * # Set HTTP and HTTPS ports. # Use overrides for individual server control, for example: app-0.http : 8081 app.http : 80 app.https : 443 web.http : 80 web.https : 443 // # 주석해제. 포트번호는디폴트로 443 설정 # JSSE certificate configuration # Keys are typically stored in the resin configuration directory. jsse_keystore_type : jks jsse_keystore_file : /usr/local/resin/keys/www.opa.or.kr.jks jsse_keystore_password : ****** // 비밀번호기입. // # 주석을해제해주도록한다. 파일경로와확장자를기입하고설정을저장한다. 3) 인증서파일확인후백업및신규인증서업로드. [root@localhost keys]# ll // 인증서목록확인. -rw-r--r--. 1 root root 4782 2016-06-24 17:20 www.opa.or.kr.jks [root@localhost keys]# mkdir ssl_old [root@localhost keys]# cp www.opa.or.kr.jks ssl_old // 인증서백업을진행토록한다. - 155 -

[root@localhost ssl]# cp www.opa.or.kr.jks /usr/local/resin/keys/ // 인증서파일교체. 4) Resin 재시작. [root@localhost Resin]# bin/resin.sh stop //Resin 프로세스정지. [root@localhost Resin]# bin/resin.sh start-all // Resin 프로세스시작 5) SSL 포트확인. [root@localhost resin-4.0.48]# netstat -nlp grep java tcp 0 0 ::ffff:127.0.0.1:6600 :::* LISTEN 3195/java tcp 0 0 ::ffff:127.0.0.1:6800 :::* LISTEN 3244/java tcp 0 0 :::88 :::* LISTEN 3244/java tcp 0 0 :::443 :::* LISTEN 3244/java 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 156 -

3.24 Webtob( 싱글도메인 ) SSL 인증서신규설치가이드 1) 발급받은인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp www.opa.or.kr* /webtob/ssl [root@localhost New]$ cd /webtob/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) [$Webtob_Home]/config/ http.m 파일을열어 SSL 환경설정을합니다. 설명 : [$Webtob_Home] = Webtob 디렉토리 [root@localhost webtob]$ vi config/http.m 서버마다고유의 *NODE NODENAME 이존재합니다. OPA WEBTOBDIR="/usr/local/webapp/webtob ", SHMKEY = 54000, DOCROOT="/usr/local/webapp/webtob/docs/OPA/", // 기본홈디렉토리 PORT = "80", // 설명 : 기본 http 포트 HTH = 2 // 설명 : Jesus 연동 Count JSVPORT = 9900, // 설명 : Jesus 연동포트 IPCPERM = 0777, NODENAME = "$(NODENAME)", SERVICEORDER = "ext,uri", INDEXNAME = "index.jsp,index.html,index.htm", LOGGING = "log1", ERRORLOG = "log2" *VHOST OPA_ssl DOCROOT="/usr/local/webapp/webtob/docs/OPA/" // 홈디렉토리, NODENAME=OPA, PORT="443", SSLFLAG=Y, SSL 설정 SSLNAME="OPAssl", HOSTNAME = "www.opa.or.kr", HOSTALIAS = "111.222.111.222", // 대표도메인외지정하실별칭 ServiceOrder="uri,ext", LOGGING="log1_vhmytx", ERRORLOG="log2_vhmytx" - 157 -

*SSL OPAssl CertificateFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.crt", CertificateKeyFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.key", CACertificateFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.root-bundle", CertificateChainFile ="/usr/local/webtob/config/ssl/www.opa.or.kr.ca-bundle", PassPhraseDialog=" exec:/usr/local/webtob/config/ssl/pass.sh" * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Root 인증서경로설정및파일명 -Chain 인증서경로설정및파일명 -재시작시비밀번호입력없이재시작이가능하게한다 *SVRGROUP htmlg SVRTYPE = HTML jsvg SVRTYPE = JSV, VhostName = "OPA, OPA_ssl" // Servlet 호출을위한 Jeus 연동할가상호스트선언 *SERVER html SVGNAME = htmlg, MinProc = 50, MaxProc = 50, ASQCount = 1 MyGroup SVGNAME = jsvg, MinProc = 100, MaxProc = 200, VhostName = " OPA, OPA_ssl " // Servlet 호출을위한 Jeus 연동할가상호스트선언 *URI uri1 Uri = "/", Svrtype = JSV, SvrName = MyGroup 3) 패스워드쉘생성. [root@localhost ssl]$ vi pass.sh #!/bin/sh echo opa.or.kr :wq // 설명 : echo password 를입력하도록한다. [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key - 158 -

-rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 4) Webtob 재시작. [root@localhost webtob]# wscfl i http.m // 설명 : 환경파일컴파일 urrent configuration: Number of client handler(hth) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Successfully created the configuration file (/root/webtob/config/wsconfig) for node OPA. The host name of the running machine is OPA. [root@localhost webtob]# wsdown Do you really want to shut down WebtoB? (y : n): y WSDOWN for node(localhost) is starting: WSDOWN: SERVER(html:1) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(html:0) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:11) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:21) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:20) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:10) downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTL downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTH downed: Fri Jan 1 00:00:00 2018 WSDOWN: WSM downed: Fri Jan 1 00:00:00 2018 WSDOWN: WebtoB is down [root@localhost webtob]# wsboot Booting WebtoB on node (OPA) Welcome to WebtoB demo system. It will expire on 2018/06/27 Today is 2018/06/07 Starting WSM at Fri Jan 1 00:00:00 2018 Starting HTL at Fri Jan 1 00:00:00 2018 Starting HTH at Fri Jan 1 00:00:00 2018 Current WebtoB Configuration: Number of client handlers (HTH) = 1-159 -

Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(cgis) at Fri Jan 1 00:00:00 2018 5) 포트확인. [root@localhost ~]# netstat -nlp grep htl tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인. -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. 6) 서버내에서인증서갱신확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 7) 웹페이지에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 160 -

3.25 Webtob( 싱글도메인 ) SSL 인증서갱신설치가이드 1) 발급받은인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp www.opa.or.kr* /webtob/ssl [root@localhost New]$ cd /webtob/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) [$Webtob_Home]/config/ http.m 파일을열어 SSL 환경설정을합니다. 설명 : [$Webtob_Home] = Webtob 디렉토리 [root@localhost webtob]$ vi config/http.m *NODE 서버마다고유의 NODENAME 이존재합니다. OPA WEBTOBDIR="/usr/local/webapp/webtob ", SHMKEY = 54000, DOCROOT="/usr/local/webapp/webtob/docs/OPA/",// 기본홈디렉토리 PORT = "80", // 설명 : 기본 http 포트 HTH = 2 // 설명 : Jesus 연동 Count JSVPORT = 9900, // 설명 : Jesus 연동포트 IPCPERM = 0777, NODENAME = "$(NODENAME)", SERVICEORDER = "ext,uri", INDEXNAME = "index.jsp,index.html,index.htm", LOGGING = "log1", ERRORLOG = "log2" *VHOST OPA_ssl DOCROOT="/usr/local/webapp/webtob/docs/OPA/" // 홈디렉토리, NODENAME=OPA, PORT="443", SSLFLAG=Y, SSL 설정 SSLNAME="OPAssl", HOSTNAME = "www.opa.or.kr", HOSTALIAS = "111.222.111.222", // 대표도메인외지정하실별칭 ServiceOrder="uri,ext", - 161 -

LOGGING="log1_vhmytx", ERRORLOG="log2_vhmytx" *SSL OPAssl CertificateFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.crt", CertificateKeyFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.key", CACertificateFile = "/usr/local/webtob/config/ssl/www.opa.or.kr.root-bundle", CertificateChainFile ="/usr/local/webtob/config/ssl/www.opa.or.kr.ca-bundle", PassPhraseDialog=" exec:/usr/local/webtob/config/ssl/pass.sh" * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Root 인증서경로설정및파일명 -Chain 인증서경로설정및파일명 -재시작시비밀번호입력없이재시작이가능하게한다 *SVRGROUP htmlg SVRTYPE = HTML jsvg SVRTYPE = JSV, VhostName = "OPA, OPA_ssl" // Servlet 호출을위한 Jeus 연동할가상호스트선언 *SERVER html SVGNAME = htmlg, MinProc = 50, MaxProc = 50, ASQCount = 1 MyGroup SVGNAME = jsvg, MinProc = 100, MaxProc = 200, VhostName = " OPA, OPA_ssl " // Servlet 호출을위한 Jeus 연동할가상호스트선언 *URI uri1 Uri = "/", Svrtype = JSV, SvrName = MyGroup 3) 패스워드쉘생성. [root@localhost ssl]$ vi pass.sh #!/bin/sh echo opa.or.kr :wq // 설명 : echo password 를입력하도록한다. - 162 -

[root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 4) 기존인증서백업후발급받은인증서파일업로드. [root@localhost ssl]$ mkdir ssl_old [root@localhost ssl]$ cp www.opa.or.kr* pass.sh ssl_old [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 ssl_old -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 www.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 www.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 5) Webtob 재시작. [root@localhost webtob]# wscfl i http.m // 설명 : 환경파일컴파일 urrent configuration: Number of client handler(hth) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Successfully created the configuration file (/root/webtob/config/wsconfig) for node OPA. The host name of the running machine is OPA. [root@localhost webtob]# wsdown Do you really want to shut down WebtoB? (y : n): y WSDOWN for node(localhost) is starting: WSDOWN: SERVER(html:1) downed: Fri Jan 1 00:00:00 2018-163 -

WSDOWN: SERVER(html:0) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:11) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:21) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:20) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:10) downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTL downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTH downed: Fri Jan 1 00:00:00 2018 WSDOWN: WSM downed: Fri Jan 1 00:00:00 2018 WSDOWN: WebtoB is down [root@localhost webtob]# wsboot Booting WebtoB on node (OPA) Welcome to WebtoB demo system. It will expire on 2018/06/27 Today is 2018/06/07 Starting WSM at Fri Jan 1 00:00:00 2018 Starting HTL at Fri Jan 1 00:00:00 2018 Starting HTH at Fri Jan 1 00:00:00 2018 Current WebtoB Configuration: Number of client handlers (HTH) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(cgis) at Fri Jan 1 00:00:00 2018 6) 포트확인. [root@localhost ~]# netstat -nlp grep htl tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인. -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. - 164 -

7) 서버내에서인증서갱신확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 8) 웹페이지에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 165 -

3.26 Webtob( 멀티도메인 ) SSL 인증서신규설치가이드 * 멀티및와일드인증서의경우포트번호를동일하게설정이가능. (https 통신으로 443 으로통일가능 ) 1) 발급받은인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp Wildcard.opa.or.kr* /webtob/ssl [root@localhost New]$ cd /webtob/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 Wildcard.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) [$Webtob_Home]/config/ http.m 파일을열어 SSL 환경설정을합니다. 설명 : [$Webtob_Home] = Webtob 디렉토리 [root@localhost webtob]$ vi config/http.m *NODE 서버마다고유의 NODENAME 이존재합니다. OPA WEBTOBDIR="/usr/local/webapp/webtob ", SHMKEY = 54000, DOCROOT="/usr/local/webapp/webtob/docs/OPA/",// 기본홈디렉토리 PORT = "80", // 설명 : 기본 http 포트 HTH = 2 // 설명 : Jesus 연동 Count JSVPORT = 9900, // 설명 : Jesus 연동포트 IPCPERM = 0777, NODENAME = "$(NODENAME)", SERVICEORDER = "ext,uri", INDEXNAME = "index.jsp,index.html,index.htm", LOGGING = "log1", ERRORLOG = "log2" *VHOST OPA_ssl DOCROOT="/usr/local/webapp/webtob/docs/OPA/" // 홈디렉토리, NODENAME=OPA, PORT="443", SSLFLAG=Y, SSL 설정 SSLNAME="OPAssl", HOSTNAME = "Wildcard.opa.or.kr", HOSTALIAS = "111.222.111.222", // 대표도메인외지정하실별칭 - 166 -

ServiceOrder="uri,ext", LOGGING="log1_vhmytx", ERRORLOG="log2_vhmytx" *SSL OPAssl CertificateFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.crt", CertificateKeyFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.key", CACertificateFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.root-bundle", CertificateChainFile ="/usr/local/webtob/config/ssl/wildcard.opa.or.kr.ca-bundle", PassPhraseDialog=" exec:/usr/local/webtob/config/ssl/pass.sh" * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Root 인증서경로설정및파일명 -Chain 인증서경로설정및파일명 -재시작시비밀번호입력없이재시작이가능하게한다 *SVRGROUP htmlg SVRTYPE = HTML jsvg SVRTYPE = JSV, VhostName = "OPA, OPA_ssl" // Servlet 호출을위한 Jeus 연동할가상호스트선언 *SERVER html SVGNAME = htmlg, MinProc = 50, MaxProc = 50, ASQCount = 1 MyGroup SVGNAME = jsvg, MinProc = 100, MaxProc = 200, VhostName = " OPA, OPA_ssl " // Servlet 호출을위한 Jeus 연동할가상호스트선언 *URI uri1 Uri = "/", Svrtype = JSV, SvrName = MyGroup 3) 패스워드쉘생성. [root@localhost ssl]$ vi pass.sh #!/bin/sh echo opa.or.kr - 167 -

:wq // 설명 : echo password 를입력하도록한다. [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 Wildcard.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 4) Webtob 재시작. [root@localhost webtob]# wscfl i http.m // 설명 : 환경파일컴파일 urrent configuration: Number of client handler(hth) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Successfully created the configuration file (/root/webtob/config/wsconfig) for node OPA. The host name of the running machine is OPA. [root@localhost webtob]# wsdown Do you really want to shut down WebtoB? (y : n): y WSDOWN for node(localhost) is starting: WSDOWN: SERVER(html:1) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(html:0) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:11) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:21) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:20) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:10) downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTL downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTH downed: Fri Jan 1 00:00:00 2018 WSDOWN: WSM downed: Fri Jan 1 00:00:00 2018 WSDOWN: WebtoB is down [root@localhost webtob]# wsboot Booting WebtoB on node (OPA) Welcome to WebtoB demo system. It will expire on 2018/06/27-168 -

Today is 2018/06/07 Starting WSM at Fri Jan 1 00:00:00 2018 Starting HTL at Fri Jan 1 00:00:00 2018 Starting HTH at Fri Jan 1 00:00:00 2018 Current WebtoB Configuration: Number of client handlers (HTH) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(cgis) at Fri Jan 1 00:00:00 2018 5) 포트확인. [root@localhost ~]# netstat -nlp grep htl tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인. -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. 6) 서버내에서인증서갱신확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 - 169 -

7) 웹페이지에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 170 -

3.27 Webtob( 멀티도메인 ) SSL 인증서갱신설치가이드 1) 발급받은인증서를해당 SSL 폴더에업로드또는저장. [root@localhost New]$ cp Wildcard.opa.or.kr* /webtob/ssl [root@localhost New]$ cd /webtob/ssl [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 Wildcard.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 password.txt 2) [$Webtob_Home]/config/ http.m 파일을열어 SSL 환경설정을합니다. 설명 : [$Webtob_Home] = Webtob 디렉토리 [root@localhost webtob]$ vi config/http.m 서버마다고유의 *NODE NODENAME 이존재합니다. OPA WEBTOBDIR="/usr/local/webapp/webtob ", SHMKEY = 54000, DOCROOT="/usr/local/webapp/webtob/docs/OPA/",// 기본홈디렉토리 PORT = "80", // 설명 : 기본 http 포트 HTH = 2 // 설명 : Jesus 연동 Count JSVPORT = 9900, // 설명 : Jesus 연동포트 IPCPERM = 0777, NODENAME = "$(NODENAME)", SERVICEORDER = "ext,uri", INDEXNAME = "index.jsp,index.html,index.htm", LOGGING = "log1", ERRORLOG = "log2" *VHOST OPA_ssl DOCROOT="/usr/local/webapp/webtob/docs/OPA/" // 홈디렉토리, NODENAME=OPA, PORT="443", SSLFLAG=Y, SSL 설정 SSLNAME="OPAssl", HOSTNAME = "Wildcard.opa.or.kr", HOSTALIAS = "111.222.111.222", // 대표도메인외지정하실별칭 ServiceOrder="uri,ext", LOGGING="log1_vhmytx", - 171 -

ERRORLOG="log2_vhmytx" *SSL OPAssl CertificateFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.crt", CertificateKeyFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.key", CACertificateFile = "/usr/local/webtob/config/ssl/wildcard.opa.or.kr.root-bundle", CertificateChainFile ="/usr/local/webtob/config/ssl/wildcard.opa.or.kr.ca-bundle", PassPhraseDialog=" exec:/usr/local/webtob/config/ssl/pass.sh" * 설명 -인증서경로설정및파일명 -개인키경로설정및파일명 -Root 인증서경로설정및파일명 -Chain 인증서경로설정및파일명 -재시작시비밀번호입력없이재시작이가능하게한다 *SVRGROUP htmlg SVRTYPE = HTML jsvg SVRTYPE = JSV, VhostName = "OPA, OPA_ssl" // Servlet 호출을위한 Jeus 연동할가상호스트선언 *SERVER html SVGNAME = htmlg, MinProc = 50, MaxProc = 50, ASQCount = 1 MyGroup SVGNAME = jsvg, MinProc = 100, MaxProc = 200, VhostName = " OPA, OPA_ssl " // Servlet 호출을위한 Jeus 연동할가상호스트선언 *URI uri1 Uri = "/", Svrtype = JSV, SvrName = MyGroup 3) 패스워드쉘생성. [root@localhost ssl]$ vi pass.sh #!/bin/sh echo opa.or.kr :wq // 설명 : echo password 를입력하도록한다. - 172 -

[root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 Wildcard.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 4) 기존인증서백업후발급받은인증서파일업로드. [root@localhost ssl]$ mkdir ssl_old [root@localhost ssl]$ cp Wildcard.opa.or.kr* pass.sh ssl_old [root@localhost ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 00:00 ssl_old -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.ca-bundle -rw-r--r--. 1 root root 1744 Jan 1 00:00 Wildcard.opa.or.kr.crt -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.key -rw-r--r--. 1 root root 1931 Jan 1 00:00 Wildcard.opa.or.kr.root-bundle -rw-r--r--. 1 root root 1931 Jan 1 00:00 pass.sh 5) Webtob 재시작. [root@localhost webtob]# wscfl i http.m // 설명 : 환경파일컴파일 urrent configuration: Number of client handler(hth) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Successfully created the configuration file (/root/webtob/config/wsconfig) for node OPA. The host name of the running machine is OPA. [root@localhost webtob]# wsdown Do you really want to shut down WebtoB? (y : n): y WSDOWN for node(localhost) is starting: WSDOWN: SERVER(html:1) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(html:0) downed: Fri Jan 1 00:00:00 2018-173 -

WSDOWN: SERVER(cgi:11) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:21) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(ssi:20) downed: Fri Jan 1 00:00:00 2018 WSDOWN: SERVER(cgi:10) downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTL downed: Fri Jan 1 00:00:00 2018 WSDOWN: HTH downed: Fri Jan 1 00:00:00 2018 WSDOWN: WSM downed: Fri Jan 1 00:00:00 2018 WSDOWN: WebtoB is down [root@localhost webtob]# wsboot Booting WebtoB on node (OPA) Welcome to WebtoB demo system. It will expire on 2018/06/27 Today is 2018/06/07 Starting WSM at Fri Jan 1 00:00:00 2018 Starting HTL at Fri Jan 1 00:00:00 2018 Starting HTH at Fri Jan 1 00:00:00 2018 Current WebtoB Configuration: Number of client handlers (HTH) = 1 Supported maximum user per node = 4047 Supported maximum user per handler = 4047 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(htmls) at Fri Jan 1 00:00:00 2018 Starting SVR(cgis) at Fri Jan 1 00:00:00 2018 6) 포트확인. [root@localhost ~]# netstat -nlp grep htl tcp 0 0 :::80 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인. -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. - 174 -

7) 서버내에서인증서갱신확인. [root@localhost ~]# openssl s_client -connect localhost:443 openssl x509 -noout -dates 위의명령어를입력하여인증서갱신날짜를확인하도록합니다. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 8) 웹페이지에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 175 -

3.28 Tomcat6( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut로설정된경우 8443으로설정됨. 1) Server.xml 파일을확인하여 SSL 인증서설정. root@opa ssl]# vi /usr/local/tomcat/conf/server.xml <!-- <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] scheme="https" secure="true" keystore File= /usr/local/tomcat/ssl/wildcard.opa.or.kr.jks // 인증서파일위치및파일 keystorepass= ****** // 인증서비밀번호 clientauth="false" sslprotocol="tls" /> --> * 설명 : 주석을제거. // <!-- : 시작 & --> : 끝 2) 발급받은인증서업로드또는저장. [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 :443 으로접속해주셔도됩니 다. - 176 -

5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 177 -

3.29 Tomcat6( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut 로설정된경우 8443으로설정됨. 1) Server.xml 파일을확인하여 SSL 인증서확인. root@opa ssl]# vi /usr/local/tomcat/conf/server.xml <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] scheme="https" secure="true" keystore File= /usr/local/tomcat/ssl/wildcard.opa.or.kr.jks // 인증서파일위치및파일 keystorepass= ****** // 인증서비밀번호 clientauth="false" sslprotocol="tls" /> 2) 기존의인증서를백업후발급받은인증서업로드또는저장. [root@localhost /ssl]$ mkdir ssl_old [root@localhost /ssl]$ cp Wildcard.opa.or.kr.jks password ssl_old [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) 인증서확인. root@opa ssl]# ls Wildcard.opa.or.kr.jks [root@mail ssl]# keytool -list -keystore www.opa.or.kr.key keystore 암호를입력하십시오 : Keystore 유형 : JKS Keystore 공급자 : SUN Keystore 에는 2 항목이포함되어있습니다. root, 2018. 2. 18, trustedcertentry, 인증서지문 (MD5): C0:D7:AF:89:C9:CA:75:2F:F2:12:E9:60:E7:67:3D:E1 opa, 2018. 2. 18, PrivateKeyEntry, 인증서지문 (MD5): F8:53:D6:B3:1B:D6:6A:F0:17:8F:BC:9E:AC:02:86:F8-178 -

4) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 5) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. 6) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 7) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 179 -

3.30 Tomcat8.0X( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut 로설정 된경우 8443 으로설정됨. 1) Server.xml 파일을확인하여 SSL 인증서확인. root@opa ssl]# vi /usr/local/tomcat/conf/server.xml <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] scheme="https" secure="true" keystore File= /usr/local/tomcat/ssl/wildcard.opa.or.kr.jks // 인증서파일위치및파일 keystorepass= ****** // 인증서비밀번호 clientauth="false" sslprotocol="tls" /> 2) 발급받은인증서업로드또는저장. [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. - 180 -

5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 181 -

3.31 Tomcat8.5X( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 * 8.5.x 이상의경우아래의주의사항확인 1) 이버전의경우위 8.0.x 의버전과동일한방법으로진행을해도무방하다. 2) 톰캣재시작이후약 1분정도사이트접속이되지않는다. 이경우프로세스는가동중이지만웹에서의접속은잠시불가하다. 3) 8.5x 이상의경우 1) 로인해 SSL 설정방법이 2가지가된다. 1) Server.xml 파일을확인하여 SSL 인증서확인. [root@ucert ssl]# vi /usr/local/tomcat/conf/server.xml <Connector port="443" protocol="org.apache.coyote.http11.http11nioprotocol" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] maxthreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificatekeystorefile="/usr/local/tomcat/ssl/www.ucert.co.kr.jks" certificatekeystorepassword="******" 인증서경로및패스워드확인. type="rsa" /> </SSLHostConfig> </Connector> 2) 발급받은인증서업로드또는저장. [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN - 182 -

tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. 5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 183 -

3.32 Tomcat8.0X( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut 로설정 된경우 8443 으로설정됨. 1) Server.xml 파일을확인하여 SSL 인증서확인. root@opa ssl]# vi /usr/local/tomcat/conf/server.xml <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] scheme="https" secure="true" keystore File= /usr/local/tomcat/ssl/wildcard.opa.or.kr.jks // 인증서파일위치및파일 keystorepass= ****** // 인증서비밀번호 clientauth="false" sslprotocol="tls" /> 2) 기존의인증서를백업후발급받은인증서업로드또는저장. [root@localhost /ssl]$ mkdir ssl_old [root@localhost /ssl]$ cp Wildcard.opa.or.kr.jks password ssl_old [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. - 184 -

5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 185 -

3.33 Tomcat8.5X( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 * 8.5.x 이상의경우아래의주의사항확인 1) 이버전의경우위 8.0.x 의버전과동일한방법으로진행을해도무방하다. 2) 톰캣재시작이후약 1분정도사이트접속이되지않는다. 이경우프로세스는가동중이지만웹에서의접속은잠시불가하다. 3) 8.5x 이상의경우 1) 로인해 SSL 설정방법이 2가지가된다. 1) Server.xml 파일을확인하여 SSL 인증서확인. [root@ucert ssl]# vi /usr/local/tomcat/conf/server.xml <Connector port="443" protocol="org.apache.coyote.http11.http11nioprotocol" 포트번호 443으로변경시기본 https 접속이가능. [default 8443 설정 ] maxthreads="150" SSLEnabled="true"> <SSLHostConfig> <Certificate certificatekeystorefile="/usr/local/ssl/www.ucert.co.kr.jks" certificatekeystorepassword="******" 인증서경로및패스워드확인. type="rsa" /> </SSLHostConfig> </Connector> 2) 기존의인증서를백업후발급받은인증서업로드또는저장. [root@localhost /ssl]$ mkdir ssl_old [root@localhost /ssl]$ cp Wildcard.opa.or.kr.jks password ssl_old [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java - 186 -

tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN * 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 으로접속해주셔도됩니다. 5) 서버내에서인증서갱신을확인하도록합니다. root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 187 -

3.34 Tomcat9( 싱글도메인 & 멀티도메인 ) SSL 인증서신규설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut 로설정 된경우 8443 으로설정됨. 1) Server.xml 파일을확인하여 SSL 인증서설정. root@opa ssl]# vi /usr/local/tomcat9/conf/server.xml <!-- <Connector port="443" protocol="org.apache.coyote.http11.http11nioprotocol" maxthreads="150" SSLEnabled="true"> <UpgradeProtocol classname="org.apache.coyote.http2.http2protocol" /> <SSLHostConfig> <certificate certificatekeystorefile="/usr/local/tomcat9/conf/ssl/www.ucert.co.kr.jks" certificatekeystorepassword="******" # 위의두구문을추가하도록한다. type="rsa" /> </SSLHostConfig> </Connector> --> * 설명 : 주석을제거. // <!-- : 시작 & --> : 끝 2) 발급받은인증서업로드또는저장. [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 188 -

* 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 :443 으로접속해주셔도됩니다. 5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 189 -

3.35 Tomcat9( 싱글도메인 & 멀티도메인 ) SSL 인증서갱신설치가이드 * 멀티 & 와일드카드인증서의경우포트번호를동일하게설정가능하며, defalut 로설정 된경우 8443 으로설정됨. 1) Server.xml 파일을확인하여 SSL 설정확인. root@opa ssl]# vi /usr/local/tomcat9/conf/server.xml <Connector port="443" protocol="org.apache.coyote.http11.http11nioprotocol" maxthreads="150" SSLEnabled="true"> <UpgradeProtocol classname="org.apache.coyote.http2.http2protocol" /> <SSLHostConfig> <certificate certificatekeystorefile="/usr/local/tomcat9/conf/ssl/www.ucert.co.kr.jks" certificatekeystorepassword="******" # 인증서위치확인및발급받은인증서비밀번호와비교확인. type="rsa" /> </SSLHostConfig> </Connector> 2) 기존인증서백업후발급받은인증서업로드또는저장. [root@localhost /ssl]$ mkdir ssl_old [root@localhost /ssl]$ cp Wildcard.opa.or.kr.jks password ssl_old [root@localhost /ssl]$ ll -rw-r--r--. 1 root root 2021 Jan 1 11:49 ssl_old -rw-r--r--. 1 root root 1931 Jan 1 11:48 Wildcard.opa.or.kr.jks -rw-r--r--. 1 root root 1744 Jan 1 11:49 password 3) Tomcat 재시작진행. [root@localhost /bin]#./shutdown.sh [root@localhost /bin]#./startup.sh 4) 포트확인. [root@localhost ~]# netstat -na grep java tcp 0 0 :::8080 :::* LISTEN tcp 0 0 :::443 :::* LISTEN - 190 -

* 설명 -설정한 SSL 포트가 Listen 상태인지확인 -웹브라우져주소창에 https:// 도메인 :SSL포트 를입력하여접속이되는지확인합니다. -SSL기본포트인 443포트로설정하셨다면 https:// 도메인 :443 으로접속해주셔도됩니다. 5) 서버내에서인증서갱신을확인하도록합니다. [root@localhost ~]#openssl s_client -connect localhost:443 openssl x509 -noout dates 위의명령어를입력하여인증서갱신날짜를확인. notbefore=jan 1 00:24:14 2018 GMT notafter=dec 31 :38:20 2019 GMT # 인증서시작일 # 인증서만료일 6) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 191 -

3.36 Iplanet 7( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 1) 발급받은파일인증서를서버경로로이동후업로드합니다. ( 서버경로의 config 폴 더에업로드 ) - 기존인증서가있을시백업을진행. 파일명은 cert8.db 와 key3.db 로변경 - 192 -

2) 웹관리콘솔접속하여수정된인스턴스구성을클릭합니다. 3) 구성가져오기및배포선택후확인을클릭합니다. - 193 -

4) 서버인증서항목으로이동하여비밀번호설정을클릭합니다. 5) 발급받은인증서의패스워드입력후확인클릭후닫기를클릭합니다. - 194 -

6) 인증서의정상등록을확인합니다. - 195 -

7) 홈페이지로이동후구성편집을클릭합니다. 8) HTTP Listener 항목으로이동하고새로만들기를클릭합니다. - 196 -

9) 빈칸에정보를입력후등록된인증서를선택합니다. 10) 입력한정보가맞는지확인후마침을클릭합니다. - 197 -

11) 리스너가정상적으로등록되었는지확인합니다. 12) 가상서버항목으로이동하여인증서를적용할서버를선택합니다. 13) HTTP Listener 항목에서추가를클릭합니다. - 198 -

14) 새로생성한리스너를선택합니다. 15) 정상적으로추가된리스너를확인후저장합니다. - 199 -

16) 변경된내용을배포후서버재시작을합니다. 17) 웹브라우저에서인증서확인 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 200 -

3.37 Weblogic 11( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 1) http://localhost( 또는서버 IP):7001/console 에접속하여로그인. 2) 도메인구조창에서환경 -> 서버를선택합니다. - 201 -

3) 우측구성탭에서 이테이블사용자정의 를선택. 4) 보기열에서 SSL 사용, SSL 수신포트, SSL 수신포트사용을선택하고선택한항목 - 202 -

5) 적용되었는지확인후에아래적용클릭. 6) 서버에 SSL 사용, SSL 수신포트항목들이추가된것을확인하고해당서버관리를클릭합 니다. - 203 -

7) 구성 -> 일반으로이동하여아래에 SSL 수신포트사용에체크하고 SSL 수신포트를 입력합니다. ( 설정후저장 ) 8) 키저장소탭으로이동하여키저장소변경을클릭합니다. - 204 -

9) 사용자정의 ID 및 Java 표준보안 을선택하고저장을클릭. 10) 그림을참조하여키저장소항목에맞게세팅후저장합니다. (Java 키저장소기본 패스워드 : changeit ) - 205 -

11) SSL 란으로이동하여 ID 및보안위치가키저장소인지확인하고 ID 항목을세팅하고 저장합니다.( 개인키별칭은 keystore 생성시 alias 명 ) 12) 고급탭을활성화하여 JSSE SSL 사용체크후저장합니다. - 206 -

13) 모든변경이활성화되었습니다. 를확인합니다. 이제 https//mydomain:ssl 포트 로 접속후확인. 14) 웹페이지에서의인증서확인방법 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 207 -

3.38 Weblogic 12( 단일도메인 & 멀티도메인 ) SSL 인증서설치가이드 1) http://localhost( 또는서버 IP):7001/console 에접속하여로그인. 2) 도메인구조창에서환경 -> 서버를선택합니다. - 208 -

3) 우측구성탭에서 이테이블사용자정의 를선택. 4) 보기열에서 SSL 사용, SSL 수신포트, SSL 수신포트사용선택후선택한항목란으 로이동. - 209 -

5) 적용되었는지확인후에아래적용클릭. 6) 서버에 SSL 사용, SSL 수신포트항목란들이추가된것을확인하고해당서버관리를클릭. - 210 -

7) 구성 -> 일반으로이동하여아래에 SSL 수신포트사용에체크하고 SSL 수신포트를 입력합니다. 설정후저장을선택. 8) 키저장소탭으로이동하여키저장소변경을클릭합니다. - 211 -

9) 사용자정의 ID 및 Java 표준보안 을선택하고저장을클릭. 10) 그림을참조하여키저장소항목에맞게세팅후저장합니다.(Java 키저장소기본패 스워드 : changeit) - 212 -

11) SSL 란으로이동하여 ID 및보안위치가키저장소인지확인하고 ID 항목을세팅하고 저장합니다.( 개인키별칭은 keystore 생성시 alias 명 ) 12) 모든변경이활성화되었습니다. 를확인합니다. 이제 https//mydomain:ssl 포트 로접속후확인. 13) 웹페이지에서의인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 213 -

3.39 Windows Server 2003 IIS6( 싱글도메인 ) SSL 인증서설치가이드 1) 시작 모든프로그램 관리도구 인터넷정보서비스 (IIS) 관리실행합니다. 2) SSL 인증서를적용할사이트를선택후 " 속성 " 을클릭합니다. 3) 디렉토리보안탭으로이동합니다. - 214 -

4) 보안통신의서버인증서 (S) 을클릭합니다. 5) 서버인증서마법사가실행되면다음 (N) 을클릭합니다. - 215 -

6).pfx 파일에서인증서를가져옵니다를선택후다음을클릭합니다. 7) 인증서파일위치를지정하기위해찾아보기를선택합니다. - 216 -

8) 인증서파일이있는폴더로이동하여 pfx 로된확장자의인증서를선택한후열기 를클릭합니다. 9) 백업이필요할경우를위해 " 인증서를내보낼수있도록표시 " 를선택후다음을클 릭합니다. - 217 -

10) 해당인증서의암호를입력한후다음을클릭합니다. 11) SSL 포트번호를지정한후 ( 기본 443), 다음을클릭합니다. - 218 -

12) 인증서정보가맞는지확인후다음을클릭합니다. 13) 마침을클릭합니다. - 219 -

14) 인증서보기를클릭합니다. 15) 발급대상과유효기간이올바른지확인합니다. - 220 -

16) 웹페이지에서의인증서확인방법. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 221 -

3.40 Windows Server 2003 IIS6( 멀티도메인 ) SSL 인증서설치가이드 1) 시작 모든프로그램 관리도구 인터넷정보서비스 (IIS) 관리실행합니다. 2) SSL 인증서를적용할사이트를선택후 " 속성 " 을클릭합니다. 3) 디렉토리보안탭으로이동합니다. - 222 -

4) 보안통신의서버인증서 (S) 을클릭합니다. 5) 서버인증서마법사가실행되면다음 (N) 을클릭합니다. - 223 -

6).pfx 파일에서인증서를가져옵니다를선택후다음을클릭합니다. 7) 인증서파일위치를지정하기위해찾아보기를선택합니다. - 224 -

8) 인증서파일이있는폴더로이동하여 pfx 로된확장자의인증서를선택한후열기 를클릭합니다. 9) 백업이필요할경우를위해 " 인증서를내보낼수있도록표시 " 를선택후다음을클 릭합니다. - 225 -

10) 해당인증서의암호를입력한후다음을클릭합니다. 11) SSL 포트번호를지정한후 ( 기본 443), 다음을클릭합니다. - 226 -

12) 인증서정보가맞는지확인후다음을클릭합니다. 13) 마침을클릭합니다. * 위과정을나머지적용하셔야할사이트도동일하게진행하시되 SSL 포트는 444, 446 등다르게세팅합니다. * 만약동일하게세팅하면포트충돌이일어나서사이트가중지되시기때문에먼저포트를나누신후 Securebinding 작업으로중복포트설정을진행합니다. - 227 -

14) 적용하실사이트와매칭되는식별자번호를확인합니다. 15) cmd 창을열어서중복포트설정을합니다. [ 명령어형식 ] cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/[ 식별자 ]/SecureBindings ":443:[ 호스트헤더값 ]" [ 참고 ] 작업진행하시기전에메모장에위명령어를복사하셔서적용하실사이트들와식 별자를입력후 복사하셔서 cmd 창에서한번에적용하시는것을추천드립니다. 예 ) cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/2029150278/securebindings ":443:www.eprivacy.or.kr" cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/831196486/securebindings ":443:www.opa.or.kr" 모두복사후 cmd 창에서붙여넣기하여적용. C:\Documents and Settings\Ucert>cd \ C:\> cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/2029150278/securebindings ":443:www.eprivacy.or.kr" Microsoft (R) Windows Script Host 버전 5.6-228 -

Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. SecureBindings : (LIST) ":443:www.eprivacy.or.kr" C:\> cscript.exe C:\Inetpub\AdminScripts\adsutil.vbs set w3svc/831196486/securebindings ":443:www.opa.or.kr" Microsoft (R) Windows Script Host 버전 5.6 Copyright (C) Microsoft Corporation 1996-2001. All rights reserved. SecureBindings : (LIST) ":443:www.opa.or.kr" 16) IIS 에서웹사이트선택후새로고침하여중복포트설정이되었는지확인합니다. 17) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 229 -

3.41 Windows Server 2008 IIS7( 싱글도메인 ) SSL 인증서설치가이드 1) [ 시작 ] > [ 관리도구 ] > [IIS( 인터넷정보서비스 ) 관리자 ] 를실행합니다.( 서버클릭 ) 2) 서버인증서를더블클릭 > 마우스오른쪽 > 가져오기를선택합니다. - 230 -

3) 인증서파일을찾은후암호를입력합니다. - 231 -

4) 다음과같이인증서가추가된내용을확인합니다. 5) SSL 인증서를설치할웹사이트목록의마우스오른쪽을클릭후바인딩편집을선택합 니다. - 232 -

6) 추가를클릭하여 SSL 서비스를클릭합니다. 7) https 선택 -> 인증서를선택합니다. 8) 추가된설정확인후닫기를클릭합니다. - 233 -

9) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 234 -

3.42 Windows Server 2008 IIS7( 멀티도메인 ) SSL 인증서설치가이드 1) [ 시작 ] > [ 관리도구 ] > [IIS( 인터넷정보서비스 ) 관리자 ] 를실행합니다.( 서버클릭 ) 2) 서버인증서를더블클릭 > 마우스오른쪽 > 가져오기를선택합니다. - 235 -

3) 인증서파일을찾은후암호를입력합니다. - 236 -

4) 다음과같이인증서가추가된내용을확인합니다. 5) SSL 인증서를설치할웹사이트목록의마우스오른쪽을클릭후바인딩편집을선택합 니다. - 237 -

6) 추가를클릭하여 SSL 서비스를클릭합니다. 7) https 선택 -> 인증서를선택합니다. 8) 추가된설정확인후닫기를클릭합니다. - 238 -

9) 추가도메인에포트가중복되지않게임의의포트로인증서바인딩합니다. 10) 관리자권한으로 CMD 창실행 - 명령어를통하여시큐어바인딩실행. - C:\Windows\System32\inetsrv 이동 - 명령어형식 appcmd set site /site.name:" 이름 " /+bindings.[protocol='https',bindinginformation='*:443: 도메인 '] - 239 -

11) 443 포트로바인딩완료. 12) 바인딩메뉴에서임의포트제거. - 240 -

13) 처음세팅한도메인의 443 포트의경우아래와같이남게해야합니다. 14) 작업후사이트목록. 15) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 241 -

3.43 Windows Server 2012 IIS8( 싱글도메인 ) SSL 인증서설치가이드 1) 시작 -> 앱 -> 관리도구 -> IIS 관리자를실행후서버를클릭합니다. 2) 서버인증서가져오기를선택합니다. - 242 -

3) 인증서파일경로를지정한후암호를입력합니다. 4) 다음과같이인증서가추가된내용을확인합니다. - 243 -

5) 작업할도메인클릭후바인딩선택. 6) 추가클릭. - 244 -

7) 설정및포트확인. 8) 보기로인증서확인. - 245 -

9) 확인을누르고포트확인. 10) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 246 -

3.44 Windows Server 2012 IIS8( 멀티도메인 ) SSL 인증서설치가이드 1) 시작 -> 앱 -> 관리도구 -> IIS 관리자를실행후서버를클릭합니다. 2) 서버인증서가져오기를선택합니다. - 247 -

3) 인증서파일경로를지정한후암호를입력합니다. 4) 다음과같이인증서가추가된내용을확인합니다. - 248 -

5) 작업할도메인클릭후바인딩선택. 6) 추가클릭. - 249 -

7) 설정및포트확인. * 멀티인증서는호스트이름과서버이름표시필요를체크해야함 8) 보기로인증서확인. - 250 -

9) 확인을누르고포트확인. 10) 임의의작업할도메인클릭후바인딩선택. ( 위방법과동일하게진행.) - 251 -

11) 웹브라우저에서인증서확인. 도메인접속후에 Alt 키를누르고파일 속성 인증서클릭후인증서보기를선택하시면인증서정보를확인할수있습니다. 발급대상과유효기간이맞는지 확인합니다. - 252 -

III. 웹페이지암호화통신소스수정방법및 적용확인방법 1. 전체페이지암호화하기 2. 페이지별암호화하기 3. 프레임별암호화하기 4. 보안서버암호화통신확인방법 - 253 -

III. 웹페이지암호화통신소스수정방법및적용확인방법 본절에서는인증서발급과설치완료후, 웹사이트의개인정보를취급하는부분인게시판, 회원가입, 로그인, 회원정보페이지등의웹사이트전체혹은일부를암호화방법을소개하겠 습니다. 암호화통신을하기위해보안프로토콜을호출하는방법은공통으로 HTML 언어를사용하 기때문에암호화통신에있어서특정 OS 나특정 Program 언어에의존하지않습니다. 1. 전체페이지암호화하기 전체페이지암호화는 https 프로토콜 URL으로페이지가열리도록 https 프로토콜호출하는방법과리다이랙션 (Redirection) 설정하는방법이있습니다. 전체페이지암호화방식은간단한소스수정을통해적용이가능하나암호화적용이필요없는부분까지암호화되기때문에암호화방식에비해서버에부하를줄수있습니다. 1) https 프로토콜호출하기 페이지를호출하는구간을 http:// 에서 https:// 로수정해주면됩니다. Html 의기본태그인 a 태그의속성중하나인연결속성 href 를사용하여 hrrps:// 로통신하는방법은닫음과같습니다. [ 수정전 ] <a href= http://www.test.co.kr ></a> [ 수정후 ] <a href= https://www.test.co.kr ></a> 2) 리다이렉션 (Redirection) 설정 암호화통신을위해서는 https:// 통신이필요하기때문에강제로주소를변경해야합니다. 리다이렉션이란사용자의위치를지정한위치로이동시키는기능을말하며, www.test.co.kr 또는 ucert.co.kr 로접근하였을경우웹브라우저는 https://www.test.co.kr 또는 https://test.co.kr 로통신할수있습니다. - 254 -

[Apache] <VirtualHost test.co.kr:80> ServerName test.co.kr DocumentRoot /home/test.co.kr ServerAlias www.test.co.kr Redirect / https://www.test.co.kr </VirtualHost> 3) Meta tag 를이용한방법 Meta tag 를사용하면 OS 나 Program 언어의종류에상관없이적용가능합니다. http-equiv 에서자원하는 refresh 속성을이용하여페이지를설정한 URL 로새로고침, 이동할수있습니다. <meta http-equiv- refresh content- 0; url-https://www.test.co.kr/index.html target- _top > 해당태그를사이트접속첫페에지에작성하면사용자가 https:// 를입력하지않아도 https:// 로 리다이렉션됩니다. - 255 -

2. 페이지별암호화하기 현재위치한페이지에서다른페이지로이동할경우, 함께전달할정보를암호화하여전당할것인지아니면일반적으로전달을할것인지선택하여암호화할수있다. 각페이지별적용이가능하고, 전체암호화와달리원하는페이지만적용할수있어, 서버의부하를줄일수있으며, 기존소스에참조되어있는 http:// 연결오류를최소화할수있습니다. 아래의소스를통해버튼을클릭하는액션후페이지가암호화되어이동하는방법을알아 보겠습니다. <script> function isubmit(){ myform.action = "https://www.test.co.kr/index.html"; return true; } </script> <button onclick="isubmit();"> 확인 </button> 위에서설명한전체암호화를하면발생할수있는오류를보여드리겠습니다. - 256 -

해당오류를개발자페이지에서확인가능하며, https:// 에서넘어온정보를처리후 http:// 로통신하면해당오류가사라지는것을확인할수있습니다. 위오류는홈페이지작동에치명적인위험이되는오류는아니나, 간혹브라우저에따라오류메시지를보여주는곳이있으니, http:// 로참조된링크가많은경우페이지별암호화가효과적입니다. 만일외부페이지를참조하는것이아닌해당사이트내의링크를참조한다면상대경로를 통해작성한다면해당오류는나타나지않습니다. 상대경로와절대경로예시 1) 상대경로작업디렉토리를기준으로상대적인위치를가리키는경로. <script> function isubmit(){ myform.action = "../index.html"; return true; } </script> 2) 절대경로작업중인디렉토리와관계없이절대적인위치를가리키는경로. <script> function isubmit(){ myform.action = "https://www.testt.co.kr/index.html"; return true; } </script> - 257 -

3. 프레임별암호화하기 HTML 문서내에다른 HTML 문서를보여주는내부프레임 (inline frame) 태그. 즉웹문서 중간에다른웹문서나텍스트파일과같은내용을원하는크기로불러들여보여주는태그입 니다. https:// 에서작성된페이지는 http:// 프레임을호출할수없으며, 단순히 http:// 에서 https:// 로변경하여암호화할수없습니다. https:// 홈페이지에서 http:// 프레임을연결했을경우 <!DOCTYPE html> <html> <body> <iframe width="560" height="315" src="http://www.opa.or.kr/" frameborder="0" allowfullscreen> </iframe> </body> </html> https:// 홈페이지에서 http:s// 프레임을연결했을경우 <!DOCTYPE html> <html> <body> <iframe width="560" height="315" src="https://www.opa.or.kr/" frameborder="0" allowfullscreen> </iframe> </body> </html> - 258 -

4. 보안서버암호화통신확인방법 1) 패킷확인패킷이란데이터를전송하는단위로분할된패킷에는목적지의인터넷주소가기록됩니다. 패킷의정보를확인하여암호화통신의유무를알수있습니다. 암호화통신을하고있지않은경우다음과같이전달하는정보가그대로노출되는것을확인할수있습니다. [HTTP 통신 ] [HTTS 통신 ] - 259 -

2) 웹페이지속성확인웹페이지의속성을확인하면암호화통신여부를알수있습니다. 인증서가적용된경우주소가 https:// 로보여지며, 인증서버튼을클릭하여인증서정보를확인할수있습니다. [ 익스플로러속성확인방법 : 마우스오른쪽버튼 > 속성 ] [ 크롬속성확인방법 : 개발자도구 (f12 또는마우스오른쪽버튼 > 검사 ) 에서 Security 선택 ] - 260 -

IV. 오류발생시대처방법 1. 인증서오류관련 2. 웹페이지오류관련 3. 웹서버오류관련 - 261 -

1. 인증서오류관련 1) 인증서를발급받은웹사이트주소와실제로접속한사이트주소가다른경우 보안서버인증서의경우도메인주소기준으로인증서를발급받게됩니다. 해당오류는 인증서를발급받은도메인주소와구축한도메인주소가다르거나실제보안서버가구 축된주소와실제로접속한주소가다른경우에해당오류가발생합니다. 2) 인증서가유효하지않은경우 - 인증서가만료되었을경우 ( 인증서갱신필요 ) - 사용자 PC 의날짜가잘못설정되어있는경우 (PC 시간을표준시간으로설정 ) - 262 -

3) 브라우저가웹서버인증서를신뢰할수없는경우 보안서버인증서를발급한 CA( 인증기관 ) 의중개인증서를웹브라우저가인식하지못하면서나타나는경우이며, 일반적으로브라우저에는기본적으로신뢰할수있는인증기관의중개인증서가내장되어있지만개인 PC문제로삭제되었거나또는웹서버에서자체적으로생성한사설인증서를사용하는경우가장많이발생하는문제입니다. - 263 -

2. 웹페이지오류관련 1) 보안된항목 https 와보안되지않은항목 http 를모두포함하는경우 Https와 http를모두포함하고있어나타나는문제입니다. https:// 를이용해서암호화통신을하고자하는페이지의소스에 http:// 를이용하여호출하는이미지등이존재할때보안경고창이나타나며, 만일외부페이지를참조하는것이아닌해당사이트내의링크를참조한다면상대경로를통해작성하여해당오류를해결할수있습니다. 상대경로와절대경로예시 1) 상대경로작업디렉토리를기준으로상대적인위치를가리키는경로. <script> function isubmit(){ myform.action = "../index.html"; return true; } </script> 2) 절대경로작업중인디렉토리와관계없이절대적인위치를가리키는경로. <script> function isubmit(){ myform.action = "https://www.testt.co.kr/index.html"; return true; } </script> 2) 개인정보를취급하는구간에보안서버를구축했음에도경고창이발생하는경우 구글 (Google) 크롬 (Chrome) 과모질라 (Mozilla) 파이어폭스 (Firefox) 는 2017년부터 HTTPS 암호화통신을적용하지않는웹사이트페이지에경고메시지를띄운다. 최근배포된크롬56 및파이어폭스51에적용된변화다. 크롬 56과파이어폭스51 브라우저는이제 HTTPS 암호화접속을기본으로간주해이를적용하지않는웹사이트에대해서더이상보안에대해중립적으로표시하지않습니다. 비보안 (HTTP) 연결상태에서크롬은 Not Secure 문구가추가되고파이어폭스는자물쇠아이콘과함께경고메시지를나타냅니다. - 264 -

이전과는달리평범한웹사이트라할지라도 HTTPS를적용하지않으면브라우저상에경고메시지가표시되어방문자들은불안을느낄수밖에없다. 이러한방문자들의불안심리는온라인사업자에게있어매출에큰영향을끼치는중대한문제가된다. 이제는시각적으로웹사이트의안전성을표기하기때문에방문자들의이탈을방지하기위해선 HTTPS 적용이필수가될전망입니다. 위와같이 안전하지않음 표시가나타납니다. 개인정보가포함되지않은 HTTP 페이지에도 i 를클릭할경우 이사이트에대한연결은 안전하지않습니다. 경고창발생 기존에일부개인정보를취급하는구간에만 HTTPS통신을적용하던웹사이트의경우접속과동시에모든페이지에서 HTTPS통신을할수있도록웹서버상에서리다이렉션 (HTTP로접속시->HTTPS로연결 ) 처리또는도메인포워딩서비스신청필요함. 개인정보를전혀취급하지않는웹사이트도 HTTPS통신이가능하도록설치필요함. - 265 -

3. 웹서버오류관련 1) 운영중인웹서버를같은기종으로변경하는경우 기존에사용하던개인키와인증서를복사하여재설치가가능합니다. 만약기존에사용 하던개인키및인증서분실시에는보안서버인증서발급업체에문의하여재발급받은 뒤교체작업을진행하면됩니다. 2) 운영중인웹서버를다른기종으로변경하는경우 기존에사용하던개인키와인증서를변경되는웹서버에서호환하는확장자형태로변환하여사용이가능하며, 직접변환이어려울때는보안서버인증서발급업체에요청하여변경되는웹서버에호환되는확장자형태로전달받아교체작업을진행하시면됩니다. 3) 운영중인웹서버에서취약한프로토콜을사용하는경우 주요브라우저에서보안이취약한 SSL3 프로토콜을더이상지원하지않거나경고창을 나타내게되면서취약한프로콜로통신하는웹서버는아래와같이접속오류가발생함. 해당문제는취약한프로토콜로통신이되지않도록웹서버상에서취약한프로토콜을 차단하여해결가능함. - 266 -

V. 웹사이트운영 관리상유의사항 1. 인증서의유효성확보 2. 보안경고창발생 3. SSL Ciphersuite 취약성해결방안 - 267 -

1. 인증서유효성의확보 SSL보안서버인증서는설치오류, 인증서유효기간의적정성, 인증서발급대상의일치성등에문제가있을때브라우저에서사용자들에게 해당웹사이트의보안인증서에문제가있음 을경고하며, 사용자들에게사용하는웹사이트가안전하지않다는심리적불안감을주어신뢰도를하락시키게됩니다. 따라서보안서버를구축하고관리할때아래 3가지문제로인해경고창이발생하지않도록각별히신경써야합니다. 1) 인증서발급기관의신뢰성여부 브라우저에해당인증기관의중개인증서가저장되어있지않아서이를발급한인증기관 을신뢰할수없는경우 2) 인증서유효기간의적정성여부 발급된인증서의유효기간이만료되었거나아직유효하지않은경우 3) 인증서발급대상과설치된웹사이트와의일치성여부 인증서에명시된발급대상도메인과실제로설치된웹사이트도메인이일치하지않는 경우 4) 해결방안 SSL 인증서발급시다음사항을점검한다. 1주요웹브라우저에서신뢰기관으로등록된인증기관에서발급된인증서인지여부 2 SSL 인증서내도메인명과웹사이트명이일치하는지여부 3 SSL 인증서내유효기간이정확한지여부 보안서버구축후다음사항을점검한다. 1 내 외부네트워크에서웹사이트를접속하여보안경고창이발생하는지확인한다. 2 IE, 파이어폭스, 사파리등주요웹브라우저에서보안경고창이발생하는지확인한다. - 268 -

2. 보안경고창발생 해커가사용자 PC와보안서버의중간에서프록시서버를통해 MITM(Man in the Middle) 공격을할경우, 임의로발급한 SSL 인증서를사용함으로사용자 PC에보안경고창이발생하게됩니다. 따라서보안경고창은사용자가해킹을인지할수있는수단으로널리인지되어있으며, 사용자가웹사이트이용시정보보호를위한기본적으로확인해야하는사항입니다. 특히아래경고문구가발생되고있지않은지필수적으로확인이필요합니다. - 269 -

3. SSL Ciphersuite 취약성해결방안 현재대부분의브라우저에서는 TLS 프로토콜사용을권장하고있으며, SSL3 이하의프로토 콜을사용할경우브라우저에서접속을차단하여웹사이트에접속시오류경고창을나타 내고있습니다. 이러한브라우저정책과보안적이슈에대응하기위해지금부터웹서버상에서취약한프 로토콜을차단하는방법을웹서버종류별로안내드리겠습니다. 3.1 Apache SSL Protocol 및 cipher 설정 1) ($HOME_BASE/conf/httpd-ssl.conf 를열어아래와같이설정. SSLProtocol ALL -SSLv2 -SSLv3 +TLSv1.2 +TLSv1.1 +TLSv1 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES 256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256: kedh+aesgcm:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa -AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AE S256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SH A256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AE S256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aE CDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RS A-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DH E-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMEL LIA128-SHA:!DHE-RSA-CAMELLIA256-SHA - 270 -

SSLProtocol ALL -SSLv2 -SSLv3 +TLSv1.2 +TLSv1.1 +TLSv1 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES 256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256: kedh+aesgcm:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa -AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AE S256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SH A256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AE S256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aE CDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RS A-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DH E-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMEL LIA128-SHA:!DHE-RSA-CAMELLIA256-SHA 2) Apache 프로세스재시작. 3) 재시작후프로토콜활성화확인. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 -> tls1.0 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1_1 -> tls1.1 프로토콜통신 확인 - 271 -

--sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-272 -

--tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 --tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-273 -

3.2 IHS SSL Protocol 및 cipher 설정 1) $HOME_BASE/conf/httpd.conf 를열어아래와같이설정. SSLEnable SSLProtocolDisable SSLv2 SSLv3 SSLCipherSpec SSL_RSA_WITH_3DES_EDE_CBC_SHA SSLCipherSpec TLS_RSA_WITH_AES_256_CBC_SHA SSLCipherSpec SSL_RSA_WITH_RC4_128_SHA SSLCipherSpec SSL_RSA_WITH_DES_CBC_SHA 2) IHS 를재기동합니다. 3) 서버재구동후프로토콜활성화를확인합니다. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 -> tls1.0 프로토콜통신 확인 - 274 -

openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1_1 -> tls1.1 프로토콜통신 확인 --sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-275 -

--tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 --tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-276 -

- 277 -

3.3 IHS 2.0 SSL Protocol 및 cipher 설정 1) $HOME_BASE/conf/httpd.conf 를열어아래와같이설정. SSLEnable SSLProtocolDisable SSLv2 SSLv3 SSLFIPSEnable SSLFIPSEnable 지시문은 FIPS(Federal Information Processing Standards) 를 사용가능하게합니다. HTTP 서버에따라사용가능한알고리즘을제약합니다. 2) IHS 를재기동합니다. 3) 서버재구동후프로토콜활성화를확인합니다. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 -> tls1.0 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1_1 -> tls1.1 프로토콜통신 확인 --sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2-278 -

-- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-279 -

--tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 --tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-280 -

3.4 Nginx SSL Protocol 및 cipher 설정 1) $HOME_BASE/conf/nginx.conf 를열어아래와같이설정. ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA +SHA256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EDH+ arsa+aesgcm:edh+arsa+sha256:edh+arsa:eecdh:!anull:!enull:!medium:!low:!3 DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"; 2) Nginx 를재기동합니다. 3) 서버재구동후프로토콜활성화를확인합니다. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 -> tls1.0 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1_1 -> tls1.1 프로토콜통신 확인 --sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2-281 -

-- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-282 -

--tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 --tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-283 -

3.5 Nginx 2.0 SSL Protocol 및 cipher 설정 1) ($HOME_BASE/conf/nginx.conf 를열어아래와같이설정. ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_ciphers "EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA256:EECDH+aRSA +SHA256: RSA+3DES:RSA+AES256:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+ SHA384:EDH+aRSA+AESGCM:EDH+aRSA+SHA256:EDH+aRSA:EECDH:!aNULL:!eNULL:!ME DIUM:!LOW:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4:!SEED"; 2) Nginx 를재기동합니다. 3) 서버재구동후프로토콜활성화를확인합니다. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 -> tls1.0 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1_1 -> tls1.1 프로토콜통신 확인 - 284 -

--sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-285 -

--tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1 --tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-286 -

3.6 Tomcat SSL Protocol 및 cipher 설정 1) ($HOME_BASE/conf/server.xml 를열어아래와같이설정합니다. ciphers="tls_ecdhe_ecdsa_with_aes_128_cbc_sha256,tls_ecdhe_rsa_with_aes_12 8_CBC_SHA256,TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_S HA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_ WITH_AES_256_CBC_SHA,TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,SSL_RSA_WITH_3DE S_EDE_CBC_SHA,SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA" ciphers 설정은공통구문옵션입니다. SSLProtocols 톰캣버전별설정구문 & 옵션 (TLS 프로토콜활성화 ) : TLS 1.2 & TLS 1.1 프로토콜은톰캣버전상관없이 JAVA 1.7.x 버전이상이필요함. Tomcat 5 and 6 (prior to 6.0.38) <Connector port="8443" protocol="org.apache.coyote.http11.http11protocol" maxthreads="150" SSLEnabled="true" scheme="https" secure="true" clientauth="false" sslprotocols = "TLS" /> Tomcat 6 (6.0.38 and later) and 7 <Connector port="8443" protocol="org.apache.coyote.http11.http11protocol" maxthreads="150" SSLEnabled="true" scheme="https" secure="true" clientauth="false" sslenabledprotocols = "TLSv1,TLSv1.1,TLSv1.2" /> 2) Tomcat 프로세스재시작. - 287 -

3) Tomcat 프로세스재시작. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -> sslv3 프로토콜통신 확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 -> sslv2 프로토콜통신 확인 --sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2-288 -

-- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3-289 -

3.7 Weblogic SSL Protocol 및 cipher 설정 1) Java 설치폴더를확인하여들어간다. 2) je-lib 파일안에 security 폴더확인. - 290 -

3) 폴더안에 local_policy.jar, US_export_policy.jar 파일확인후폴더를생성하고백업 을진행. - 291 -

4) Jre_policy-6 폴더의파일압축해제후 security 폴더에 local_policy.jar, US_export_policy.jar 를복사. (http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html ) - 292 -

5) jdk160_29/bin 폴더의 java 재실행. 6) config 폴더의 config.xml 파일을백업을진행한다. - 293 -

7) Config.xml 에내용에프로토콜을추가해주도록한다. <ciphersuite>tls_rsa_with_aes_256_cbc_sha </ciphersuite> <ciphersuite>tls_rsa_with_aes_128_cbc_sha </ciphersuite> <ciphersuite>tls_rsa_with_3des_ede_cbc_sha </ciphersuite> <ciphersuite>tls_rsa_with_des_cbc_sha</ciphersuite> - 294 -

<ciphersuite>tls_dhe_dss_with_des_cbc_sha </ciphersuite> 8) 웹로직을재시작한다. - 295 -

3.8 OHS SSL Protocol 및 cipher 설정 1) ($HOME_BASE)/ssl.conf 를열어아래와같이설정합니다. SSLProtocol ALL -SSLv2 -SSLv3 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES 256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256: DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-EC DSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA- AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA- AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256: DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-S HA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA: AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH- DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA SSLProtocol ALL -SSLv2 -SSLv3 +TLSv1.2 +TLSv1.1 +TLSv1 SSLCipherSuite ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES 256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-DSS-AES128-GCM-SHA256: kedh+aesgcm:ecdhe-rsa-aes128-sha256:ecdhe-ecdsa-aes128-sha256:ecdhe-rsa -AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AE S256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-DSS-AES128-SH A256:DHE-DSS-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA:AE S256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aE CDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA:!DHE-RS A-AES128-GCM-SHA256:!DHE-RSA-AES256-GCM-SHA384:!DHE-RSA-AES128-SHA256:!DH - 296 -

E-RSA-AES256-SHA:!DHE-RSA-AES128-SHA:!DHE-RSA-AES256-SHA256:!DHE-RSA-CAMEL LIA128-SHA:!DHE-RSA-CAMELLIA256-SHA 2) OHS 를재기동합니다. 3) 서버재구동후프로토콜활성화를확인합니다. -확인명령어 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 -- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2 - - sslv2 프로토콜통신확인 --sslv2 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 ssl2-297 -

-- sslv3 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 -ssl3 --tls1.0 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1-298 -

--tls1.1 프로토콜통신확인 openssl s_client -connect [ 해당 IP 및도메인 ]:443 tls1.1-299 -

3.9 IIS SSL Protocol 및 cipher 설정 1) 레지스트리편집기사용방법.(SSL 3.0 프로토콜사용제한 ) " 시작 " 을클릭하고 " 실행 " 을클릭한다음 regedit 를타이핑한후 " 확인 " 을클릭한다. 레지스트리편집기에서다음레지스트리키로이동한다 HKey_Local_Machine\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL \Protocols\SSL 3.0 항목에없으면생성한다. [Protocols] 항목에서 우클릭 새로만들기 키 생성된항목이름변경 [SSL 3.0] [SSL 2.0] 프로토콜별하위경로에동일하게키생성 [Client] [Server] 해당경로에서 편집메뉴 - " 새로만들기 " 를클릭한다. 목록에서 DWORD(32 비트 ) 를클릭한다. " 값이름 " 박스에 "Enabled" 으로수정한다. 새로운키의값을 "0" 으로설정하기위해이진편집기에 00000000 을타이핑한다. " 확인 " 을클릭하고컴퓨터를재시작한다. - 300 -

2) 레지스터추가후서버재부팅. 3) SSL 알고리즘설정.( 실행 > gpedit.msc 입력 > 확인.) - 301 -

3) 관리템플릿 > 네트워크 > SSL 구성설정. - 302 -