RadarURL

조회 수 6095 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
이문서는 공개되어 있으며 해당 URL로 방문하시면 SpringNote 버젼으로 보실수 있습니다.

[ http://eloid.springnote.com/pages/455122.xhtml ]

 

이 문서는 2007년 9월 4일 화요일에 최초 작성되었습니다.

최종 수정일 : 2007년 9월 6일 목요일

 

작성자 : 엘로이드(Eloid)

http://eloid.tistory.com

 

0. 목차

  1.  개요
    1. SSL에 대한 일반적 이해
  2. 설치준비 
    1. 제반사항
    2. 필요한 프로그램 및 라이브러리 

      1. 설치 버젼으로 세팅하기 위한 준비
      2. 수작업으로 세팅하기 위한 준비
    3. 기타사항
  3. 설치 
    1. OpenSSL 라이브러리 설치
    2. mod_ssl.so 모듈의 설치
    3. 인증서 설치
      1. 인증서 생성의 개략적 과정
      2. Commamd Mode 에서의 Test 인증서 생성
  4. 설정 
    1. httpd.conf 파일의 수정
    2. ssl.conf 파일의 수정
  5. 문제해결
    1. 들어가기에 앞서
    2. 문제의 종류에 따른 몇몇 해결 가이드라인
      1. 모듈이 로딩되었는지 어떻게 확인을 합니까
      2. ssl_error_log 에 아래와 같은 형식의 로그가 남았습니다.
      3. Error: Init: SSLPassPhraseDialog builtin is not supported on Win32 에러
  6. 참고 사이트

 

 

1. 개요

1.1 SSL에 대한 일반적 이해

  • 이 주제에 대해서는 이미 잘 작성되어 있는 문서들이 많으므로 링크로 대체합니다.
  • 해당 링크가 문제가 발생할 경우를 대비해 하위폴더로 웹페이지를 저장 해 두었으니 라이브 링크가 열리지 않는다면 1.1 폴더로 가 보시기 바랍니다.

 2. 설치준비

2.1 제반사항

  1. OS - Win32 기반의 OS (Windows Server군 권장)
    => 저같은 경우 Windows 2000의 환경에서 세팅을 하였습니다.
  2. Apache Server + (연동된 WAS)
    => 저같은 경우 Apache + Tomcat을 연동하여 사용하고 있습니다.
    => 여기에서는 Apache의 버젼이 굉장히 중요하므로 미리 버젼을 체크하여 두도록 합니다.
    => 마지막으로 성공한 구성은 Apache 2.0.59를 다시 세팅한 것이였습니다. 참고해 주세요.

 

2.2 필요한 프로그램 및 라이브러리

2.2.1 설치버젼으로 세팅하기 위한 준비 (편하게 하시려거나 처음으로 다루시는 분들)

  •  이 방법은 아파치는 msi로 설치를 하셨고 SSL도 설치버젼으로 손쉽게 설치하여 나름 반자동으로 시간을 아낄 수 있기는 합니다만 프로그램 추가 삭제에 프로그램 목록이 등록되어 관리가 되게 됩니다.
  • 몇몇 사람들은 이런것들을 오히려 번거로워 하기도 하기 때문에 아래에 수작업으로 세팅하는 방법을 다루도록 하겠습니다.

 

  1. OpenSSL - http://openssl.org/
    •  OpenSSL은 직접 컴파일을 하는 방법과 누군가 컴파일을 해 놓은 버젼을 구해 설치하는 방법으로 설치할 수 있습니다.
    직접 컴파일 하는 방법은 다음 사이트를 참고하도록 하세요.
         [ 사이트1(영문) ] [ 사이트2 (네이트tong) ]
    친절하게도 누군가가 컴파일하여 패키지로 묶어 배포를 하고 있는 버젼이 있습니다. 설치버젼에서는 아래를 이용하여 해 보려고 합니다.
    다음 사이트를 방문해 보세요. 공식 사이트의 최신 버젼과 이곳의 최신 릴리즈된 버젼을 잘 비교해 보시기 바랍니다.
         [ http://www.slproweb.com/products/Win32OpenSSL.html ]
    •  둘 중 하나만 선택하면 됩니다. 단순히 인증 서버를 구축하기 위한다면 컴파일 된 버젼(win32)을 구하시는 것이 편합니다.
    •  컴파일/설치 후 필요한 파일은 openssl.exe, ssleay32.dll, ssleay32.lib, libeay32.dll, libeay32.lib 5개입니다. 미리 복사해서 준비해주세요.
    •  OpenSSL 의 버젼은 최종 성공 버젼은 0.9.8e였지만 0.9.8d 에서도 현재 구성으로 동작함을 확인했습니다.
  2. Apache와 mod_ssl - http://hunter.campbus.com/
    • mod_ssl.so 모듈파일은 위 사이트에서 제공하는 Apache_2.0.59-Openssl_0.9.8d-Win32.zip 을 받아 modules 에서 뽑아 사용하였습니다.
    • 0.9.8d 버젼이 필요하시면 Openssl-0.9.8d-Win32.zip 를 받으시면 됩니다. 위의 링크는 Apache에 Openssl 모듈 및 라이브러리가 포함된 버젼입니다.

 
2.2.2 수작업으로 세팅하기 위한 준비 (기존 서버 사용자나 설치버젼이 찝찝하신 분들)


2.3 기타 사항

 

 

 3. 설치

3.1 OpenSSL 라이브러리 설치

1. 컴파일을 한 경우
     => 2.2 부분 직접 컴파일 하는법 사이트 링크 설명에 따라 컴파일을 합니다.
     => 결과물을 적당한 폴더에 넣습니다. (C:\bin\OpenSSL)
     => 이후 결과로 나온 파일 libeay32.dll, ssleay32.dll, 파일을 Windows\System32 혹은 WINNT\system32 폴더에 복사하도록 합니다.
     => System32 폴더가 환경변수 PATH로 잡혀있는지 확인해 봅니다.

 

 2. Win32OpenSSL 을 받은 경우
     => 적당한 폴더에 설치합니다. (C:\bin\OpenSSL)
     => 설치 프로그램이 알아서 dll 파일들을 System32 폴더안에 복사해 넣으므로 재설치의 경우라면 설치 전에 아파치가 해당파일을 참고하고
       있지 않은지 확인합니다.

 

3.2 mod_ssl.so 모듈의 설치

1. %APACHE_HOME%\modules 폴더 안에 mod_ssl.so 파일을 복사해 넣습니다. 이후 httpd.conf 에서 모듈을 로드할 것입니다.

2. 옆 사이트에서 ssl.conf 파일을 받아 %APACHE_HOME%\config 폴더 안에 넣습니다. [ http://www.thompsonbd.com/tutorials/files/ssl.conf ]
     => 위 파일은 ssl 관련 세팅을 위한 config 파일이며 이후에 httpd.conf 에서 Include 시켜 줄 것입니다.

 

3.3 인증서 설치

3.3.1 인증서 생성의 개략적 과정

  •  인증서의 생성과 설정에는 전체적으로 다음과 같은 과정을 따릅니다.
    1. RSA키 생성 -> *.key
    2. Certificate Signing Request(CSR) 생성 -> *.csr
    3. rootCA에 csr을 보냄.
    4. crt파일을 받음(인증서,CA인증서)
    5. 적당한 경로에 올리고 버츄얼 호스트 및 인증서 파일의 경로 세팅

 

 3.3.2 Command Mode 에서 Test 인증서 생성

이 작업을 하기 전 다음 사이트를 참고하면 전체적으로 SCR 파일을 생성하는 과정에 대해 도움을 받을 수 있습니다.
[ Apache 웹서버(1.3.xx , 2.0.xx 공통) CSR(Certificate Signing Request) 생성 ]
[ http://www.webkebi.com/bbs/zboard.php?id=webkebi_qna&no=133 ]
     => 반드시 작업을 하며 생성되는 개인키의 백업을 잊지 않도록 합니다.
          키가 뒤죽박죽되어 설치가 되면 서버 가동 및 실행에 이후에 에러가 발생 할 수 있으니 생성중 문제가 생겼다면 처음부터 다시 하도록 합시다.
         (문제해결 부분 참고)

  1.  설치한 openssl 폴더로 들어가 다음과 같은 명령어를 수행합니다.  (key RSA 파일 생성)
  1.  C:\bin\openssl>openssl genrsa -out domain.key 1024

 => domain.key 라는 이름의 RSA key 파일을 생성한다. 1024 비트의 암호화.
 => 몇몇 사이트에서 -des3 옵션을 주고 있지만 옆과 같은 이유로 win32환경에서는 옵션을 빼야합니다. (http://blog.divira.com/8)

 


2.  CSR(Certificate Signing Request) 파일 생성을 위해 아래 명령어를 수행합니다.

  1.  C:\bin\openssl>openssl req -new -config openssl.cnf -days 365 -key domain.key -out domain.csr

  => win32상에서 돌리므로 -config 옵션으로 cnf파일을 명시해 줍니다.

 

   3. 아래와 같은 입력 폼이 나오면 알맞게 입력합니다.

  1. Country Name (2 letter code) [AU]:KR
    State or Province Name (full name) [Some-State]:Seoul
    Locality Name (eg, city) []:Gangnam
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:ljunesoft
    Organizational Unit Name (eg, section) []:DevelopTeam
    Common Name (eg, YOUR name) []:www.ljunesoft.co.kr
    Email Address []:admin@ljunesoft.co.kr
  2. Please enter the following 'extra' attributes
    to be sent with your certificate request
    A challenge password []:
    An optional company name []:

 

 [팁]
[Tue Sep 04 20:01:13 2007] [warn] RSA server certificate CommonName (CN) `www.ljune.co.kr' does NOT match server name!?
[Tue Sep 04 20:01:14 2007] [warn] RSA server certificate CommonName (CN) `www.ljune.co.kr' does NOT match server name!?
CN 부분을 서버 이름에 맞춰서 넣지 않으면 서버를 시작할때 위와 같은 warn 메세지가 log 파일에 쓰입니다.

 

  4. 여기까지 진행하면 domain.key 파일과 domain.csr 파일이 생성됩니다.
        =>  RootCA 기관에 보내는 것이라면 여기까지 진행하고 위 파일을 보내어 서명된 crt파일을 받아 서버에 세팅하면 됩니다.

 

  5. 테스트를 위한 crt 파일 생성하기

  1.  C:\bin\openssl>openssl x509 -in domain.csr -out domain.crt -req -signkey domain.key -days 365
  2. Loading 'screen' into random state - done
    Signature ok
    subject=/C=KR/ST=Seoul/L=Gangnam/O=ljunesoft/OU=DevelopTeam/CN=www.ljunesoft.co.kr/emailAddress=admin@ljunesoft.co.kr
    Getting Private key

 

6. domain.key 파일과 domain.crt 파일을 적당한 경로에 복사합니다. ( %APACHE_HOME%\conf\ssl 폴더 권장)

 

4. 설정

 4.1 httpd.conf 파일의 수정

 개략적인 설정에 관해서는 아래 사이트를 참고하면 도움이 될 수 있습니다.

  [ http://www.thompsonbd.com/tutorials/apachessl.php ]

 

 

  •  %APACHE_HOME%\conf 폴더로 가서 httpd.conf 파일을 에디터로 엽니다.
  1.  LoadModule ssl_module modules/mod_ssl.so

 

  •  IfModule 부분이 있다면 주석처리 하고 ssl.conf 파일을 Include 해줍니다.
  1. #<IfModule mod_ssl.so>
        Include conf/ssl.conf
    #</IfModule>

 

 

4.2 ssl.conf 파일의 수정

  •  %APACHE_HOME%\conf 폴더로 가서 ssl.conf 파일을 엽니다. (혹은 사용자가 저장한 폴더로 갑니다.)
     443 포트를 사용하도록 합니다. IfDefine SSL 태그 는 주석처리 해 줍니다.
    저같은 경우 이 사이의 구문들이 실행되지 않아 애를 먹었으므로 이 이후 나오는 같은 태그들도 전부 주석처리 하여 그 사이의 문장들이 조건 없이 무조건 실행되도록 하였습니다. 어차피 SSL을 가동시켜야 하므로 굳이 조건을 체크할 필요는 없거든요.
  1.  #<IfDefine SSL>
    Listen 443
    #</IfDefine>

 

  •  선택사항. 포트기반의 VirtualHost를 이용할 것입니다. 80번 포트로 들어오게 되면 SSL엔진을 꺼서 효율을 높입니다.
  1. <VirtualHost *:80>
        SSLEngine off
    </VirtualHost>

 

 

 

  • VirtualHost를 설정합니다. 아래 설정은 테스트로 localhost를 지정했지만 실제로는 인증서의 CN과 일치하게 작성해야 합니다.
    포트기반으로 되며 인증서가 멀티도메인이라면 추가적인 설정이 더 필요하지만, 현재 여기에서는 일반적인 인증방식만 다루도록 합니다.
    아래 설정된 옵션에 대해서는 이후 오류해결 부분에서 좀 더 상세히 다루겠습니다.
    제대로 설정한다면 이후 https:// 프로토콜로 접속하는 페이지에서는 암호화 과정을 거쳐 페이지가 로딩되게 됩니다.
  1. #<IfDefine SSL>
  2. .....
    <VirtualHost *:443>
  3. .....
  4. ServerName localhost
    DocumentRoot "C:/Program Files/Apache Group/Tomcat 5.5/webapps"
    ErrorLog logs/ssl_error_log
    TransferLog logs/ssl_access_log
    .....
  5. #crt 확장자가 인식되도록 설정되어 있는지 확인합니다.
  6. AddType application/x-x509-ca-cert .crt
    AddType application/x-pkcs7-crl    .crl
  7. .....
  8. SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    .....
    SSLEngine on
    .....
  9. SSLCertificateFile conf/ssl/www.ljune.co.kr.crt
  10. SSLCertificateKeyFile conf/ssl/www.ljune.co.kr.key
  11. .....
    #체인 인증서가 존재한다면 아래 구문을 설정해 주어야 합니다.
  12. #SSLCertificateChainFile conf/ssl/www.ljune.co.kr.chain.crt
  13. .....
  14. # SSL 을 통해서만 접근할 수 있는 디렉토리 설정.
     <Directory "C:\Program Files\Apache Group\Apache2\conf\ssl">
       SSLRequireSSL
     </Directory>
  15. .....
  16. </VirtualHost>                     
  17. #</IfDefine>

 

 

 5. 문제해결

 5.1 들어가기에 앞서

 
5.2 문제의 종류에 따른 몇몇 해결 가이드라인

  • 제가 서버구축을 하며 만났던 몇몇 에러들을 정리해 두었습니다.
  • 위 사이트에 언급이 되어 있기는 하지만 영문이기도 하고 제가 적은대로 하신다면 만나기 쉬울 확률이 높기때문에 따로 작성을 하게 되었습니다.

 

 5.2.1 모듈이 로딩되었는지 어떻게 확인을 합니까.

기본적으로 Apache Service Monitor을 실행하면 아래 상태표시줄에 로딩된 모듈들이 표시가 됩니다.

 

 apache.jpg

 

5.2.2  ssl_error_log 에 아래와 같은 형식의 로그가 남았습니다.

  1.  [Tue Sep 04 20:07:35 2007] [error] SSL Library Error: 218529960 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
    [Tue Sep 04 20:07:35 2007] [error] SSL Library Error: 218595386 error:0D07803A:asn1 encoding routines:ASN1_ITEM_EX_D2I:nested asn1 error
    [Tue Sep 04 20:07:35 2007] [error] SSL Library Error: 218734605 error:0D09A00D:asn1 encoding routines:d2i_PrivateKey:ASN1 lib


 1. 인증키가 다른것과 섞이지 않았는지 확인합니다. (key 파일,crt 파일)
 2. ssl.conf 의 구문에 태그가 제대로 열리고 닫혔는지 확인합니다. (VirtualHost 안에 또 VirtualHost가 들어갔다던지..IfModule을 한개만 주석처리했다던지..)
 3. 위 방법이 되지 않으면 SSL 키로부터 passphrase를 제거합니다.
         [ http://help.metaltoad.com/apache/removing-a-passphrase-from-an-ssl-key.html ]

  1.  openssl rsa -in server.key -out new.key

 4. 그래도 되지 않으면 OpenSSL 라이브러리를 최신으로 업데이트 해 보시기 바랍니다.

5.3.3 Error: Init: SSLPassPhraseDialog builtin is not supported on Win32 에러

1. 다음 사이트 참고 [ http://blog.divira.com/8 ] 
 위에서 언급하였지만 key 생성시 옵션에서 -des3 를 주지 않으면 위 에러가 해결 될 수 있습니다.

 

 6. 참고 사이트

 

 

출처 : http://l2j.co.kr/1322

?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 2015600
2623 구글 애드센스 토보샵: 명품레플리카 쇼핑의 시작 new 얼어붙은흐름98 2026.10.06 0
2622 사무 소프트웨어 대전누수, 근본 원인 해결의 시작 new 적막한체이서42 2026.10.06 0
2621 사업 마인드 끝판왕 사이즈까지 장착 완료! 010---8293---0291---- 여기가 베트남인줄 마블 노래클럽 new 기운찬오소리38 2026.10.05 0
2620 건강 카-툑 gusim8003 [24시문의] 선불유심내구제/내구제대출/소액대출/급전/ 비대면대출 상조내구제 무직자대출 대출 new 어설픈오소리22 2026.10.05 0
2619 하드웨어 강남엘리트❤️OlO-8655-OO53❤️친절문의24시 강남하퍼1등실장 #강남엘리트 #강남엘리트위치 #강남엘리트하퍼 #하이퍼블릭엘리트 #강남엘리트예약문의 #선릉엘리트 #선릉역엘리트 #강남사라있네 new 괴랄한재규어89 2026.10.05 0
2618 블로그 청담동셔츠룸 010 2817 0845 일정과 인원에 맞춘 셔츠룸 문의 new 정열적인퀘이사14 2026.10.05 0
2617 카메라 최근 테헤란로 벤처 밸리의 핵심 리더들 사이에서 ‘클래스가 다른 정통 수질과 프라이빗 무드’로 소문 자자한 '선릉 룸싸롱' 기습 방문, 인공미를 거부하는 무결점 뉴페이스들과 심장을 마비시킨 사심 플러팅에 제대로 저격당하고 온 솔직 후기 new 희미한홍학99 2026.10.05 0
2616 u-E(활성화) 본식DVD, 웨딩영상 색감이 중요한 이유새 창 열림 new 힘겨운귤35 2026.10.05 2
2615 공지 대전, 인천, 세종 하수구 막힘 문제 해결 방법 new 정열적인코요테90 2026.10.05 4
2614 취미 <문경맥주> 구입 할 수 있는 곳은 새 창 열림 new 타오르는드래곤61 2026.10.05 1
2613 데이터베이스 강남건전지❤️OlO-8655-OO53❤️친절문의환영 #강남건전지 #강남유니콘 #선릉유니콘 #강남건전지위치 #선릉역건전지#대치동유니콘 #강남바커스 #선릉바커스 #선릉역바커스 #강남룸클럽 #선릉룸클럽 #강남베터리 #강남바데리 new 괴랄한재규어89 2026.10.05 1
2612 사무 소프트웨어 용인두피문신 고민? 만족 후기 보려면 new 날카로운꿩11 2026.10.05 12
2611 논문 카­톡 gusim8003 급전/내구제 (24시문의) 폰테크 소액대출 선불폰 가개통 new 타오르는켄타우로스86 2026.10.05 1
2610 윈도우즈 웨딩누브라, 완벽한 드레스 핏을 위한 선택 new 날카로운감시자22 2026.10.05 5
2609 인터넷 성공적인 중고화물차 선택, 현명한 가이드 붉은드래곤50 2026.10.05 2
2608 가상화 인천맛집 순위 차가운파편97 2026.10.05 2
2607 응용 프로그래밍 완벽한 웨딩드레스 핏의 비밀, 웨딩누브라 힘겨운암석76 2026.10.05 2
2606 카메라 파주누수업체, 신속 해결 전문가의 비결 차가운에메랄드79 2026.10.05 1
2605 u-E(통합센터) 올해의 핫플 선정 간석동 마블! 010&&8923&&0291 교활한감시자99 2026.10.05 1
2604 웹서버,WAS 손목터널증후군 치료, 현명한 선택 기준은? 괴상한두루미52 2026.10.05 1
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 132 Next
/ 132


즐겨찾기 (가족)

JAESOO's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너