먼저 Apache와 mod_ssl의 버전을 확인 후에 알맞은 openssl 을 설치해야 합니다. 해당 정보는 www.openssl.org , www.modssl.org 에서 확인 하실 수 있습니다. 알맞는 버전을 확인 후 해당 사이트에 소스를 다운로드 합니다.
1. openssl 설치
[root@smson openssl-0.9.8]# tar xvfz openssl-0.9.8.tar.gz
[root@smson openssl-0.9.8]# ./config --prefix=/usr/local --openssldir=/usr/local/openssl
[root@smson openssl-0.9.8]# make; make install
[root@smson openssl-0.9.8]# ls -al /usr/local/openssl/
total 36
drwxr-xr-x 6 root root 4096 Oct 29 00:08 .
drwxr-xr-x 24 root root 4096 Oct 29 00:07 ..
drwxr-xr-x 2 root root 4096 Oct 29 00:08 certs
drwxr-xr-x 6 root root 4096 Oct 29 00:07 man
drwxr-xr-x 2 root root 4096 Oct 29 00:08 misc
-rw-r--r-- 1 root root 9381 Oct 29 00:08 openssl.cnf
drwxr-xr-x 2 root root 4096 Oct 29 00:08 private
2. mod-ssl 모듈 Apache 소스에 설정
[root@smson work]# tar xvfz mod_ssl-2.8.24-1.3.33.tar.gz
[root@smson work]# cd mod_ssl-2.8.24-1.3.33
[root@smson mod_ssl-2.8.24-1.3.33]# ./configure --with-apache=../apache_1.3.33 --with-ssl=../openssl-0.9.8 --prefix=/usr/local/apache-ssl
* MaxClients 값을 튜닝하기 위해 아래와 같이 HARD_SERVER_LIMIT 값을 수정한다.
[root@ihelpers apache_1.3.33]# vi src/include/httpd.h
#define HARD_SERVER_LIMIT 1024
3. Apache 설치
[root@smson apache_1.3.33]# export SSL_BASE=../openssl-0.9.8
[root@smson apache_1.3.33]# ./configure --prefix=/usr/local/apache-ssl --enable-module=so --enable-rule=SHARED_CORE --enable-shared=max --enable-module=ssl --enable-shared=ssl --enable-module=rewrite --enable-shared=rewrite --enable-module=expires --enable-shared=expires
[root@smson apache_1.3.33]# make
[root@smson apache_1.3.33]# make certificate -- 테스트인증서 생성시 필요(생략해도 큰 문제 없음)
[root@smson apache_1.3.33]# make install
4. 설정
보안서버 SSL의 경우는 헤더도 암호화가 되므로 일반적인 웹사이트 설정처럼 443 포트를 공유할 수 없기에, 다른 도메인에 대한 추가 설정 시에는 443 포트가 아닌 다른 포트를 사용해야 합니다. 이와 같은 이유로 많은 도메인에 대한 설정이 필요할 경우는 Wildcard SSL 또는 Multi-Domain SSL 인증서를 고려해 보는 것이 좋습니다.
아래는 현재 저희가 설정하여 사용하고 있는 설정값 예 입니다.
[root@smson conf]# vi httpd.conf
DocumentRoot "/data1/wwwroot/analysis/html"
ServerName analysis.wsos.co.kr
ServerAdmin root@smson
ErrorLog /dev/null
TransferLog /dev/null
CustomLog /dev/null common
SSLPassPhraseDialog exec:/usr/local/apache-ssl/conf/ssl/pw.sh
SSLLog /var/log/ssl_engine_log
SSLCertificateFile $path/analysis_wsos_co_kr.crt
SSLCertificateKeyFile $path/analysis_wsos_co_kr.key
SSLCACertificateFile $path/analysis_wsos_co_kr.ca-bundl
5. 실행
아래와 같이 '-DSSL' 로 SSL 보안서버 모드로 실행된 것을 확인 하실 수 있습니다. 일반 웹서비스는 'start' 옵션으로 실행하시면 됩니다. 실행 시에 비밀번호 자동입력 및 부팅시 자동실행과 같은 내용은 아래 내용을 참고하여 주십시오.
6. 참고