보안서버구축가이드 (ver 5.1) -2012.12.27- Ⅰ. 보안서버개요 5 Ⅱ. 웹서버종류별 SSL 구축방법 11 Ⅲ. 이중화된웹서버 SSL 적용방법 96 Ⅳ.SSL 적용여부확인방법 106 Ⅴ. 웹페이지 SSL 구현방법 108 Ⅵ. 보안서버구축시유의사항 113 Ⅶ. 보안서버구축 FAQ 114 [ 붙임 1]SSL 인증서발급절차 115 [ 붙임 2] 보안서버구축후오류발생시참조사항 119 행정전자서명인증관리센터
주의사항 본가이드사용시다음의사항에주의하시고활용하시기바랍니다. 본가이드는 SSL 인증서방식을이용한기술이며관련내용등은개별웹사이트구축시나타날수있는고유한환경이다를수있으므로실제환경에서구축 적용시차이가있을수있습니다. 그러므로각웹서버별기술된예시및내용을구축 적용할때에는먼저각웹사이트의고유한환경에맞는지확인해야만합니다. 본가이드의내용에대하여오류및보안서버구축에있어의견이 있을때에는 gpki@klid.or.kr 로해당내용을보내주시거나문의하시 면적극보완 지원하도록하겠습니다. - 2 -
< 차례 > I. 보안서버개요 5 1. 보안서버정의 5 2. 보안서버구축필요성 5 가. 정보유출 (Sniffing) 방지 5 나. 피싱 (Phishing) 방지및웹사이트신뢰도향상 5 3. 보안서버적용범위 6 4. 보안서버적용대상 6 5. SSL인증서신청절차 6 가. 웹서버종류확인 6 나. 행정전자서명 (SSL인증서) 신청서작성 6 다. 공문발송 7 라. CSR(Certificate Signing Request) 생성 7 마. 인증서등록안내수신 ( 신청후 2일이내 ) 7 바. SSL인증서발급 ( 인증서등록후 15일이내 ) 7 6. 보안서버구축절차 8 7. 보안서버설치파일설명 9 가. CSR (Certificate Signing Request) 9 나. CSR 생성시입력값 9 다. 보안서버구축시필요한파일 10 라. 웹서버별보안서버구축관련파일형태 10 II. 웹서버종류별 SSL 구축방법 11 2.1. IIS 6.0 이하웹서버에서보안서버구축하기 11 가. 개인키생성및 CSR 생성방법 11 나. 인증서설치방법 17 다. 웹사이트적용하기 27 라. SSL 인증서개인키추출방법 27 2.2. IIS 7.0 웹서버에서보안서버구축하기 34 가. 개인키생성및 CSR 생성방법 34 나. 인증서설치방법 37 다. 웹사이트적용 47 라. SSL 인증서개인키추출방법 48 2.3. Apache 서버에서보안서버구축하기 54 가. Linux O/S에 OpenSSL과 Mod_ssl의설치방법 54 나. WIN O/S에 OpenSSL 설치방법 56 다. 개인키생성및 CSR생성방법 58 라. 인증서설치방법 61 마. 웹사이트적용 65 바. SSL 인증서개인키추출방법 65 2.4. WebToB 서버에서보안서버구축하기 66 가. 개인키생성및 CSR 생성방법 66-3 -
나. 인증서설치방법 71 다. 웹사이트적용 75 라. SSL 인증서개인키추출방법 75 2.5. iplanet 서버에서보안서버구축하기 76 가. 개인키생성및 CSR 생성방법 76 나. 인증서설치방법 78 다. 웹사이트적용 84 라. SSL 인증서개인키추출방법 84 2.6. Tomcat 서버에서보안서버구축하기 87 가. 개인키생성및 CSR 생성방법 88 나. 인증서설치방법 90 다. 웹사이트적용 94 라. SSL 인증서개인키추출방법 94 III. 이중화된웹서버 SSL 적용방법 96 3.1. IIS 서버의경우 96 3.2. Apache 서버의경우 101 3.3. WebToB 서버의경우 102 3.4. iplanet 서버의경우 104 3.5. Tomcat 서버의경우 105 Ⅳ. SSL 적용여부확인방법 106 4.1. 보안서버구축여부확인방법 106 4.2. 보안서버적용전후보안통신비교 107 Ⅴ. 웹페이지 SSL 구현방법 108 5.1. 전체페이지암호화하기 109 5.2. 페이지별암호화하기 111 5.3. 프레임별암호화하기 111 Ⅵ. 보안서버구축시유의사항 113 Ⅶ. 보안서버 FAQ 114 7.1. 제도관련 FAQ 114 가. 행정전자서명센터 (GPKI) 은어떤기관인가요? 114 나. 보안서버는무엇이고, 구축하지않으면어떻게되나요? 114 다. 보안서버는구축의의무인가요? 관련법조항이뭔가요? 114 붙임1. SSL인증서발급절차 115 붙임2. 보안서버구축후오류발생시참고사항 119 < 제 개정연혁 > 127-4 -
I 보안서버개요 1. 보안서버정의 보안서버 (SSL) 란? 인터넷상에서사용자 PC 와웹서버사이에송수신되는개인정보를암호화하여전송하는웹서버를의미합니다. 그러므로보안서버를구축하는것은웹서버와사용자 PC 간의신뢰를형성하고, 웹브라우저와웹서버간에전송되는데이터의암 / 복호화를통해보안채널을형성하여안전한전자거래를보장합니다. SSL(SecureSocketsLayer) 인터넷상에서송 수신되는개인정보의대표적예시 1 인터넷사이트로그인시 ID/ 패스워드 2 인터넷사이트회원가입시이름 / 주민등록번호 / 전화번호 3 인터넷뱅킹이용시계좌번호 / 계좌비밀번호등 4 인터넷사이트에글을남길때 ( 자유게시판, 문의등 ) 2. 보안서버구축필요성 가. 정보유출 (Sniffing) 방지공용네트워크 ( 학교,PC 방, 회사등 ) 를사용하는 PC 에서보안서버가구축되지않은사이트를접속할경우, 개인정보가타인에게스니핑툴 (Snifing tool) 등에의해손쉽게노출될가능성이있습니다. 나. 피싱 (Phishing) 방지및웹사이트신뢰도향상보안서버가구축된사이트를대상으로피싱 (Phishing) 공격을시도하기는상대적으로어려워피싱에의한피해를줄일뿐만아니라이용자의신뢰를얻을수있어기관의이미지를부각시킬수있습니다. - 5 -
3. 보안서버적용범위 개인정보보호법제2조 ( 정의 ) 개인정보 란살아있는개인에관한정보로서성명, 주민등록번호및영상등을통하여개인을알아볼수있는정보 ( 해당정보만으로는특정개인을알아볼수없더라도다른정보와쉽게결합하여알아볼수있는것을포함한다 ) 를말한다. 인터넷에서사용되는대표적인개인정보의예시로는로그인시아이디, 비밀번호, 회원가입시주민번호, 인터넷뱅킹시계좌번호, 계좌비밀번호등이해당됩니다. 또한게시판등에서사용하는성명, 이메일, 연락처등도개인을식별할수있는정보로서개인정보에해당됩니다. 개인정보보호법제24 조 ( 고유식별정보의처리제한 ) 3 개인정보처리자가제1항각호에따라고유식별정보를처리하는경우에는그고유식별정보가분실ㆍ도난ㆍ유출ㆍ변조또는훼손되지아니하도록대통령령으로정하는바에따라암호화등안전성확보에필요한조치를하여야한다. 고유식별정보 : 주민번호, 여권번호, 외국인등록번호, 운전면허번호 이러한개인정보를안전하게관리하기위해서는해당개인정보를포함하고있는 웹페이지에대해보안서버 ( 암호화통신 ) 를적용해야합니다. 4. 보안서버적용대상 - 행정기관 5. SSL 인증서신청절차 가. 웹서버종류확인 현재운용하고있는웹사이트의웹서버의종류를확인합니다. GPKI 에서지원하는웹서버는 IS,Apache,WebtoB,iPlanet,Tomcat 입니다. 나. 행정전자서명 (SSL 인증서 ) 신청서작성 행정전자서명인증관리센터홈페이지 (htp://www.gpki.go.kr) 중앙하단부 [ 인증서신청관련양식 ] è [ 행정전자서명신청서 ] è [ 기관용신청서 ] 다운로드후작성 인증서종류 ( SSL) 에기재 ( 또는, ), 인증서관리담당및사용웹서버정보 ( 예시 :IS6.0,Apache2.1) 를정확하게작성 - 6 -
다. 공문발송 행정전자서명신청서를첨부하여 [ 외부조직 ] [ 정부산하기관및위원회 ] è [ 한국지역정보개발원 ] è [ 지역정보센터 ] è 정보기반과 로공문발송 공문발송후, 사전점검사항 : 시스템 ( 웹서버 ) 에 htps 포트 ( 기본 :443) 가활성화되었는지확인 ( 방화벽과 L4 스위치등장비에해당포트가허용되었는지확인 ) 라. CSR(CertificateSigningRequest) 생성 CSR 은 SSL 인증서를발급받기위하여필요한웹서버의정보를담고있는 인증서신청형식파일 ( 웹서버별 CSR 생성방법참조 ) 마. 인증서등록안내수신 ( 신청후 2 일이내 ) 공문접수후, 신청서등록처리후기관담당자에게발급안내메일및 SMS 발송 바. SSL 인증서발급 ( 인증서등록후 15 일이내 ) 행정전자서명인증관리센터홈페이지 (htp://www.gpki.go.kr)[ 유선인증서 è 발급 ] 메뉴에접속하여 라 에서생성한 CSR 파일을첨부하여 SSL 인증서를발급 ( 다운로드 ) 받습니다. IE8.0 버전이나 Windows7 을이용하실경우 IE 의 도구 è 인터넷옵션 è 보안 è 신뢰할수있는사이트 è 사이트 에 www.gpki.go.kr 과 gcert.gpki.go.kr 을 등록해야합니다. 인증서는 C:/gpki/certificate/class1/ 폴더의 domain.p7b 파일입니다. - 7 -
6. 보안서버구축절차 보안서버 (SSL 인증서탑재 ) 구축절차는다음과같습니다. 1 인증서파일웹서버로이동 (domain.p7b) 행정망에서받은 domain.p7b 파일을웹서버로이동시킵니다. 2 체인인증서內 Root CA, CA131000001, domain 인증서 3 개추출 발급받은인증서파일 (*.p7b) 을웹서버에서요구하는형식에따라체인인증서형태로추출합니다. 3 웹서버에설치 웹서버종류및버전에따른설치방식참조 4 웹프로그램적용 웹프로그램구성에맞게웹프로그램소스를수정하여암호화통신기능이정상동작되도록구성합니다. 5 웹방화벽및개인정보필터링시스템에개인키적용 웹방화벽및개인정보필터링시스템을운영시개인키를추출또는복제하여해당시스템에적용합니다.. < 표 1-1> 보안서버 (SSL 인증서탑재 ) 구축절차 1 유닉스기반웹서버를사용하셔도 3개의인증서추출작업은 WINDOWSO/S 에서작업하신다음이동하셔도됩니다. 2 웹프로그램적용시 HTTP 를사용하고있는링크및폼전송 URL 을 HTTPS 로변경하셔야하며 HTTPS 를사용하는페이지에 HTTP 가포함되면 보안경고 가발생합니다. 보안서버설치적용후웹서버접속시발생되는오류나문의사항은행정전자서명인증센터홈페이지 (www.gpki.go.kr) 자료실의기술자료및 FAQ 를참조하시거나, 안내센터로문의하시기바랍니다. ( 전화 :02-818-3021,e-Mail:gpki@klid.or.kr) - 8 -
7. 보안서버설치파일설명 가. CSR (CertificateSigningRequest) CSR 은 Certificate Signing Request( 인증서서명요청 ) 의약자로, 인증서발급을위해필요한정보를담고있는인증서신청형식데이터입니다.CSR 에포함되는내용으로는개인키생성단계에서만들어지는개인키 (Private Key) 와공개키 (Public Key) 의키쌍중에서공개키가포함되며인증서가적용되는도메인에대한정보등이포함됩니다. 바른 CSR 을생성하기위해서는해당도메인정보를정확히넣어주셔야합니다. 또한개인키및 CSR 의생성을여러번수행하셨을경우사용하실개인키와일치하는 CSR 을이용하여 SSL 인증서를발급절차에따라발급받으시면됩니다. 만약, 알려주신 CSR 의내용이사용할개인키가아닌다른개인키를이용하여생성되었을경우, 발급된인증서가개인키와일치하지않아 키쌍이맞지않는오류 가발생합니다. 이문제를해결하기위해서는개인키생성및 CSR 생성과정부터다시시작해서해당인증서를재발급받아야합니다. 나. CSR 생성시입력값 웹서버 항목 IS 아파치톰켓 WebToB iplanet 별칭사용 - 사용 - - 비트길이 2048 2048 2048 2048 2048 조직 (O) 조직단위 (OU) 사이트명 (CN) Government ofkorea Groupof Server Government ofkorea Groupof Server Government ofkorea Groupof Server Government ofkorea Groupof Server Government ofkorea Groupof Server 도메인명도메인명도메인명도메인명도메인명 국가 (C) KR KR KR KR KR 지역 (ST) GPKI - - - - 시군구 (L) GPKI - - - - 이메일 - - - - - CSR 생성시비어있는항목 (-) 에값을입력하시면발급시에러코드 (114) 가발생합니다. - 9 -
다. 보안서버구축시필요한파일 형태저장파일내용비고 개인키파일개인키인증서를해독하는개인키, 비밀키저장 CSR 파일 domain.csr p7b 파일을받기위한인증요청파일임시 p7b 파일 RootCA 인증서 CA Chain 인증서 인증서체인의맨위에있는신뢰된최상위인증서인증서발급기관이서명한일련의계층적인증서 RootCA CA131000001 서버인증서개인키를기반으로생성된인증서 domain.go.kr 보안서버구축시웹서버에설정하는파일은개인키파일과 p7b 파일 2개이며 CSR 파일은 p7b 파일발급받기위한임시신청파일입니다. ( 인증서복제시개인키파일과 p7b 파일 2개만있으면됩니다 ) Apache,WebtoB 서버의 p7b pem 변환작업은 OpenSSL 프로그램을이용합니다. 개인키 RootCA 인증서 CSR P7B CA Chain 인증서 ( 발급 ) ( 변환 ) 서버인증서 라. 웹서버별보안서버구축관련파일형태 웹서버 항목 IIS 아파치톰켓 WebToB iplanet 개인키내장파일내장파일내장 RootCA 인증서 CA Chain 인증서 파일파일파일 - 입력 파일파일파일파일입력 서버인증서파일파일파일파일입력 인증서를다른곳에서사용하려면개인키를복제해야하는데 IS, 톰켓,iPlanet 은파일형태가아니기때문에별도로 개인키내보내기 작업을통해파일로변환시켜야합니다. - 10 -
Ⅱ 웹서버종류별 SSL 구축방법 2.1. IS 6.0 이하웹서버에서보안서버구축하기 가. 개인키생성및 CSR 생성방법 1 [ 웹사이트 -속성] 메뉴를선택합니다. - 시작 프로그램 관리도구 인터넷서비스관리자 웹사이트 마우스오른쪽버튼클릭후속성 을선택합니다. 2 등록정보화면에서 디렉터리보안 탭을클릭한후서버인증서를클릭합니다. - 11 -
3 웹서버인증서마법사를시작합니다. - 다음 (N) 버튼을클릭하여계속진행합니다. - 새인증서를만듭니다 (C) 를선택한후, 다음 (N) 버튼을클릭합니다. - 요청을준비하지만나중에보냅니다 를선택합니다. - 12 -
- 인증서를만들이름을입력하시기바랍니다. 이름은인증서의별칭이므로쉬운것으로선정, 임의로입력하시기바랍니다. 인증서키의길이는 2,048 로하시면됩니다. -조직및조직구성단위를입력합니다. 대소문자, 띄어쓰기철자를정확히입력하여야합니다. 조직 (O):<GovernmentofKorea> 라고입력합니다. 조직구성단위 (U):<GroupofServer> 라고입력합니다. - 13 -
-도메인이름을입력하시기바랍니다. SSL 인증서를적용할도메인이름을입력하면됩니다. 예 ) 단일인증서 :www.klid.or.kr (www 를꼭붙이세요 ) 와일드카드인증서 :*.klid.or.kr - 지역정보 ( 구 / 군 / 시 ) 를입력합니다. 국가 / 지역은 default 로 KR( 대한민국 ) 입니다. 시 / 도와구 / 군 / 시에 GPKI" 를 입력후다음 (N) 버튼을활성화시켜계속진행하시면됩니다. GPKI GPKI - 14 -
- 인증서요청파일 (CSR) 을저장합니다.default 이름을사용하시면됩니다. - 등록한내용을다시한번확인합니다. - 15 -
- 인증서요청파일 (CSR) 생성을완료합니다. 4 SSL 인증서발급 보안서버구축가이드 SSL 인증서발급절차안내 에따라해당신청서를작성하여공문을보내시고인증센터에서 인증서등록후 이메일이나휴대폰문자메시지로전송되는발급안내내용을확인하신후행정전자서명인증관리센터홈페이지 (www.gpki.go.kr)[ 유선인증서 > 발급 ] 메뉴에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 16 -
나. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\class1 디렉터리에해당 <cn name:domain>.p7b 파일이있는지확인합니다.( 예 :www.gpki.go.kr.p7b) 2 pkcs#7 cer 변환 - 인증서파일 <p7bfilename> 을윈도우환경에서더블클릭하여파일을 open 합 니다. 아래와같은창이열립니다. - 인증서를선택 ( 예 :CA131000001) 후마우스우측버튼을클릭하여 " 모든작업 (K) - 내보내기 " 를클릭합니다. - 17 -
- DER 로인코딩된 X.509 바이너리 (.CER) 을선택하여인증서를저장합니다. 3 개인증서 (RootCA 인증서,CA 인증서,SSL 인증서 ) 를모두 DER 로인코딩된 X.509 바이너리 (.CER) 으로변환하여저장합니다. 3 3 개인증서중 SSL 인증서를웹사이트에적용합니다. - 시작 프로그램 관리도구 인터넷서비스관리자 웹사이트 마우스 오른쪽버튼클릭후속성 을선택합니다. - 18 -
- 등록정보화면에서 디렉터리보안 탭을클릭한후서버인증서를클릭합니다. - 다음 (N) 버튼을클릭하여계속진행한다. - 다음 (N) 버튼을클릭하여계속진행한다. - 19 -
-( 와일드카드 )SSL 인증서파일 (*.p7b) 에서내보낸 SSL 인증서 ( 도메인인증서 ) 를선택한후, 다음 (N) 버튼을클릭하여계속진행하시면됩니다. - 이제 SSL 인증서의설치가완료되었습니다. 4 SSL 인증서설치가완료되었으면,IS 서버를재구동시킵니다. - 시작 실행 cmd 명령입력후확인버튼을클릭합니다. - 20 -
- isreset/restart" 명령입력후엔터를치면 IS 서버의서비스가재구동됩니다. 5 3개인증서중 RootCA 인증서및 CA 인증서를웹서버에설치하기위하여 mmc 콘솔창을실행합니다. -시작 실행 mmc 명령입력후확인버튼클릭 파일 스냅인추가 / 제거를선택합니다. - 21 -
- 스냅인추가 / 제거창에서추가 (D) 버튼을클릭합니다. - 인증서를선택한후추가 (A) 버튼을클릭합니다. - 22 -
- 스냅인관리할인증서대상을 컴퓨터계정 으로체크한후다음 (N) 버튼을 클릭합니다. - 마침버튼을클릭한후스냅인추가 / 제거창에서확인버튼을클릭한다. - 23 -
6 3 개인증서중 RootCA 및 CA 인증서를웹서버에설치합니다. - 신뢰된루트인증기관 마우스오른쪽버튼클릭후모든작업 가져오기 를 선택합니다. -( 와일드카드 )SSL 인증서파일 (*.p7b) 에서내보낸 RootCA 인증서를선택한후다음 버튼을클릭하여계속진행합니다. - 24 -
- 다음버튼을클릭하여계속진행합니다. - 그러면, 인증서설치가완료됩니다.( 와일드카드 )SSL 인증서파일 (*.p7b) 에서내보낸 CA 인증서를설치하기위해서는 6 번을반복하면됩니다. - 25 -
7 이제 SSL 인증서의설치가완료되었으며, 웹브라우저를통해 SSL 인증서설치 정상유무를확인할수있습니다.( 예.htps://cho.klid.or.kr) - 26 -
다. 웹사이트적용하기 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 라. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 1 mmc 콘솔창을실행합니다. -시작 실행 mmc 명령입력후확인버튼클릭 파일 스냅인추가 / 제거를선택합니다. - 스냅인추가 / 제거창에서추가 (D) 버튼을클릭합니다. - 27 -
- 인증서를선택한후추가 (A) 버튼을클릭합니다. - 스냅인관리할인증서대상을 컴퓨터계정 으로체크한후다음 (N) 버튼을 클릭합니다. - 28 -
- 기본선택유지후마침버튼을클릭합니다. - 마침버튼을클릭한후스냅인추가 / 제거창에서확인버튼을클릭합니다. - 29 -
2 개인키를내보냅니다. - 개인 인증서 발급대상항목확인후오른쪽버튼을클릭하여 내보내기를클릭합니다. - 개인키내보내기를선택합니다. - 다음버튼을클릭합니다. - 30 -
-" 예, 개인키를내보냅니다 (Y)" 를선택합니다. - 별도의선택없이기본선택으로다음버튼을클릭합니다. - 31 -
- 비밀번호를지정합니다.( 자릿수제한없음 ) - 내보낼파일이름을지정합니다. - 32 -
- 마침버튼을클릭합니다. - 33 -
2.2. IS 7.0 웹서버에서보안서버구축하기 가. 개인키생성및 CSR 생성방법 1 서버인증서메뉴를선택합니다. - 시작 제어판 관리도구 ISManager 서버이름선택 오른쪽의 서버인증서 를선택합니다. 2 작업메뉴 에서 인증서요청만들기 를선택합니다. - 34 -
3 CSR 생성에필요한정보를입력합니다. - 암호화서비스공급자속성 창에서, MicrosoftRSA SchannelCryptographic Provider' 및 2048bit 로선택 - 35 -
- 파일이름을지정하고인증서요청파일 (CSR) 생성을완료합니다. 4 SSL 인증서발급 행정전자서명인증관리센터홈페이지 (www.gpki.go.kr) 에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 36 -
나. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\clas1 디렉토리에해당 <cn name:domain>.p7b 파일이 있는지확인합니다.( 예 :www.gpki.go.kr.p7b) 2 pkcs#7 cer 변환 - 인증서파일 <p7bfilename> 을윈도우환경에서더블클릭하여파일을 open 합니다. 아래와같은창이열립니다. - 인증서를선택 ( 예 :CA131000001) 후마우스우측버튼을클릭하여 " 모든작업 (K)- 내보내기 " 를클릭하여 인증서내보내기마법사시작 합니다. - 37 -
- DER 로인코딩된 X.509 바이너리 (.CER) 을선택합니다. - 내보낼파일이름을지정합니다. 3 개인증서 (RootCA 인증서,CA 인증서,SSL 인증서 ) 를모두 DER 로인코딩된 X.509 바이너리 (.CER) 으로변환하여저장합니다. - 38 -
- 내보낸결과를확인합니다. 3 3개인증서중 SSL 인증서를웹사이트에적용합니다. - 시작 제어판 관리도구 ISManager 서버이름선택 오른쪽의 서버인증서 를선택합니다. - 작업 메뉴에서 인증서요청완료 를선택합니다. - 39 -
- 내보낸인증서 (gpki.cer) 를선택후이름을입력합니다. - 적용결과를확인합니다. 4 작업 메뉴의 바인딩 을선택합니다. - 40 -
- 추가버튼을클릭합니다. - 추가하는정보를확인합니다. 종류는 htps, 포트는 443( 또는지정포트 )SSL 인증서는해당서버를각각 선택합니다. -443( 또는지정포트 ) 포트가추가되었는지확인합니다. - 41 -
5 htps:// 설치도메인 을입력하여접속여부를확인한다. IS7.0 의경우설치후 IS 서비스를재구동할필요가없습니다. 6 3 개의인증서중 RootCA 및 CA 인증서를웹서버에설치합니다. - 시작 실행 mmc 명령입력후확인버튼클릭 파일 스냅인추가 / 제거를선택합니다. - 42 -
- 스냅인추가 / 제거창에서인증서항목을추가합니다. - 인증서대상을 컴퓨터계정 으로선택합니다. - 로컬컴퓨터 를선택후 마침 을클릭합니다. - 43 -
- 추가결과를확인한다. 7 3개의인증서중 RootCA 및 CA 인증서를웹서버설치합니다. - 신뢰된루트인증기관 마우스오른쪽버튼클릭후모든작업 가져오기 를선택합니다. -RootCA 인증서파일을선택합니다. - 44 -
- 저장장소를선택합니다. - 가져오기를완료합니다. - 45 -
- 결과를확인합니다. 그러면, 인증서설치가완료됩니다.( 와일드카드 )SSL 인증서파일 (*.p7b) 에서내보낸 CA 인증서를설치하기위해서는 7 번을반복하면됩니다. 8 이제 SSL 인증서의설치가완료되었으며, 웹브라우저를통해 SSL 인증서설치정상 유무를확인할수있습니다.( 예.htps://www.gpki.go.kr) - 46 -
- 인증서보기 를클릭하여설치된인증서정보를확인합니다. 다. 웹사이트적용 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 - 47 -
라. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 - 시작 실행 mmc 명령입력후확인버튼클릭 파일 스냅인 추가 / 제거를선택합니다. - 스냅인추가 / 제거창에서인증서항목을추가합니다. - 48 -
- 인증서대상을 컴퓨터계정 으로선택합니다. - 로컬컴퓨터 를선택후 마침 을클릭합니다. - 49 -
- 추가된인증서항목을확인합니다. - 인증서 ( 로컬컴퓨터 )> 개인용 > 인증서항목을클릭하면적용된정보를확인할수 있습니다. 해당도메인에서오른쪽마우스클릭후내보내기를선택합니다. - 50 -
- 인증서내보내기마법사가실행되면다음버튼을클릭합니다. 다음에서 예개인키를내보냅니다.(Y) 선택후다음을클릭합니다. - 선택내용확인후다음을클릭합니다. - 51 -
- 비밀번호를입력합니다.( 자릿수제한없음 ) - 내보낼키파일의이름을지정합니다. - 52 -
- 내보내기결과를확인한다. - 저장한위치에서내보낸파일을확인후 OpenSSL 로개인키를분리합니다. opensslpkcs12-in gpki.pfx-nocerts-nodes-outkey.pem - 생성된 key.pem 파일의내용을확인합니다. - 53 -
2.3.Apache 서버에서보안서버구축하기 Apache 서버 1.3.x 버전에서는기본적으로 SSL 기능을지원하지않기때문에별도의 Mod_SSL 모듈과 OpenSSL 모듈을설치하셔야 SSL 기능을사용할수있습니다. Apache 서버 2.x 버전부터는 SSL 기능이포함되어나오므로 Mod_sl 모듈을추가설치할필요없이 OpenSSL 모듈만을설치하면되나,Apache 설치시 Mod_ssl 모듈을옵션에서제외시켰을경우 Apache 를재설치해야합니다. Mod_sl 과 OpenSSL 모듈은각각 www.modssl.org,www.opensl.org 에서무료다운로드가가능합니다. WIN O/S 에보안서버구축시에도적용방법은비슷합니다. WIN O/S 의경우아파치 2.x 버전을사용하므로 OpenSSL 만추가설치해주시면됩니다. htp://www.openssl.org/related/binaries.html 페이지를참고하세요. 아파치 SSL 설치관련내용은아파치웹사이트에서얻을수있습니다. htp://www.apache-ssl.org 에서자세한설명을찾을수있습니다. 가. LinuxO/S 에 OpenSSL 과 Mod_ssl 의설치방법 Apache 서버 1.3.x 버전에서 SSL 통신을가능하게하기위해서는 OpenSSL 과 Mod_ssl 이필요합니다. 우선, 현재서비스중인 Apache 서버에 Mod_ssl 이설치되어있는지를 htpd-l 옵션을 사용하여 mod_ssl.c 또는 mod_ssl.so 가있는지확인하시기바랍니다. $ /usr/local/apache/bin/httpd -l Compiled-in modules: mod_ssl.c OpenSSL 은 Apache 버전과 Mod_sl 의버전을확인한후에알맞은 OpenSSL 을설치해야합니다. 예를들어 Apache1.3.3 버전에는 Mod_sl2.1.6( 또는 2.1.7) 을설치해야하고,Mod_ssl2.1.6 은 OpenSSL 0.8.1b 와 0.9.1c 버전사이에서만동작합니다. 버전을확인하지않고 OpenSSL 과 Mod_ssl 을설치하면 Apache 컴파일과정에서오류가발생합니다. - 54 -
Mod_sl 은반드시 Apache 서버버전에맞는것을설치하셔야하며 www.modsl.org 에서 Apache 버전을확인한후그에맞는 Mod_ssl 을다운받아설치하시기바랍니다. Mod_sl 에서지원하는 Apache 버전및 OpenSSL 의버전은 Mod_sl 소스의 README.Versions 에서확인할수있으며,www.opensl.org 에서도확인할수있습니다. Apache 서버 2.x 버전의경우 Mod_ssl,OpenSSL 최종버전을설치해야합니다. 1 OpenSSL 의설치 (www.openssl.org) 압축풀기 $ gzip -cd openssl-0.9.6.tar.gz tar xvf - $./config$make$makeinstalconfig prefix 를주지않았을때에는 /usr/local/ssl 디렉토리에설치가됩니다. 다른디렉토리에설치를하고자한다면다음과같이설치합니다. $./config -prefix=/usr/local-openssldir=/usr/local/opensl OpenSSL 의실행파일은 /usr/local/ssl/bin 에설치되고인증서비스를위한파일들은 /usr/local/openssl 아래의디렉토리에생성됩니다. 2 Mod_ssl 의설치 (www.modssl.org) 압축풀기 $ gzip -cd apache_1.3.19.tar.gz tar xvf $ gzip -cd mod_ssl-2.8.1-1.3.19.tar.gz tar xvf 파일의다운로드와압축풀기가끝나면 Mod_ssl 설정을합니다. Mod_ssl 설정 $ cd mod_ssl-2.8.1-1.3.19 $./configure \ --with-apache=../apache_1.3.19 \ --with-ssl=../openssl-0.9.6 \ --prefix=/usr/local/apache - 55 -
3 Apache 서버설치 (www.apache.org) $ cd../apache_1.3.x $ SSL_BASE=../openssl-0.9.6 \./configure \ --prefix=/usr/local/apache \ --enable-module=ssl \ $ make $ make certificate $ make install 나. WIN O/S 에 OpenSSL 설치방법 Apache 서버 2.x 버전부터는 SSL 기능이포함되어나오므로 Mod_ssl 모듈을추가설치할필요없이 OpenSSL 모듈만을설치하면되나,Apache 설치시 Mod_ssl 모듈을옵션에서제외시켰을경우 Apache 를재설치해야합니다. WIN O/S 용 OpenSSL 설치방법은다음과같습니다. 1다운로드 2 설치 - 56 -
3 설치확인 C:\OpenSSL>dir c 드라이브의볼륨 : 볼륨일련번호 : 54A5-8EF0 C:\OpenSSL 디렉토리 2011/08/31 오후 03:29 <DIR>. 2011/08/31 오후 03:29 <DIR>.. 2011/08/31 오후 03:29 304,833 changes.txt 2011/08/31 오후 03:29 36,610 faq.txt 2011/08/31 오후 03:29 6,406 license.txt 2011/08/31 오후 03:29 15,973 news.txt 2011/08/31 오후 03:29 30,423 OpenSSLhelp.chm 2011/08/31 오후 03:29 8,126 readme.txt 2011/08/31 오후 03:29 77,824 regref.exe 2011/08/31 오후 03:29 79,872 sslcopy.exe 2011/08/31 오후 03:29 10,124 unins000.dat 2011/08/31 오후 03:29 690,969 unins000.exe 10 개파일 1,261,160 바이트 3 개디렉토리 6,758,416,384 바이트남음 4 openssl.cnf 및 openssl.exe 파일은 bin 폴더에있습니다. C:\OpenSSL\bin>dir c 드라이브의볼륨 : 볼륨일련번호 : 54A5-7191 C:\OpenSSL\bin 디렉토리 2011/08/31 오후 03:29 <DIR>. 2011/08/31 오후 03:29 <DIR>.. 2011/08/31 오후 03:29 <DIR> PEM 2011/08/31 오후 03:29 5,685 CA.pl 2011/08/31 오후 03:29 9,694 openssl.cnf 2011/08/31 오후 03:29 258,048 openssl.exet 2011/08/31 오후 03:29 15,973 news.txt 3 개파일 273,427 바이트 3 개디렉토리 6,758,416,384 바이트남음 - 57 -
다. 개인키생성및 CSR 생성방법 1 openssl.cnf 설정값수정 -행정전자서명신청시에메일로수신받은 dn 을참조합니다. 예 )CN=www.gpki.go.kr,OU=GroupofServer,O=GovernmentofKorea,C=KR -설치된 Opensl 설치된폴더의 openssl.cnf 내용을확인하여아래와같이수정합니다.( 미사용항목을주석 (#) 처리합니다 ) [ req_distinguished_name ] countryname = Country Name (2 letter code) countryname_default = KR countryname_min = 2 countryname_max = 2 #stateorprovincename #stateorprovincename_default = Some-State = State or Province Name (full name) #localityname = Locality Name (eg, city) 0.organizationName 0.organizationName_default = Organization Name (eg, company) = Government of Korea # we can do this but it is not needed normally :-) #1.organizationName = Second Organization Name (eg, company) #1.organizationName_default = World Wide Web Pty Ltd organizationalunitname organizationalunitname_default = Group of Server = Organizational Unit Name (eg, section) commonname commonname_max = 64 = Common Name (eg, YOUR name) #emailaddress = Email Address #emailaddress_max = 64 GPKI 에서사용하는 Country,Organization,OrgainzationUnit, CommonName 을제외한항목은주석처리 - 58 -
2 개인키생성 $ openssl genrsa -des3 -out <key filename> 2048 Generating RSA private key, 2048 bit long modulus...++++++...++++++ e is 65537 (0x10001) Enter PEM pass phrase: <password> Verifying password - Enter PEM pass phrase: <password> 예 )< 리눅스 & 유닉스 > opensslgenrsa-des3-outkey.pem 2048 < 윈도우 > opensslgenrsa-outkey.pem 2048 윈도우의경우개인키에패스워드를지정해버리면 SSL 설정적용후 아파치가기동되지않기때문에 -des3 옵션을제거한명령어를통해개인키에패스워드설정을하지않고생성해서작업을하셔야합니다. 개인키비밀번호를입력하며반드시기억해야합니다.( 암호를분실할경우 SSL 사용을위한 Apache 를구동할수없기때문에 SSL 인증서를재발급 받아야합니다.) 3 생성된개인키를이용하여 CSR 생성 $ openssl req -new -key <key filename> -out <csr filename> You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. -----ls Country Name (2 letter code) [KR]: Organization Name (eg, company) [Government of Korea]: Organizational Unit Name (eg, section) [Group of Server]: Common Name (eg, YOUR name) []:<cn name : domain> Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: 비밀번호 An optional company name []: 비밀번호 <keyfilename> 은단계 2 에서생성한개인키파일이며 <csrfilename> 은생성할 CSR 파일입니다. - 59 -
<cnname:domain> 은인증관리센터에등록된 cn 값으로입력합니다. 인증서등록안내 E-mail 및인증관리센터를통해확인해주세요.( 와일드카드 SSL 인증서일경우는 *.domain 으로입력합니다.) [KR] 등 [] 안에내용은기본설정값입니다. 위내용과다르면값을직접입력하여주시면됩니다. 위내용외다른값을넣으시면발급시 114 에러가발생합니다.( 대소문자구별 ) 예 ) $ openssl -new -key key.pem -out csr.pem ~ ~ ~ Country Name (2 letter code) [KR]: Organization Name (eg, company) [Government of Korea]: Organizational Unit Name (eg, section) [Group of Server]: Common Name (eg, YOUR name) []:www.gpki.go.kr ~ ~ ~ A challenge password []: 비밀번호 An optional company name []: 비밀번호 4 CSR 제출생성된 CSR(<csrfilename>) 의내용은다음과같습니다. -----BEGIN CERTIFICATE REQUEST----- MIIBETCBvAIBADBXMQswCQYDVQQGEwJBVTETMBEGA1UECBMKU29tZS1TdGF0ZTEh MB8GA1UEChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRAwDgYJKoZIhvcNAQkB ~ ~ ~ AaAAMA0GCSqGSIb3DQEBBAUAA0EAXcMsa8eXgbG2ZhVyFkRVrI4vT8haN39/QJc9 BrRh2nOTKgfMcT9h+1Xx0wNRQ9/SIGV1y3+3abNiJmJBWnJ8Bg== -----END CERTIFICATE REQUEST----- CSR 내용은 BEGIN CERTIFICATEREQUEST 부터 END CERTIFICATEREQUEST 까지입니다. 5 SSL 인증서발급 행정전자서명인증관리센터홈페이지에 (www.gpki.go.kr) 에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 60 -
라. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\class1 디렉토리에해당 <cn name:domain>.p7b 파일이있는지확인합니다.( 예 :www.gpki.go.kr.p7b) -----BEGIN PKCS7----- MIILiQYJKoZIhvcNAQcCoIILejCCC3YCAQExADALBgkqhkiG9w0BBwGgggteMIID HTCCAgWgAwIBAgIQSAcIRgAuPO7tcwjaHEc8+jANBgkqhkiG9w0BAQUFADBQMQsw... 8wQdPqvThnU/td3t6IrVG983r3rrP69GN/qspiJpBIryB019rK0cUeYFK95jaL3E 0lqDgGfm9I5cuWcJ8eaPfU/AlZYkXCss4jJrMQA= -----END PKCS7----- 2 pkcs#7 pem 변환 openssl pkcs7 -in <p7b filename> -out <pem filename> -print_certs -text 여기서 <p7bfilename> 은발급받은인증서의이름및전체경로이며, <pem filename> 은변환되어저장될 pem 파일이름및전체경로를입력한다. 예 )opensslpkcs7-inwww.gpki.go.kr.p7b-outcert.pem -print_certs-text 3 CA 인증서및 CAChain 인증서생성 -<pem filename> 파일을편집기로열어서아래와같은내용들을복사하여 각각의파일을생성합니다. 파일중에서 'CA131000001' 이들어있는부분의 Certificate: 에서 -END CERTIFICATE - 까지부분을복사하여 <ca.pem> 파일을생성합니다. 파일중에서 RootCA 와 'CA131000001' 이들어있는부분의 Certificate: 에서 -END CERTIFICATE - 까지부분을전부복사하여 <cachain.pem> 파 일을생성합니다. - 61 -
예 )<ca.pem>,<cachain.pem> 생성예제 Certificate: Data: Version: 3 (0x2) Serial Number: 4a:65:5e:f5:03:d1:e7:b0:c6:e4:e5:db:e0:d0:52:e5 Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=CA131000001 ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=Group of Server, CN=www.gpki..go.kr ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIDIzCCAgugAwIBAgIQSmVe9QPR57DG5OXb4NBS5TANBgkqhkiG9w0BAQUFADBQ ~ ~ ~ ~ ~ kkfucm04kgumn3q3ouyal98bym3jkegqkrwvicn6rgfln71gbnop -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 3c:c2:81:4b:00:e7:52:4d:9b:aa:47:b7:e1:61:f5:0e Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIDmTCCAoGgAwIBAgIQPMKBSwDnUk2bqke34WH1DjANBgkqhkiG9w0BAQUFADBM ~ ~ ~ ~ ~ usuqz4oqbno2kxt8pg== -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 48:15:99:5d:01:ea:17:36:01:73:5b:d1:16:f8:25:5c Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=GPKI, CN=CA131000001 ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIEnDCCA4SgAwIBAgIQSBWZXQHqFzYBc1vRFvglXDANBgkqhkiG9w0BAQUFADBM ~ ~ ~ ~ ~ 498KpPx9vfeB3R3h130seTSGa4JXgngrKoaCbTstU9U= -----END CERTIFICATE----- Line 72 Line 158 cachain.pem ca.pem cert.pem - 62 -
4 환경설정파일 (htpd.conf 또는 ssl.conf) 을수정합니다. - 환경설정파일중 mod_ssl.so 부분이있으면 mod_ssl 사용을위해주석을 해제합니다. LoadModule ssl_module modules/mod_ssl.so -기존 htp<virtualhostwww.gpki.go.kr:80> 항목을복사하여붙여넣고 SSL 관련 4개항목을추가하고각항목에맞는파일의경로를입력합니다. NameVirtualHost * 이름기반가상호스트사용 <VirtualHost *:80> ServerAdmin admin@gpki.go.kr DocumentRoot "/home/gpki/www/" ServerName www.gpki.go.kr ServerAlias gpki.go.kr ErrorLog /home/gpki/error_log AccessLog /home/gpki/access_log </VirtualHost> 홈디렉토리설정 도메인설정 <VirtualHost *:443> ServerAdmin admin@gpki.go.kr DocumentRoot "/home/gpki/www/" 홈디렉토리설정 ServerName www.gpki.go.kr 도메인설정 ServerAlias gpki.go.kr ErrorLog /home/gpki/ssl_error_log AccessLog /home/gpki/ssl_access_log SSLCertificateKeyFile "<key filename>" key.pem SSLCertificateFile "<pem filename>" cert.pem SSLCertificateChainFile "<cachain.pem>" cachain.pem SSLCACertificateFile "<ca.pem>" ca.pem </VirtualHost> <pem filename> 은발급받은인증서파일의경로및파일명을입력합니다. <keyfilename> 은 CSR 파일처음생성시생성한 key 파일을그대로사용해서경로및파일명을입력합니다. <cachain.pem> 과 <ca.pem> 은 <pem filename> 에서복사해서생성한파일의경로및파일명을입력합니다. - 63 -
5 Apache 서버를재구동합니다. $./apachectl stop./apachectl stop: httpd stopped $./apachectl startssl Apache/1.3.19 mod_ssl/2.8.1 (Pass Phrase Dialog) Some of your private key files are encrypted for security reasons. In order to read them you have to provide us with the pass phrases. Server testssl.klid.or.kr:443 (RSA) Enter pass phrase: <password> Ok: Pass Phrase Dialog successful../apachectl startssl: httpd started Apache 서버에서 SSL 을사용하기위한시작명령어인 startssl 을실행하면개인키의비밀번호를묻는데, 이비밀번호는이전의설치과정 개인키생성및 CSR 생성방법 중 2 개인키생성시입력한개인키비밀번호를입력하시면됩니다. 6 웹브라우저를통해 SSL 인증서정상적용유무확인 -웹브라우저의주소에 htps:// 도메인 ( 예 :htps://www.gpki.go.kr) 이라입력후엔터를치면주소입력란옆에자물쇠모양이나타나는것을볼수가있으며, 자물쇠를클릭하면 신뢰할수있는사이트 라고나타나는것을확인할수가있다. - 64 -
마. 웹사이트적용 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 바. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 아파치의경우개인키가파일형태로저장되므로추출할필요가없습니다. - 생성된개인키파일 (key.pem) 을확인합니다. - 65 -
2.4.WebToB 서버에서보안서버구축하기 가. 개인키생성및 CSR 생성방법 WebtoB 의경우개인키와 CSR 을동시에생성되기때문에개인키및 CSR 을분리해서 txt 파일로저장해야합니다. 1 Default 설정확인서버에접근하여 wbssl.cnf 파일을확인합니다. $ cd $WEBTOBDIR/ssl $ vi wbssl.cnf 2 해당항목확인 -다른부분은수정하지마시고 [req_distinguished_name] 만확인합니다. *countryname_default 가 KR 인지확인합니다. *organizationname_default 가 GovernmentofKorea 인지확인합니다. *organizationunitname_default 가 GroupofServer 인지확인합니다. * 그외의 stateorprovincename 나 localityname 은 default 항목이설정되어있으면주석처리 (#) 하시기바랍니다. - 66 -
-wbssl.cnf 파일내용 [ req ] default_bits = 2048 // 1024로된걸 2048로수정... 그외내용생략 [ req_distinguished_name ] countryname = Country Name (2 letter code) countryname_default = KR countryname_min = 2 countryname_max = 2 stateorprovincename = State or Province Name (full name) #stateorprovincename_default = Some-State localityname = Locality Name (eg, city) 0.organizationName 0.organizationName_default = Organization Name (eg, company) = Government of Korea organizationalunitname = Organizational Unit Name (eg, section) organizationalunitname_default = Group of Server #emailaddress = Email Address #emailaddress_max = 40 #SET-ex3 = SET extension number3 default 값이위와다른경우에수정하고저장합니다. - 67 -
3 CSR 정보입력 WebtoB 웹서버의홈폴더아래에 sl 폴더에 'CA 명령어를실행하여 CSR 을생성합니다. ⅰ.$WEBTOBDIR/ssl 디렉토리에서 CSR 을생성합니다. $ CA -newreq Using configuration from path/to/ssl/wbssl.cnf Generating a 2048 bit RSA Private key Enter PEM pass phase : <password> verifying password - Enter PEM pass phase : <password> Country Name <2 letter code> [KR] : KR States or province Name <full name> [] : Locality Name <eg. city> [] : Organization Name <eg. company> [Government of Korea] : Government of Korea Organization Unit Name <eg. section> [Group of Server] : Group of Server Common Name <eg. Your name or your server's hostname> [] : <cn name : domain> Email Address [] : A challenge password [] : An optional company name [] : Request <and Private key> is in newreq.pem CA 의옵션 :-newreq CSR 을생성하는옵션 -newcert 데모인증서를만드는옵션입력시 [] 안의내용이 default 값입니다. 확인후입력합니다. <pasword> WebtoB 가동시에물어보는암호입니다. 암호문을잊어버리면인증서를사용할수없으므로주의하세요. <cn name:domain> 기본적으로서비스하는도메인명을입력한다. default 값 ([] 안의값 ) 에다른값이설정이되어있는경우는입력하지않고 Enter 만치더라도의도하지않은값이들어갑니다. 이것은 wbssl.cnf 파일에 default 값이설정이되어있기때문입니다. 확인하시고 wbssl.cnf 를변경하시기바랍니다.( 주석처리 ) - 68 -
4 개인키및 CSR 추출 -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,5B92FCA937EF89C3 4Xi4iNulShWlb41/Y5/y5nesCltEnf1kBxOhsp7JTJFxwu+Tk0ly18gLNf7PEswT... 1c/mn/PObxrNmvH0Rb6HObQyZE/X3A7dzRLUm0owfegREyLdYL5S4g== -----END RSA PRIVATE KEY----- -----BEGIN CERTIFICATE REQUEST----- MIIByzCCATQCAQAwgYoxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDEOMAwG A1UEBxMFU2VvdWwxDTALBgNVBAoTBEtJQ0ExDDAKBgNVBAsTA0IDQzEbMBkGA1UE AxMSamNsZWUuc2lnbmdGUuY29tMSEwHwYJKoZlhvcNAQkBFhJqY2xlZUBzaWdu... JSHC5uBNGVCOoUOEtSEkUfTi7a5Nt+2/4R/dy+z/SQ== -----END CERTIFICATE REQUEST----- 생성된 <newreq.pem> 에는 ( 암호화된 ) 개인키와 CSR 의정보가함께포함되어있습니다. 위쪽이개인키이고아래쪽이 CSR 입니다. 위개인키 (key 값 ) 및아래부분 (CSR 값 ) 을복사하셔서따로 txt 파일로저장합니다. 개인키파일은꼭보관하셔야합니다. -개인키(PRIVATEKEY) 정보는다음과같습니다. -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,5B92FCA937EF89C3 4Xi4iNulShWlb41/Y5/y5nesCltEnf1kBxOhsp7JTJFxwu+Tk0ly18gLNf7PEswT... 1c/mn/PObxrNmvH0Rb6HObQyZE/X3A7dzRLUm0owfegREyLdYL5S4g== -----END RSA PRIVATE KEY----- 개인키 (PRIVATEKEY) 내용을파일 (*.txt) 로저장합니다. 예 )key.txt 로저장 - 69 -
-CSR 정보는다음과같습니다. -----BEGIN CERTIFICATE REQUEST----- MIIByzCCATQCAQAwgYoxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVTZW91bDEOMAwG A1UEBxMFU2VvdWwxDTALBgNVBAoTBEtJQ0ExDDAKBgNVBAsTA0IDQzEbMBkGA1UE AxMSamNsZWUuc2lnbmdGUuY29tMSEwHwYJKoZlhvcNAQkBFhJqY2xlZUBzaWdu... JSHC5uBNGVCOoUOEtSEkUfTi7a5Nt+2/4R/dy+z/SQ== -----END CERTIFICATE REQUEST----- CSR 내용을텍스트 (Text) 파일 (*.txt) 로저장합니다. 예 )csr.txt 로저장 5 SSL 인증서발급 행정전자서명인증관리센터홈페이지 (www.gpki.go.kr) 에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 70 -
나. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\class1 디렉터리에해당 <cn name:domain>.p7b 파일이있는지확인합니다.( 예 :www.gpki.go.kr.p7b) -----BEGIN PKCS7----- MIILiQYJKoZIhvcNAQcCoIILejCCC3YCAQExADALBgkqhkiG9w0BBwGgggteMIID HTCCAgWgAwIBAgIQSAcIRgAuPO7tcwjaHEc8+jANBgkqhkiG9w0BAQUFADBQMQsw... 8wQdPqvThnU/td3t6IrVG983r3rrP69GN/qspiJpBIryB019rK0cUeYFK95jaL3E 0lqDgGfm9I5cuWcJ8eaPfU/AlZYkXCss4jJrMQA= -----END PKCS7----- 2 pkcs#7 pem 변환프로그램설치 pkcs#7=>pem 변환해주는프로그램을설치합니다.Opensl 프로그램으로 변환할수있습니다. 3 pkcs#7 pem 변환 openssl pkcs7 -in <p7b filename> -out <pem filename> -print_certs -text 여기서 <p7bfilename> 은발급받은인증서의이름및전체경로이며, <pem filename> 은변환되어저장될 pem 파일이름및전체경로를입력한다. 예 )opensslpkcs7-in www.gpki.go.kr.p7b-outcert.pem -print_cert-text 4 CA Chain 인증서생성 -<pem filename> 파일을편집기로열어서아래와같은내용들을복사하여 각각의파일을생성합니다. 파일중에서 RootCA 와 'CA131000001' 이들어있는부분의 Certificate: 에서 -END CERTIFICATE - 까지부분을전부복사하여 <cachain.pem> 파일을생성합니다. - 71 -
예 )<cachain.pem> 생성예제 Certificate: Data: Version: 3 (0x2) Serial Number: 4a:65:5e:f5:03:d1:e7:b0:c6:e4:e5:db:e0:d0:52:e5 Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=CA131000001 ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=Group of Server, CN=www.gpki..go.kr ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIDIzCCAgugAwIBAgIQSmVe9QPR57DG5OXb4NBS5TANBgkqhkiG9w0BAQUFADBQ ~ ~ ~ ~ ~ kkfucm04kgumn3q3ouyal98bym3jkegqkrwvicn6rgfln71gbnop -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 3c:c2:81:4b:00:e7:52:4d:9b:aa:47:b7:e1:61:f5:0e Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIDmTCCAoGgAwIBAgIQPMKBSwDnUk2bqke34WH1DjANBgkqhkiG9w0BAQUFADBM ~ ~ ~ ~ ~ usuqz4oqbno2kxt8pg== -----END CERTIFICATE----- Certificate: Data: Version: 3 (0x2) Serial Number: 48:15:99:5d:01:ea:17:36:01:73:5b:d1:16:f8:25:5c Signature Algorithm: sha1withrsaencryption Issuer: C=KR, O=Government of Korea, OU=GPKI, CN=Root CA ~ ~ ~ ~ ~ Subject: C=KR, O=Government of Korea, OU=GPKI, CN=CA131000001 ~ ~ ~ ~ ~ -----BEGIN CERTIFICATE----- MIIEnDCCA4SgAwIBAgIQSBWZXQHqFzYBc1vRFvglXDANBgkqhkiG9w0BAQUFADBM ~ ~ ~ ~ ~ 498KpPx9vfeB3R3h130seTSGa4JXgngrKoaCbTstU9U= -----END CERTIFICATE----- Line 72 cachain.pem cert.pem - 72 -
5 Config 설정 -.$WEBTOBDIR/config 이동하여 htpd.m 파일을수정합니다. -SSL 은 443 포트를사용하기때문에버추얼호스트노드를하나추가해야합니다. 아래는 SSL 을적용시킨 config 파일예입니다. *DOMAIN webtob1 *NODE gpki WEBTOBDIR="/app/tmax/webtob", SHMKEY = 54000, DOCROOT="/app/tmax/webapps", PORT = "80,443", HTH = 1, LOGGING = "log1", ERRORLOG = "log2", JsvPort = 9900 *VHOST vgpki DOCROOT="/app/tmax/webtob/gpki", PORT = "443", NODENAME = "gpki", HOSTNAME = "www.gpki.go.kr", LOGGING = "log3", ERRORLOG = "log4", SSLFLAG = Y, SSLNAME = "ssl1" *SVRGROUP htmlg jsvg NODENAME = "gpki", SVRTYPE = HTML NODENAME = "gpki", SVRTYPE = JSV... *LOGGING log1 Format = "DEFAULT", FileName = "/app/tmax/webtob/log/access.log" log2 Format = "ERROR", FileName = "/app/tmax/webtob/log/error.log" log3 Format = "DEFAULT", FileName = "/app/tmax/webtob/gpki/log/access_ssl.log" log4 Format = "ERROR", FileName = "/app/tmax/webtob/gpki/log/error_ssl.log" *SSL ssl1 CertificateFile = "<pem filename>", CertificateKeyFile = "<key filename>", CertificateChainFile = "<cachain filename>" 빨간색으로표시된항목의파란색내용을수정또는, 추가하셔야합니다. - 73 -
<pem filename> 은발급받은인증서파일의경로및파일명을입력합니다. <keyfilename> 은 CSR 파일처음생성시생성한 key 파일을그대로사용해야합니다. <cachain.pem> 은 <pem filename> 에서복사해서생성한파일의경로및파일명을입력합니다. 6 Config 컴파일 수정된 htp.m 파일 ( 실제환경파일 ) 을웹서버에서사용할수있도록 wscfl 명령어를사용하여컴파일하는과정이필요합니다. $ wscfl -i http.m current configuration : Number of client handler(hth) =1 Supported maximum user per node = 975 Supported maxinum user per handler = 975 CFL is done successfully for mode(iistest(iistest)) 예 )wscfl ihtp.m 7 웹서버구동 wsboot 명령어를사용하여서버를구동하고, 인증서생성과정에서입력했던개인키비밀번호를입력하시면됩니다. $ wsboot WSBOOT for node(iistest) is starting : Welcome to WebtoB demo system : is will expire 2011/08/10 Today : 2011/08/10] WSBOOT : WSM is starting : 08/10/11 15:20:00 WSBOOT : HTL is starting : 08/10/11 15:20:00 WSBOOT : HTH is starting : 08/10/11 15:20:00 Current WeboB configuration : Number of client handler(hth) =1 Supported maximum user per node = 975 Supported maxinum user per handler = 975 Some of your private key files are encrypted for security reasons. In order to read them you have to provide us with the pass phrases. Server IISTest.gpki.go.kr:443 (RSA) Enter pass phrase : <password> 8 이제 SSL 인증서의설치가완료되었습니다. - 74 -
다. 웹사이트적용 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 라. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 WebtoB 의경우개인키가파일형태로저장되므로추출할필요가없습니다. -csr 파일생성시생성되는 newreq.pem 파일의내용은개인키와 csr 두개의블록으로 구성됩니다. 아래와같이첫번째블록의내용을확인후해당내용을파일 (key.txt) 로 저장합니다. -KEY 정보는다음과같습니다. -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,5B92FCA937EF89C3 4Xi4iNulShWlb41/Y5/y5nesCltEnf1kBxOhsp7JTJFxwu+Tk0ly18gLNf7PEswT... 1c/mn/PObxrNmvH0Rb6HObQyZE/X3A7dzRLUm0owfegREyLdYL5S4g== -----END RSA PRIVATE KEY----- - 75 -
2.5.iPlanet 서버에서보안서버구축하기 가. 개인키생성및 CSR 생성방법 1 서버관리화면에서서버선택 서버관리화면의콤보박스에서보안서버를구축하고자하는웹서버를선택 하고 Manage 버튼을누릅니다. - 76 -
2 CSR 생성 SecurityTab 을누르고왼쪽메뉴에서 CreateDatabase 를선택하여 CSR 을생 성시이용되는웹인스턴스를생성하기위해패스워드를입력합니다. iplanet 웹서버가설치된디렉토리밑의 certutil.exe 파일이있는경로로 이동합니다.( 윈도우 OS 에 iplanet 을 default 로설치했을경우 certutil 의경로는 C:\Sun\WebServer6.1\bin\htps\admin\bin 입니다.) 아래의명령을서버에맞게조합해서실행합니다. certutil -R -s "CN=[ 도메인명 ],OU=Group of Server,O=Government of Korea,C=KR" -a -o [CSR이저장될위치 ] -k rsa -g 2048 -d [iplanet 웹서버가설치된경로밑의 alias 디렉토리 ] -P [ 웹인스턴스명-] OU,O,C 값은고정값입니다. 수정하거나하실필요없이가이드그대로하시면됩니다. 예 )certutil-r -s"cn=www.domain.com,ou=group ofserver, O=GovernmentofKorea,C=KR"-a-oc:\csr.csr-krsa-g2048 -d c:\sun\webserver6.1\alias-p htps-test1-498db9821efb4d4-3 SSL 인증서발급 행정전자서명인증관리센터홈페이지 (www.gpki.go.kr) 에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 77 -
나. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\class1 디렉토리에해당 <cnname:domain>.p7b 파일이있는지확인합니다.( 예 : www.gpki.go.kr.p7b)( 와일드카드 SSL 인증서일경우는 wildcard.domain.p7b 로생성됨.) -----BEGIN PKCS7----- MIILiQYJKoZIhvcNAQcCoIILejCCC3YCAQExADALBgkqhkiG9w0BBwGgggteMIID HTCCAgWgAwIBAgIQSAcIRgAuPO7tcwjaHEc8+jANBgkqhkiG9w0BAQUFADBQMQsw... 8wQdPqvThnU/td3t6IrVG983r3rrP69GN/qspiJpBIryB019rK0cUeYFK95jaL3E 0lqDgGfm9I5cuWcJ8eaPfU/AlZYkXCss4jJrMQA= -----END PKCS7----- 2 pkcs#7 cer 변환 - 인증서파일 <p7bfilename> 을윈도우환경에서더블클릭하여파일을 open 합 니다. 아래와같은창이열립니다. - 78 -
- 인증서파일 ( 예 :CA131000001) 을선택후마우스우측버튼을클릭하여 " 모든작업 (K)- 내보내기 " 를클릭합니다. - 인증서를 Base64 로인코딩된 X.509(.CER) 을선택하여저장합니다. 3 개인증서를모두 Base64 로인코딩된 X.509(.CER) 으로변환하여저장합 니다.(2 번과정반복 ) - 79 -
3 ServerCertificate 를 iplanet 웹서버에설치 - 관리자화면에서 Security InstalaCertificate 를선택한후, 아래화면에서 표시된부분의정보를채워넣습니다. "RootCA" 인증서를변환한파일 (2 번 ) 을편집기로열어서안의내용을복사 하여위내용을채워넣습니다. "CA131000001" 인증서를변환한파일 (2 번 ) 을편집기로열어서안의내용을 복사하여위내용을채워넣습니다. - 80 -
<cn name:domain> 인증서를변환한파일을텍스트로열어서안의내용을 복사하여위내용을채워넣습니다. ( 와일드카드 SSL 인증서일경우는 *.domain 으로입력합니다.) 4 iplanet 웹서버를재시작 (ServerO f ServerOn) - 81 -
5 iplanet 웹서버설정변경 iplanet 웹서버에인증서설치가완료됐다면, 서버에서 443 포트에대하여대기 (Listen) 할수있도록설정을변경해야합니다. 웹서버관리자화면에서 Preference Add Listen Socket 을선택하여아래와같이정보를입력한후 OK 를선택합니다. 입력해야할정보는다음과같습니다.( 그림의밑줄참고 ) - ID : 이전 80포트에대한 ID를참고하여 SSL 포트를위한 ID를부여 - IP : 0.0.0.0 / any 로설정 - Port : 443, SSL 포트는 443 이디폴트포트이며, 서버관리자와상의하여다른포트를사용하도록설정변경도가능 - Servername : 웹서버명 - Security : On 선택 - Default VS : 디폴트로사용할 Virtual Server url을입력 - 82 -
6 iplanet 웹서버설정추가변경 SSL 에대한 443Listen 기능을입력한후, 추가로설정해야할부분이있다면동일화면에서 EditListen Sockets 를선택한후 A tributes 링크를클릭하여수정합니다. 이화면에서 SSL2,SSL3/TLS 에대한설정을변경하거나 iplanet 기본설정값으로리셋할수있습니다. 7 이제 SSL 인증서의설치가완료되었습니다. - 83 -
다. 웹사이트적용 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 라. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 -iplanet(sonone) 의경우인증서정보가 server_root/alias 에 cert8.db,key3.db 파일안에저장됩니다. 해당파일에서개인키를분리하기위해서는 pk12util.exe 라는프로그램을실행하여,p12 형식으로인증서분리후 OpenSSL 프로그램으로개인키를분리할수있습니다. 1 관리자페이지에접속하여, 해당서버선택후 Manage 버튼을클릭합니다. - 84 -
2 Security-> ManageCertificates 버튼클릭후해당서버의 CertificateName 을 확인합니다. 3 프로그램실행전선행사항은 PATH 설정입니다.pk12util 프로그램검색후 해당디렉토리를 PATH 에설정해주십시오. ex)path %server_root%\bin\htps\admin\bin; 4 server_root/alias 밑의 database 파일명칭을확인해주십시오. 5 시작 -> 실행에서 command 를입력하고확인버튼을클릭하십시오. pk12util 프로그램이위치한디렉토리로이동후아래의명령어를실행합니다. $ pk12util -o certpk12.p12 -n Server-Cert -d c:\job\webserver6.1\alias -P https-mhlee-mhlee- Enter Password or Pin for "NSS Certificate DB" : Enter Password for PKCS12 file : Re-enter password : pk12util : PKCS12 EXPORT SUCCESSPUL - 85 -
6 패스워드확인메시지가나오면아래의창에서입력했던패스워드를입력해 주십시오. 패스워드 3 번확인후해당파일이현재위치에생성됩니다. 주의 )-P 옵션뒤의내용은 server_root/alias 에서확인한파일명에서각각 key3.db 를 제외한부분을입력해주셔야합니다. 7 실행디렉토리에서 certpk12.p12 파일의생성여부를확인합니다. 일단여기까지의 작업이 iplanet 의 db 파일에서 p12 형식으로인증서를내보내는작업입니다. 8 key 추출을하기위해 openssl/bin/ 디렉토리로이동후아래의명령어를실행 합니다. 패스워드는 pk12util 실행시의패스워드와동일합니다. $ openssl pkcs12 -in certpk12.p12 -nocerts -nodes -out certpk12.key Enter Import Password : MAC verified OK 9 생성된파일의생성여부와내용을확인합니다. 해당파일을열어보면아래와 같은내용으로확인됩니다. - 86 -
2.6.Tomcat 서버에서보안서버구축하기 Tomcat 에서는 java 의 keytool 프로그램을사용하여 KEY 값및 CSR 값을생성하여처리합니다.(htp://developers.sun.com/downloads/) 에서 javasdk 를다운받아설치합니다.Apache 서버또는, 그외다른웹서버와연동하여사용하는경우에는해당하는웹서버에 SSL 인증서를적용해야합니다.Tomcat 단독으로서비스를하는경우에아래내용을참고합니다. keystore 는 Private Key 와 Public Key 로사용되는인증서 (x.509) 가저장되는데이터베이스입니다. keytool 은 Private Key 와 Public Key 로사용되는인증서 (x.509) 가저장된 keystore 를관리하는툴입니다. keystorealiasname 항목 <alias name> <RootCA alias name> <CAChain alias name> 내용개인키서버인증서등록 Root CA 인증서등록 CA Chain 인증서등록 - 87 -
가. 개인키생성및 CSR 생성방법 1 Keystore 생성 -SSL 을구축하기위해서는 Keystore 를만들어야한다.Keystore 를만들기위해 keytool 프로그램을이용하여아래와같이실행한다. $ keytool -genkey -alias <alias name> -keyalg RSA -dname "CN=<CN name : domain>, OU=Group of Server, O=Government of Korea, C=KR" -keystore <keystore filename> -keysize 2048 keystore 암호를입력하십시오 : <password1> (keystore 암호와같은경우 Enter을누르십시오 ): <password2> <aliasname> 은 Key 값및인증서를저장할저장소이름입니다. <CN name:domain> 은인증관리센터에등록된 CN 값으로입력합니다. 인증서발급안내 E-mail 및인증관리센터에확인하십시오. <pasword1> 는담당자가원하는비밀번호로설정하여입력하면 Keystore 가생성됩니다. <pasword2> 는 Keystore 와다르게설정하고싶으면다른비밀번호를입력하고, Keystore 와같이설정하고싶으면 Enter 버튼를누릅니다. <keystorefilename> 은 Keystore 가파일형태로저장될경로및파일이름입니다. 예 ) $ keytool -genkey -alias CERT -keyalg RSA -dname "CN=www.gpki.go.kr, OU=Group of Server, O=Government of Korea, C=KR" -keystore gpkikeystore -keysize 2048 keystore 암호를입력하십시오 : <password1> (keystore 암호와같은경우 Enter을누르십시오 ): <password2> - 88 -
2 CSR(CertificateSigningRequest) 생성 -SSL 인증서를발급받기위해서는 CSR 데이터가필요하다. 이를위해서 keytool 프로그램을이용하여아래와같이실행한다. $ keytool -certreq -alias <alias name> -keystore <keystore filename> keystore 암호를입력하십시오 : <password1> -----BEGIN NEW CERTIFICATE REQUEST----- MIIBnjCCAQcCAQAwXjELMAkGA1UEBhMCS1IxHDAaBgNVBAoTE0dvdmVybm1lbnQgb2YgS 29yZWEx...... +5gvzlZMQHfViFjf0fe1tb4bZA== -----END NEW CERTIFICATE REQUEST----- 1 Keystore 생성시입력한 <aliasname> 과 <pasword1>,<keystorefilename> 를입력합니다. 위화면에서 -BEGIN NEW CERTIFICATE REQUEST - 부터 -END NEW CERTIFICATEREQUEST - 까지를복사하여텍스트파일로저장합니다. 예 )keytool-certreq-aliascert-keystoregpkikeystore 3 SSL 인증서발급 행정전자서명인증관리센터홈페이지 (www.gpki.go.kr) 에서발급하면됩니다. < 붙임 1SSL 인증서발급절차참고 > - 89 -
나. 인증서설치방법 1 발급받은인증서를확인합니다. -C:\GPKI\certificate\class1 디렉터리에해당 <cnname:domain>.p7b 파일이있는지확인합니다.( 예 :www.gpki.go.kr.p7b) 와일드카드 SSL 인증서일경우는 wildcard.domain.p7b 로생성됨. -----BEGIN PKCS7----- MIILiQYJKoZIhvcNAQcCoIILejCCC3YCAQExADALBgkqhkiG9w0BBwGgggteMIID... 0lqDgGfm9I5cuWcJ8eaPfU/AlZYkXCss4jJrMQA= -----END PKCS7----- 2 pkcs#7 cer 변환 - 인증서파일 <p7bfilename> 을윈도우환경에서더블클릭하여파일을 open 합 니다. 아래와같은창이열립니다. - 90 -
- 인증서를선택 ( 예 :CA131000001) 후마우스우측버튼을클릭하여 " 모든작업 (K)- 내보내기 " 를클릭합니다. - DER 로인코딩된 X.509 바이너리 (.CER) 을선택하여저장합니다. RootCA 및 CAChain 인증서를모두 DER 로인코딩된 X.509 바이너리 (.CER) 으로변환하여 RootCA 인증서는 ca.cer 로 CAChain 인증서는 cachain.cer 로저장합니다. - 91 -
3 RootCA 인증서 Keystore 에등록하기 -파일로저장한 RootCA 인증서를 Keystore 에저장해야사용할수있습니다. 이를위해서 Keytool 프로그램을이용하여아래와같이실행한다. $ keytool -import -alias <RootCA alias name> -trustcacerts -file <RootCA fillename> -keystore <keystore filename> keystore 암호를입력하십시오 : <password1> 소유자 : CN=Root CA, OU=GPKI, O=Government of Korea, C=KR 발급자 : CN=Root CA, OU=GPKI, O=Government of Korea, C=KR 일련번호 : 3cc2814b00e7524d9baa47b7e161f50e 개시일 : Sun Apr 21 09:07:23 GMT 2002 만료일 : Sat Apr 21 09:07:23 GMT 2012 인증서지문 : MD5: C7:BD:11:D6:91:8A:35:82:C5:36:66:01:7C:6F:47:79 SHA1: 63:4C:3B:02:30:CF:1B:78:B4:56:9F:EC:F2:C0:4A:86:52:EF:EF:0E 이인증서를신뢰하십니까?[ 아니오 ]: y 인증이 keystore에추가되었습니다. <RootCA aliasname> 은 RootCA 인증서를저장할저장소이름입니다. <RootCA filename> 은 RootCA 인증서파일이존재하는경로및파일이름입니다. " 가. 개인키생성및 CSR 생성방법 " 에서입력한 <password1> 와 <keystore filename> 를입력합니다. 이인증서를신뢰하십니까?[ 아니오 ] 라고물어오면 y를입력합니다. 예 )keytool-import-aliasrootca-trustcacerts-fileca.cer-keystoregpkistore 4 CAChain 인증서 Keystore 에등록하기 -파일로저장한 CA 인증서를 Keystore 에저장해야사용할수있다. 이를위해서 keytool 프로그램을이용하여아래와같이실행한다. $ keytool -import -alias <CAChain alias name> -trustcacerts -file <CAChain fillename> -keystore <keystore filename> keystore 암호를입력하십시오 : <password1> 인증이 keystore에추가되었습니다. <CAChainaliasname> 은 CA 인증서를저장할저장소이름입니다. <CAChainfilename> 은 CA 인증서파일이존재하는경로및파일이름입니다. " 가. 개인키생성및 CSR 생성방법 " 에서입력한 <password1> 와 <keystore filename> 를입력합니다. 예 )keytool-import-aliascachain.-trustcacerts-filecachain.cer-keystoregpkistore - 92 -
5 Server 인증서 Keystore 에등록하기 -파일로저장한서버용인증서를 Keystore 에저장해야사용할수있다. 이를위해서 Keytool 프로그램을이용하여아래와같이실행한다. $ keytool -import -alias <alias name> -trustcacerts -file < 도메인인증서 > -keystore <keystore filename> keystore 암호를입력하십시오 : <password1> 인증서회신이 keystore에설치되었습니다. < 도메인인증서 > 는발급받은서버인증서파일이존재하는경로및파일이름입니다.( 와일드카드 SSL 인증서일경우는 *.domain 으로입력합니다.) " 가. 개인키생성및 CSR 생성방법 " 에서입력한 <password1> 와 <keystore filename>,<aliasname> 을입력합니다. 예 ) keytool -import -alias CERT -trustcacerts -file www.gpki.go.kr.cer -keystoregpkistore 6 Config 설정 -$TOMCAT_HOME/conf/server.xml 파일에 Connector 를추가또는, 수정하여보안웹페이지를사용할수있도록해야합니다. - <Connectorport="443" 으로시작하는 Connector 를찾아주석처리되어있으면아래와같이수정하고, 없으면아래내용을추가합니다. <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" disableuploadtimeout="true" acceptcount="100" debug="0" scheme="https" secure="true" keystorepass="<password1>" keystorefile="<keystore filename>" clientauth="false" sslprotocol="tls" /> " 가. 개인키생성및 CSR 생성방법 " 에서입력한 <pasword1> 를입력합니다. <keystorefilename> 은 Keystore 가파일형태로저장될경로및파일이름입니다. port="443" 은 htps 프로토콜을이용하는기본포트입니다.Thread 수량은환경에따라서적당히설정하여주시면됩니다. sslprotocol="tls" 값을 sslprotocol="ssl" 로변경하여사용해도합니다.( 익스플로러 6.X 버전을위해 ) - 93 -
7 Tomcat 서버재부팅 -Tomcat 서버를재부팅합니다. 8 웹브라우저를통해 SSL 인증서정상적용유무확인 -웹브라우저의주소에 htps:// 도메인 ( 예 :htps://www.gpki.go.kr) 이라입력후엔터를치면주소입력란옆에자물쇠모양이나타나는것을볼수있으며, 자물쇠를클릭하면 신뢰할수있는사이트 라고나타나는것을확인할수있습니다. 다. 웹사이트적용 웹사이트이용시암호화통신이가능하도록웹프로그램을수정합니다. 구축가이드 V 장을참조 라. SSL 인증서개인키추출방법 웹방화벽및개인정보필터링에적용시필요 1 tomcat 의경우 java 프로그램으로개인키를추출할수있습니다. < exportprivatekey.zip 을다운로드받습니다. - 94 -
2 아래의 exportprivatekey.zip 을실행합니다. 파라미터는각각아래와같습니다. <keystore filename> - keystore 파일명 <alias name> - Private key 가들어있는저장소 <password> - keystore 비밀번호 <key filename> - 생성할개인키파일명 $ java exportprivatekey.zip <keystore filename> JKS <password> <alias name> <key filename> 예 )javaexportprivatekey.zipgpkikeystorejks 비밀번호 CERT gpki.key 3 명령어실행하면아래와같이파일이생성됩니다. 2006/04/08 오후 03:29 <DIR>. 2006/04/08 오후 03:29 <DIR>.. 2006/04/08 오후 03:29 902 gpki.key 4 파일의내용은아래와같습니다. - 95 -
Ⅲ 이중화된웹서버 SSL 적용방법 이중화서버나와일드카드인증서를사용하여여러개의서버에적용하는방법입니다. 3.1. IS 서버의경우 개인키추출시생성한확장자 pfx 파일을적용할서버로업로드합니다. mmc 를실행하여인증서항목을추가합니다. -개인의인증서항목에서오른쪽마우스를클릭하여가져오기를선택합니다. - 다음을선택합니다. - 96 -
- 가져올파일을지정합니다.( 붙임 3 에서내보낸확장자 pfx 파일 ) - 개인키암호를입력합니다. - 기본선택후다음을선택합니다. - 97 -
- 마침을선택합니다. - IS 관리를실행합니다. 웹사이트등록정보에서디렉터리보안 > 서버인증서를선택합니다. - 기존인증서를할당합니다 를선택합니다. - 98 -
- 적용할정보를선택한뒤다음을선택합니다. - 정보가정확한지확인한후다음을선택합니다. - 가져오기를완료합니다. - 99 -
- 홈페이지에접속하여적용결과를확인합니다. - 100 -
3.2.Apache 서버의경우 1 설정파일의내용을확인하고해당경로의인증서파일 3 개와개인키파일 1 개를신 규서버에업로드합니다. 2 신규서버에 mod_ssl 설정여부와 SSL 적용포트오픈여부를확인합니다. 3 환경설정파일 (htpd.conf 또는 ssl.conf) 을수정합니다. - 환경설정파일중 mod_ssl.so 부분이있으면 mod_ssl 사용을위해주석을 해제합니다. LoadModule ssl_module modules/mod_ssl.so - 기존 htp<virtualhostwww.gpki.go.kr:80> 항목을복사하여붙여넣고 SSL 관련 4 개항목을추가한다음각항목에맞는파일의경로를입력합니다. NameVirtualHost * 이름기반가상호스트사용 <VirtualHost *:80> ServerAdmin admin@gpki.go.kr DocumentRoot "/home/gpki/www/" ServerName www.gpki.go.kr ServerAlias gpki.go.kr ErrorLog /home/gpki/error_log AccessLog /home/gpki/access_log </VirtualHost> 홈디렉토리설정 도메인설정 <VirtualHost *:443> ServerAdmin admin@gpki.go.kr DocumentRoot "/home/gpki/www/" ServerName www.gpki.go.kr ServerAlias gpki.go.kr ErrorLog /home/gpki/ssl_error_log AccessLog /home/gpki/ssl_access_log SSLCertificateKeyFile "<key filename>" SSLCertificateFile "<pem filename>" SSLCertificateChainFile "<cachain.pem>" SSLCACertificateFile "<ca.pem>" </VirtualHost> 홈디렉토리설정 도메인설정 key.pem cert.pem cachain.pem ca.pem 4 config 파일의 SSL 설정부분을수정한후 Aapache 서비스를재구동합니다 - 101 -
3.3.WebToB 서버의경우 1 인증서파일 2 개와 Key 파일 1 개를추가설치서버로업로드합니다. 2 파일은.$WEBTOBDIR/config 이동하여 htpd.m 파일에서확인합니다. *DOMAIN webtob1 *NODE gpki WEBTOBDIR="/app/tmax/webtob", SHMKEY = 54000, DOCROOT="/app/tmax/webapps", PORT = "80,443", HTH = 1, LOGGING = "log1", ERRORLOG = "log2", JsvPort = 9900 *VHOST vgpki DOCROOT="/app/tmax/webtob/gpki", PORT = "443", NODENAME = "gpki", HOSTNAME = "www.gpki.go.kr", LOGGING = "log3", ERRORLOG = "log4", SSLFLAG = Y, SSLNAME = "ssl1" *SVRGROUP htmlg jsvg NODENAME = "gpki", SVRTYPE = HTML NODENAME = "gpki", SVRTYPE = JSV... *LOGGING log1 Format = "DEFAULT", FileName = "/app/tmax/webtob/log/access.log" log2 Format = "ERROR", FileName = "/app/tmax/webtob/log/error.log" log3 Format = "DEFAULT", FileName = "/app/tmax/webtob/gpki/log/access_ssl.log" log4 Format = "ERROR", FileName = "/app/tmax/webtob/gpki/log/error_ssl.log" *SSL ssl1 CertificateFile = "<pem filename>", CertificateKeyFile = "<key filename>", CertificateChainFile = "<cachain filename>" 3 Config 컴파일수정된 htp.m 파일 ( 실제환경파일 ) 을컴파일합니다. 예 )wscfl ihtp.m - 102 -
4 웹서버구동 wsboot 명령어를사용하여서버를구동하고,CSR 생성과정에서입력했던개인키비밀번호입력합니다. 5 적용결과를확인합니다. - 103 -
3.4.iPlanet 서버의경우 1 server_root/alias 밑의 database 파일을적용할서버에업로드합니다. 2 적용할서버2에서 csr 파일을생성합니다. 3 2에서생성한 db 파일 2개를백업한뒤 1에서업로드한파일을같은경로에덮어쓰기합니다. 4 매뉴얼의나. 인증서설치방법의 3번부터진행합니다. 5 적용결과를확인합니다. - 104 -
3.5.Tomcat 서버의경우 가. 적용된서버에서 keystore 파일을적용할서버로업로드합니다. 나.config 파일을수정합니다.(server.xml) <Connector port="443" protocol="http/1.1" SSLEnabled="true" maxthreads="150" minsparethreads="25" maxsparethreads="75" enablelookups="false" disableuploadtimeout="true" acceptcount="100" debug="0" scheme="https" secure="true" keystorepass="<password1>" keystorefile="<keystore filename>" clientauth="false" sslprotocol="tls" /> 다.tomcat 을재구동합니다. 라. 적용결과를확인합니다. - 105 -
Ⅳ SSL 적용여부확인방법 4.1. 보안서버구축여부확인방법 HTTPS 로접속후브라우저상단및하단을눌러 인증서보기 를클릭합니다. - 106 -
4.2. 보안서버적용전후보안통신비교 HTTP 연결과비교하면 HTTPS 는암호화통신을함을알수있습니다. 웹사이트접속후 마우스오른쪽클릭 > 속성 하면다음과같은자세한내용을볼수있습니다. - 107 -
Ⅴ 웹페이지 SSL 구현방법 가. 웹사이트구성에맞게웹프로그램소스를수정하여암호화통신기능이정상동작되도록구성합니다. 나. 암호화통신을하기위해서보안프로토콜을호출하는방법은 OS 나 Program 언어를가리지않고모두동일합니다. 그이유는암호화통신을하기위해적용하는부분이특정 OS 나특정 Program 언어에의존하지않는, 모두가공통으로사용하는 HTML 언어이기때문입니다. 다. 보안경고 암호화가적용된사이트를방문해보면, < 그림 > 과같은경고창을만나게되는경우가있습니다. 이경고창이뜨는것은암호화통신을유지하기위해서는웹페이지내의모든 URL의호출이 https:// 로이루어져야하나, http:// 즉평문통신을위한웹페이지 URL이포함되어있다는것을의미합니다. 이런경고창이발생하는웹페이지속성을보면처럼 암호화안됨 이라고해서마치암호화가되지않은평문상태로데이터가전송되어지는것처럼생각되지만웹페이지간전송되는데이터를볼수있는 third-parth 툴을이용해서확인해보면, 암호화통신이이루어지고있다는것을알수있습니다. 경고창이발생하게되면, 상세한내용을모르고웹사이트에접속하는사용자들에게보안이되고있지않다는불신을줄수도있고, 또한계속적인경고창으로인해서불편해할수있으므로가급적발생하지않도록웹페이지내의모든 URL을 https:// 로바꿔주는것이좋습니다. 만일절대경로로호출하는것이아니라, 상대경로로호출하는것이라면소스를변경하지않아도됩니다. 참고 : 절대경로와상대경로 - 108 -
절대경로호출과상대경로호출이란무엇인가절대경로란내가열어보고자혹은내가가고자하는웹페이지의경로를전체적으로기술하는것이고, 상대경로란내가현재있는위치를기준으로내가열어보고자혹은내가가고자하는웹페이지의경로를기술하는것을말합니다. 아래그림에서첫번째밑줄그은부분이상대경로로호출하는경우이고, 두번째밑줄그은부분이절대경로로호출하는경우입니다. 첫번째의경우에는 https 암호화통신을하더라도소스코드수정이필요없는부분이고, 두번째의경우에는 https 암호화통신을할경우호출 URL을 http에서 https로바꿔줘야합니다. 만일바꿔주지않을경우에는보안경고창이뜨게됩니다. 5.1. 전체페이지암호화하기 가. 링크를통해 HTTPS 호출하기 https 프로토콜을호출하여웹페이지전체에적용하는방법은그림만으로도곧바로 이해를할수있을정도로아주쉽습니다. 간단히호출하는프로토콜을 http:// 에서 https:// 로수정해주기만하면됩니다. - 109 -
나. 리다이렉션 (Redirection) 설정으로 HTTPS 호출하기 1) 웹서버에서리다이렉션하기 앞서설명을하였듯이, 암호화통신을위해서는 https 프로토콜을직접호출을해줘야합니다. 하지만, 웹페이지에접속하는사용자들은일일이 https 프로토콜을붙여서입력을하지않습니다. 대부분의경우가 www.test.co.kr 또는 test.co.kr 도메인을웹브라우저의주소창에입력하고접속하는경우가대부분일것입니다. 이때웹브라우저에그냥도메인주소만입력하면, 웹브라우저는해당도메인앞에 http:// 가붙은것으로판단하고평문통신을하도록합니다. 평문통신을하는경우라면문제가없지만, 암호화통신을해야할경우에는 https:// 를직접붙여서입력해야하므로여간불편해하지않습니다. 리다이렉션은현재접속한도메인이나혹은웹페이지를강제로다른주소나다른페이지로변경해줌으로써사용자들의불편함을감소시켜주고자연스럽게암호화통신을할수있도록해주는기능입니다. 2) meta tag로리다이렉션하기 또다른방법으로는 O/S나 Web Programming 언어의종류에상관없이모두공통적으로사용하는 HTML tag를이용한방법으로써, 어떤경우에서나적용이가능하기때문에가장많이이용되고있습니다. 3) java script로리다이렉션하기 위와같이 Meta 태그를이용하는경우, 1초정도깜빡하는현상이나타나기때문에종종Javascript를이용하기도합니다. Meta tag를이용한 html Redirection 방법과동일하게, 사용자들이익숙하게접속하는 http://www.test.com의 index 페이지에삽입해두면, 사용자들이불편하게 https:// 라는프로토콜을특별히지정해주지않아도, 보안을위해서암호화통신이적용된 https://www.test.com 으로리다이렉션해주게됩니다. - 110 -
5.2. 페이지별암호화하기 페이지별암호화는현재위치하고있는페이지에서다른페이지로이동할때, 보안을위해서암호화된전송을할것인지아니면평문전송할것인지를선택하여암호화하는것을말합니다. 부분적인페이지암호화를사용하는이유는암호화적용이필요없는부분까지암호화를하여서버의부하를증가시키는것을최대한줄일수있기때문입니다. 나. 다음은사이트의메뉴부분예입니다. 이중 서버관련강좌 & TIP 메뉴를클릭하여이동을하면 https가호출되어서버와클라이언트간의통신이암호화되어전송되고, Q&A 메뉴를클릭하여이동하면 http가호출되어서버와클라이언트간의통신이평문으로이루어지게할수있습니다. 5.3. 프레임별암호화하기 가. SSL을이용한보안포트 (443) 를웹페이지에적용하는방법을앞서소개하였습니다. 단순히 http를 https로만바꾸어주면보안포트 (prot) 를이용해서암호화통신을할수있습니다. 하지만, 프레임이삽입된웹페이지의경우에는약간적용하는방식이다르기때문에소개하고자합니다. 프레임이적용된페이지를이용하면 ' 암호화된페이지 ' 와 ' 비암호화된페이지 ' 를각각적용시킬수있습니다. 아래그림과같이웹페이지에프레임으로세개의페이지top.htm과 left.htm과 main.htm을불러오는소스코드가있을때소스코드의 URL을아래처럼변경하고웹브라우저에서 http와 https로각각호출했을때의결과를살펴보고자 - 111 -
합니다. 이와같이프레임을이용하면, 필요에따라서한페이지에서암호화가제공되는부분과암호화가제공되지않는부분이공존할수있도록구성할수있지만, 앞서서도이미언급했듯이아무리웹브라우저에서 https를이용해서호출을했어도프레임으로불러오는페이지가 http 주소를가지고있을경우에는암호화가되지않고정보의노출이발생할수있으므로, 프레임이사용되는페이지를암호화를위해서 https로호출하고자할때에는꼭확인을해보시기바랍니다. <HEAD> <TITLE> 프레임예제 </TITLE> </HEAD> <FRAMESET rows="100, *"> <FRAME name="topframe" src="top.htm"> <FRAMESET cols="120, *"> <FRAME name="leftframe" src="left.htm"> <FRAME name="mainframe" src="https://www.gpki.go.kr/main.htm"> </FRAMESET> <NOFRAMES> <BODY> <P> 이페이지를보려면, 프레임을볼수있는브라우저가필요합니다.</P> </BODY> </NOFRAMES> </FRAMESET> - 112 -
Ⅵ 보안서버구축시유의사항 1. 보안서버접속포트에대해침입 차단시스템등보안장비에서허용정책이필요합니다. 일반적으로웹서비스는 TCP80 포트를사용하지만, 보안서버는 TCP443 포트를사 용하므로이포트에대해서보안장비에서허용할수있도록해야합니다. 단, 하나의시스템에서여러웹서버가운영시 TCP443 포트이외에여러 포트가사용되므로사용포트에대한허용정책이추가로필요합니다. 2. 웹방화벽및웹컨텐츠필터링시스템이있는경우에는암호화된컨텐츠가평문으로복호화되어필터링될수있도록보안장비에서설정해주어야합니다. 보안서버는사용자웹브라우저와웹서버간에통신이암호화됩니다. 이때 웹방화벽이나개인정보필터링시스템도암호화된컨텐츠에대해서필터링하지 못하는문제가발생하므로, 이를위하여인증서에서개인키를추출하여웹방화벽 및개인정보필터링시스템에탑재함으로써컨텐츠를복호화하여필터링할수 있도록해주어야합니다. 3. 사용자가 HTTP로접속시 HTTPS로리다이렉션할수있도록해야합니다. 보안서버는 HTTPS 프로토콜을사용하므로사용자들이주소창에 htps:// 도 메인주소 로입력을해야만개인정보가암호화된통신이이용됩니다. 하지만, 사용자들이 htps:// 로입력하기가어려우므로 htp:// 도메인주소 htps:// 도메인주소 로리다이렉션할수있도록설정해주어야합니다. < 예제 > 첫구동되는페이지에아래의스크립트를설정해준다. <script language="javascript" type="text/javascript"> var currentaddress = location.href; if (currentaddress.indexof("http://") == 0) { currentaddress = currentaddress.replace("http://","https://"); location.href = currentaddress; } </script> - 113 -
Ⅶ 보안서버 FAQ 7.1. 제도관련 FAQ 가. 행정전자서명센터 (GPKI) 은어떤기관인가요? 행정안전부산하기관한국지역정보개발원 (KLID) 의소속기관으로 행정전자서명인증서 발급업무를맡고있습니다. -한국지역정보개발원 :www.klid.or.kr -행정전자서명센터 :www.gpki.go.kr 나. 보안서버는무엇이고, 구축하지않으면어떻게되나요? 보안서버란, 인터넷상에서개인정보를암호화하여송수신하는기능이구축된웹사이트를말하며, 하드웨어를설치하는것이아니라이미사용하고있는웹서버에인증서나암호화소프트웨어를설치하여암호통신이가능한것입니다. 개인정보보호법 [ 제73 조 ] 벌칙다음각호의어느하나에해당하는자는 2년이하의징역또는 1천만원이하의벌금에처한다. 다. 보안서버는구축의의무인가요? 관련법조항이뭔가요? 개인정보보호법 제 24 조 [ 고유식별정보의처리제한 ] 3항개인정보처리자가제1항각호에따라고유식별정보를처리하는경우에는그고유식별정보가분실ㆍ도난ㆍ유출ㆍ변조또는훼손되지아니하도록대통령령으로정하는바에따라암호화등안전성확보에필요한조치를하여야한다. 개인정보보호법 제 29 조 [ 안전조치의무 ] 개인정보처리자는개인정보가분실ㆍ도난ㆍ유출ㆍ변조또는훼손되지아니하도록내부관리계획수립ㆍ접속기록보관등대통령령으로정하는바에따라안전성확보에필요한기술적ㆍ관리적및물리적조치를하여야한다. 개인정보보호법 제 73 조 [ 벌칙 ] 다음각호의어느하나에해당하는자는 2년이하의징역또는 1천만원이하의벌금에처한다. 제 24 조제 3 항, 제 25 조제 6 항또는제 29 조를위반하여안전성확보에필요한 조치를하지아니하여개인정보를분실ㆍ도난ㆍ유출ㆍ변조또는훼손당한자. - 114 -
붙임 1 SSL 인증서발급절차 (1) 인증관리센터홈페이지 (www.gpki.go.kr) 에서 [ 인증서발급 ] 을선택합니다. (2) 기관명을검색합니다. (3) 부서명,CN( 도메인 ), 이름을입력후 [ 확인 ] 을누릅니다. - 115 -
(4) 입력정보를확인합니다. (5) 서버에서생성한 CSR 파일 ( 인증서요청파일 ) 을에디터로오픈시킵니다. ( 확장자가이상해도에디터로드래그앤드롭하면오픈됩니다.) - 116 -
(6) 에디터로오픈된 CSR 파일의내용물을복사해서아래화면과같이붙여넣고 임시비밀번호를입력한다음,[ 인증서발급 ] 을클릭합니다. - 117 -
(7) 정상적으로처리되면아래의페이지로이동이되고, 파일명을클릭하면저장하실 수있습니다. 취소를클릭하면공문과신청서를다시보내셔야합니다. - 118 -
붙임 2 보안서버구축후오류발생시참고사항 (1) 인증서를발급받은웹사이트주소와실제로접속한웹사이트주소가다른경우 예를들면, www.gpki.go.kr로인증서를발급받아설치한후 login.gpki.go.kr에실제적용하는경우와같이인증서를발급받은주소와실제로접속한주소가다른경우에위와같은경고창이나오게됩니다. 또는물리적인하나의서버에여러개의도메인을사용하는경우로 www.gpki.go.kr은 443 login.gpki.go.kr은 445 포트를사용하는경우 https://login.gpki.go.kr 로접속하게되면위의오류가발생하므로 http://login.gpki.go.kr:445로접속해야합니다. - 119 -
(2) 인증서 (SSL 인증서 ) 가유효하지않은경우 인증서는저마다고유한유효기간을가지고있는데, 이기간이지난인증서를계속설치 해두는경우에나오는경고창입니다. 그러나보통의경우인증서가설치된사이트에 접속하는사용자 PC 의날짜가잘못되어있어서생기는경우가가장많습니다. - 120 -
(3) 웹브라우저가웹서버인증서를신뢰할수없는경우 이경우는웹서버인증서를발급한인증기관을웹브라우저가인식하지못하는경우로써, 웹브라우저에는기본적으로신뢰할수있는인증기관리스트가내장되어있는데그리스트에없는, 즉, 신뢰할수없는인증기관에서발급된인증서를설치한경우에발생하는경고창입니다. 실제로는, 웹서버에서자체적으로만든인증서를설치한경우에가장많이생깁니다. 웹브라우저의신뢰할수있는인증기관확인방법 : 웹브라우저 도구 (T) 인터넷옵션 내용 인증서 (C) " 신뢰된루트인증기관 - 121 -
(4) 보안된항목 htps 와보안되지않은항목 htp 를모두포함하는경우 위그림과같이항목 https와보안되지않은항목 http를모두포함하고있어나타나는보안경고창입니다. https:// 를이용해서암호화통신을하고자하는페이지의소스에 http:// 를이용하여호출하는이미지등이존재할때보안경고창이나타나는것입니다. 이경우 아니오 버튼을눌러표시되지않는 http 항목의소스를절대경로를써서 https 로호출하시면됩니다. - 122 -
(5) 한웹페이지에 htp:// 와 htps:// 의두프로토콜이존재하는경우 한웹페이지안에 http:// 와 https:// 의두프로토콜이존재하기때문입니다. 예를들어, http://www.gpki.go.kr 에서로그인을위해 https://www.gpki.go.kr/login.jsp 로접속할때 /login.jsp 안에 http://www.gpki.go.kr 로호출하는직접적인소스가있기때문입니다. 이러한경우 HTML 파일중에 HTML 헤더부분에다음의스크립트를넣어주시면됩 니다. <METAHTTP-EQUIV="REFRESH"CONTENT="0;URL=htp://( 해당 URL)"> 이스크립트는 https 페이지에서로그인한후, https 로암호화되는임의의페이지를하나만들 어이동을하되그페이지에서메타태그를이용하여원하는 http 페이지로리프레쉬하게만드 는것입니다. 보통의 CGI 프로그래밍에서의리다이렉션함수 ( 메소드 ) 나또는, HTTP Location 헤더를직접가지고보안되지않은곳으로리다이렉션하면보안되지않은곳으로간다고경고가나오지만, HTTPS 서버의 HTML을읽게한후그 HTML 내에서 META 태그를이용해서리다이렉션하게되면, 웹브라우저는일단그 HTML이 HTTPS 서버에서읽은것으로간주하고보안경고가뜨지않으며 HTML 의 META 태그로리다이렉션하는경우에는웹브라우저가리다이렉션한것처럼동작되게되어경고가뜨지않습니다. - 123 -
(6)htps:// 로접속했을때 페이지를표시할수없다 는메시지가나타낼경우 << 발생원인 >> 1 https 디렉토리내에파일이존재하지않을경우 2 서버와사용자간의방화벽에서 443 포트가차단되었을경우 3 https 서버가다운되었을경우 4 SSL인증서파일이정상적이지않을경우 5 웹브라우저에서 ssl 3.0으로세팅이되어있지않을경우 위의경우에는인증서가정상적으로설치되었는지, 서버에서 https 를위한포트가활성화되었는지확인하시기바랍니다.( 방화벽과 L4 스위치등장비가있다면 https를위한해당포트가모두허용되었는지확인합니다.) 윈도우즈의경우 netstat na findstr 포트번호, 유닉스의경우 netstat na grep 포트번호 ' 명령어를이용하여 https를위한포트가활성화되어있는지확인할수있습니다. 위의모든내용을확인한후에도정상적으로동작하지않을경우해당설치업체에게문의하시기바랍니다. 6 Windows XP sp2 이하일경우 2048 key size 로발급된 SSL 인증서의경우반영된 SHA-2 암호알고리즘을지원하지 않아발생되는문제로사용자의 OS 를 Windows XP sp3 로업데이트해야해결됩니다. [Windows Update 사이트 ] http://update.microsoft.com [ 서비스팩다운로드센터 ] http://windows.microsoft.com/ko-kr/windows/service-packs-download#sptabs=xp 보안취약성문제로행정안전부에서 SHA-2 암호알고리즘을 SSL 인증서에 사용하도록권고하고있습니다. - 124 -
(7)WindowsXPSevicePack1 이하의운영체제 (OS) 를사용하는경우 행정전자서명인증서가인터넷익스플로러 (IE) 브라우저의신뢰된루트인증기관으로등록되어 Windows XP SP2 버전이상부터 IE브라우저에적용되었습니다. Windows XP SP2 버전이상부터신뢰된기관에서발급받은인증서로인식되기때문에보안경고창등의문제점이없이사용가능합니다. 그러므로 Windows XP Service Pack 1의운영체제를사용하는경우윈도우업데이트를통한루트인증서를꼭업데이트하여야합니다. << 루트인증서업데이트방법 >> 1 윈도우 시작 버튼클릭 Windows Update 실행 사용자지정설치 버튼클릭 다른업데이트검토 버튼클릭 소프트웨어, 선택적 링크클릭 루트인증서업데이트 선택후, 업데이트검토및설치 버튼을클릭하여선택적으로루트인증서만업데이트를실시할수있습니다. 2 또는, Windows XP Service Pack 2 의운영체제로업데이트를통한루트 인증서를자동으로업데이트를시킬수있습니다. - 125 -