トップ   サーバー構築   旅行日記   リンク   About  

Apache + OpenSSL

SSLとはネットスケープ社が開発した、HTTPの情報を暗号化する仕組みです。
そのHTTPの暗号化技術のソースコードを開放しているのがOpen SSLです。
ホームページなどの入力フォームで入力された情報は第三者によって参照される恐れがある。
そこで、アクセスするたびにサーバーが発行する鍵をクライアントが受け取り、1対1のセッションを張ることで、サーバーとクライアント以外は暗号化された文字列が表示される仕組みになる。

インストール

openssl-0.9.7d.tar.gz
tar xvfz openssl-0.9.7d.tar.gz
cd openssl-0.9.7d
./config
make
make install

SSLライブラリを追加

 vi /etc/ld.so.conf	
以下を追加
 /usr/local/ssl/lib
設定を反映させる
 /sbin/ldconfig -v
***

Apacheに組み込む

 tar xvfz httpd-2.0.53.tar.gz
 cd httpd-2.0.53-rc1
 ./configure --enable-so --enable-ssl \
           --with-ssl=/usr/local/ssl \
           --enable-deflate=shared  \
           --enable-dav_fs=shared \
           --enable-dav=shared
           --enable-proxy
 make
 make install

httpd.confの記述の確認

/usr/local/apache2/conf/httpd.conf にSSLの設定ファイルに関する記述があるかどうかを確認します。
   Include conf/ssl.conf

ssl.conf の設定

/usr/local/apache2/conf/ssl.conf を編集する。
以下の2行に証明書と秘密鍵の格納する場所を示します。
   SSLCertificateFile ファイルのパス (証明書の格納位置)
   SSLCertificateKeyFile ファイルのパス (秘密鍵の格納位置)
/usr/local/apache2/conf/ssl.key
今回は上記フォルダを作成し、この中に証明書と秘密鍵を格納する。
***秘密鍵の作成 [#peae4eba]
 openssl genrsa -des3 -out server.key 1024
パスワードを入力します。このパスワードは自己証明書を作成するときに必要になります。
4文字以下のパスワードを指定するとエラーになります。

オプションの説明

genrsa
作成する鍵を指定するオプションです。今回はRSAというタイプの鍵を作成します。
-des3
どの鍵作成のアルゴリズムを使用するか指定するオプションです。今回はDES3というアルゴリズムを使用します。
-out
鍵ファイルの名前を指定するオプションです。今回は、「server.key」という名前で保存します。
1024
鍵の長さを指定します。今回は1024ビットにします。

自己証明書の作成

openssl req -new -x509 -days 365 -key server.key -out server.crt
秘密鍵を作成するときに入力したパスワードを入力します。

オプションの説明

req
証明書の署名要求(CSR)の作成をするオプションです。今回は自己証明書を作成する為、指定します。
-new
新規に証明書要求ファイルを作成するオプションです。今回は自己証明書を作成する為、指定します。
-x509
X.509形式の証明書要求ファイルを作成するオプションです。
-days
証明書の有効期限を指定するオプションです。今回は365日(1年)とします。
-key
入力する秘密鍵のファイル名を指定するオプションです。ここは上記で作成した、秘密鍵の鍵ファイル「server.key」を指定します。
-out
出力する証明書のファイル名を指定するオプションです。今回は、「server.crt」という名前で保存します。

デーモンの起動と停止

SSL(HTTPS)デーモンの起動
 /usr/local/apache2/bin/apachectl startssl
SSL(HTTPS)デーモンの停止
/usr/local/apache2/bin/apachectl stopssl

SSLの起動確認

クライアント側からの確認
設定したサーバーに https://サーバーのドメイン でアクセスしてみる。
SSLが正しく動作していれば、証明書のメッセージがでる。
そしてOKを押すとIEであれば右下に南京錠のマークが出ます。

サーバー側からの確認 下記のようにプロセスでhttpdを確認するとDSSLモードで起動していることが確認できる。
 ps -ef | grep httpd
824 ?  S   0:00 /usr/local/apache2/bin/httpd -k start -DSSL
825 ?  S   0:00  \_ /usr/local/apache2/bin/httpd -k start -DSSL
826 ?  S   0:00  \_ /usr/local/apache2/bin/httpd -k start -DSSL
827 ?  S   0:00  \_ /usr/local/apache2/bin/httpd -k start -DSSL
828 ?  S   0:00  \_ /usr/local/apache2/bin/httpd -k start -DSSL
829 ?  S   0:00  \_ /usr/local/apache2/bin/httpd -k start -DSSL

ポートの確認

netstatでポートを確認する
 netstat -pln | grep 443
 tcp  0  0 0.0.0.0:443    0.0.0.0:*        LISTEN      3238/httpd
Copyight (C) qurataro.com 2004-2007 quraportal All Rights. Reserved.