반응형
1. OpenSSL을 설치한다.
 - 소스 사이트 : http://openssl.org/source
 - 압축을 풀고 설치함(디폴트 설정) : ./configure;make;make install
  (디폴트 디렉토리는 /usr/local/ssl 이 된다.)
 - 2009.07.06 현재 최신 버전은 openssl-0.9.8k.tar.gz 임

2. Apache 웹 서버를 설치한다.
 - 소스 사이트 : http://httpd.apache.org
 - 압축을 풀고 설치함
 ./configure --prefix=/usr/local/apache2.2.11 --enable-modules=ssl --with-ssl=/usr/local/ssl --enable-mods-shared=all --enable-so --enable-rewrite --enable-proxy --enable-proxy-balancer --enable-proxy-http --enable-proxy-connect --enable-ssl
- 2009.07.06 현재 최신 버전은 httpd-2.2.11.tar.gz 임

3. Passenger를 설치한다.
 - gem install passenger (최신 버전은 2009.07.06 현재 passenger-2.2.4임)
 - 설치 폴더에서 ./bin/passenger-install-apache2-module 수행한다. 이때 APXS2 환경 변수가 설정 되어 있어야 한다. (export APXS2=/usr/local/apache2.2.11/bin/apxs)

4. httpd.conf에 Passenger 설정
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.4/
PassengerRuby /usr/local/bin/ruby
PassengerMaxPoolSize 10
RailsSpawnMethod conservative
PassengerLogLevel 3
PassengerPoolIdleTime 1800

5. SSL 인증서 설치
4.1 개인키 생성
/usr/local/ssl/bin/openssl genrsa -des3 -out /usr/local/apache2.2.11/conf/server.key 1024
4.2 csr 키 생성
/usr/local/ssl/bin/openssl req -new -key /usr/local/apache2.2.11/conf/server.key -out /usr/local/apache2.2.11/conf/server.csr
4.3 개인키에서 패스워드 삭제하기
/usr/local/ssl/bin/openssl rsa -in /usr/local/apache2.2.11/conf/server.key -out /usr/local/apache2.2.11/conf/server.key.insecure
mv /usr/local/apache2.2.11/conf/server.key /usr/local/apache2.2.11/conf/server.key.secure
mv /usr/local/apache2.2.11/conf/server.key.insecure /usr/local/apache2.2.11/conf/server.key
4.4 CA 인증서 생성
/usr/local/ssl/bin/openssl x509 -req -days 9999 -in  /usr/local/apache2.2.11/conf/server.csr -signkey  /usr/local/apache2.2.11/conf/server.key -out  /usr/local/apache2.2.11/conf/server.crt

6. Virtual Host 설정
- extra/httpd-vhosts.conf 에 VirtualHost를 설정해준다
<VirtualHost ServerIP:SSLPort>
    DocumentRoot "Ruby on rails root"/public
    ServerName ServerIP:SSLPort
    SSLEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "/usr/local/apache2.2.11/conf/server.crt"
    SSLCertificateKeyFile "/usr/local/apache2.2.11/conf/server.key"
    ErrorLog "로그 디렉토리"
    CustomLog "로그 디렉토리"
</VirtualHost>
- httpd.conf에서 다음의 라인의 Include 주석을 제거한다.
# Secure (SSL/TLS) connections
Include conf/extra/httpd-ssl.conf

HTTPS로 Ruby on rails에 요청을 보내 본다..끝..
반응형
Posted by alias
,