티스토리 뷰
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
링크