티스토리 뷰

보안

보안인증서 설치

IT 2010. 12. 27. 13:26
1. apache 버젼 확인
# /usr/local/apach/bin/httpd -v

2. ssl 모듈 설치여부 확인
  가. static lib로 설치된 경우
    # /usr/local/apache/bin/httpd -l
Compiled-in modules:
  http_core.c
  mod_env.c
  mod_log_config.c
  mod_mime.c
  mod_negotiation.c
  mod_status.c
  mod_include.c
  mod_autoindex.c
  mod_dir.c
  mod_cgi.c
  mod_asis.c
  mod_imap.c
  mod_actions.c
  mod_userdir.c
  mod_alias.c
  mod_access.c
  mod_auth.c
  mod_so.c
  mod_setenvif.c
  mod_ssl.c
 
   나. shared object로 설치된 경우
     # pwd
       /www/apache/libexec
     # ls -al
       -rwxr-xr-x    1 root     root      1264138 Jun 13  2005   libssl.so

2. SSL 모듈 컴파일
  가. Openssl 설치 
    www.openssl.org 에서 openssl 소스를 다운 받아 설치. 
    # wget –c http://www.openssl.org/source/openssl-0.9.8i.tar.gz
    # tar xvfz openssl-0.9.8i.tar.gz
    # cd openssl-0.9.8i
    # ./configure shared
    # make
    # make install

  나. Lib path 등록
    # vi /etc/ld.so.conf
       /usr/local/ssl/lib 추가
    # ldconfig

3. apache 컴파일
  -- enable-module=ssl --with-ssl=/usr/local/ssl --enable-ssl=shred
  (기존 컴파일 옵션에 추가, openssl이 /usr/locsl/ssl에 설치되어 있어야 한다.
   기존 컴파일 옵션은 config.log 파일에 있다.)

4. mod_ssl.so 파일 만들기
  가. apache 2.2
    # ./configure --prefix=/usr/local/apache2 --enable-modues=so --enable-so
      --enable-mods-shared=ssl --width-ssl=/usr/local/ssl --enable-ssl=shared

  나. apache 2.0
    # ./configure --prefix=/usr/local/apache2 --enable-modules=so --with-ssl=/usr/local/ssl
       --enable-ssl=shared

  다. mod_ssl.c 스태틱하게 되는거 (apache 2.2, apache 2.0)
    # ./configure --prefix=/usr/local/apache2 --enable-mods-shared=most --enable-so
      --with-ssl=/usr/local/ssl --enable-ssl

    # make
    #make install ← 위 옵션에서 prefix에 지정해둔 디렉토리에 설치된다.

    * SSL 모듈 설치시 기존 서비스가 운영중인 경우, 다른 디렉토리를 prefix 로 잡아 설치하고,
      생성된 mod_ssl.so 파일을 기존 서비스에 옮겨와 서비스 구동을 테스트 해볼 수 있다. 
      이때 기존과 컴파일 환경(버전 등)이 틀린경우 제대로 구동이 되지 않을 수 있으므로, 
      기존 서비스는 반드시 백업을 받아두고 테스트 한다.

5. 환경설정
  가. apache 2.0x + mode_ssl.so
    - conf/httpd.conf 추가
      LoadModule ssl_module modules/mod_ssl.so
      NameVirtualHost IP주소:80  ← 443포트를 사용하기 위해 80을 명시해줌

    - conf/ssl.conf 추가
      Listen 443
      NameVirtualHost IP주소:443
      <VirtualHost IP주소:443>
         ....
         ServerName www.도메인.co.kr:443
         SSLEngine on
         SSLCertificateFile conf/ssl/www.domain.com.crt ← 인증서 파일 경로
         SSLCertificateKeyFile conf/ssl/www.domain.com.key ← 키파일 경로
         SSLCACertificateFile conf/ssl/chainca.crt ← 중계인증서 파일경로 
      </VirtualHost> 

      # SSL 을 통해서만 접근할 수 있는 디렉토리 설정. 
      <Directory "/some/html/dir/secure">
        SSLRequireSSL
         ....
      </Directory >

  나. apache 2.2 의 경우
      httpd.conf 파일은 conf/httpd.conf로 ssl.conf는 conf/extra/httpd-ssl.conf 파일명으로 찾는다.

  다. apache 1.3x 의 경우
      httpd.conf 와 ssl.conf의 내용이 모두 httpd.conf 파일에 있다.

6. 재시작
  가. apache 1.3x, apache 2.0x
    # cd /usr/local/apache/bin
    # ./apachectl stop
    # ./apachectl startssl

  나. apache 2.2x
    # cd /usr/local/apache/bin
    # ./apachectl stop
    # ./apachectl start

7. apache 구동시 비밀번호 안물어보도록 하는 방법
   가. 스크립트를 생성한다.
     #!/bin/sh
     echo password(실제 패스워드)

    <IfModule mod_ssl.c>
      # Pass Phrase Dialog:
      # Configure the pass phrase gathering process.
      # The filtering dialog program (`builtin' is a internal
      # terminal dialog) has to provide the pass phrase on stdout.
      #SSLPassPhraseDialog builtin
      SSLPassPhraseDialog exec:/path/to/script
    </IfModule>
     위처럼 경로를 설정해주면 mod_ssl시작시 자동으로 패스워드를 입력시킬수 있다.

      

      
      

'보안' 카테고리의 다른 글

openssl 사용방법  (0) 2010.12.27
JDK keytool 사용방법  (0) 2010.12.27
openssl s_client 사용방법  (0) 2010.12.27
GNU Privacy Guard(GPG) 사용법  (0) 2010.12.16
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31