SSLを導入することにしました。
ここでは、プピュラーなopensslとmodsslの設定について説明します。
OpenSSL0.98をopenssl-0.9.8k.tar.gzよりダウンロードします。
ApacheSSLをapach_1.3.41.tar.gzよりダウンロードします。
◆セキュアWebの設定は以下の順序で行ないます。 前準備 open_sslのインストール apache_sslのインストール クライアント証明書リクエストの発行 証明書発行に必要な CSR の作成 電子証明書の作成 httpd.confの編集 SSLの起動と停止編集 SSLの動作確認 ◆前準備 セキュアWeb環境を構築するには「perl」と「gcc」が必要です。。 perlの確認は以下のコマンドで確認してください。 # perl -v ←でperlがインストールされていることを確認。 gccの確認は以下のコマンドで確認してください。 # gcc -v ←でgccがインストールされていることを確認。 トップへ戻る ◆open_sslのインストール #/usr/local/src /usr/local/src# tar zxvf openssl-0.9.8k.tar.gz ← openssl-0.9.8k.tar.gzを解凍をする /usr/local/src #cd openssl-0.9.6 /usr/local/src/openssl-0.9.6# ./config /usr/local/src/openssl-0.9.6# make /usr/local/src/openssl-0.9.6# make test /usr/local/src/openssl-0.9.6# su /usr/local/src/openssl-0.9.6# make install トップへ戻る ◆apache_sslのインストール # killall httpd ←でApacheを終了させる。 # rm -r /var/lib/Apache ←Apacheをディレクトリ毎削除をしました # /usr/local/src /usr/local/src# tar zxvf apach_1.3.41.tar.gz←解凍をする /usr/local/src# mv apache_1.3.41+ssl_1.60.tar.gz ./apache_1.3.41/ /usr/local/src# cd apache-1.3.41 /usr/local/src/apache_1.3.41#tar zxvf apache_1.3.41+ssl_1.60.tar.gz←Apachesslを解凍 /usr/local/src/apache_1.3.41# patch -p1 < SSLpatch←patchコマンドでApache-SSLを適用する。 /usr/local/src/apache_1.3.41# ./configure --prefix=/var/lib/Apache --enable-rule=SHARED_CORE \ > --with-layout=Apache --enable-module=so --enable-module=status --enable-module=info \ > --enable-module=rewrite --enable-module=usertrack /usr/local/src/apache_1.3.41# make /usr/local/src/apache_1.3.41# su /usr/local/src/apache_1.3.41# make install トップへ戻る ◆クライアント証明書リクエストの発行 # openssl genrsa -des 1024 > /usr/local/ssl/private/pri.pem Enter Press Phrase: ←パスワードを入力します。 Verfiying Enter Press Phrase: ←同じパスワードを入力します。 ここで作成されたファイルの内容が表示されます。 ----------END RSA PRIVATE KEY------- ←メッセージを確認します。 # chmod 600 /usr/local/ssl/private/pri.pem トップへ戻る ◆証明書発行に必要な CSR の作成 # # openssl req -new -days 365 -key /usr/local/ssl/private/pri.pem -out /usr/local/ssl/csr.pem Enter pass phrase for /usr/local/ssl/private/pri.pem ←クライアント証明書リクエストの発行で入力したパスワードを入れます。 Country Name (2 letter code) [AU]: ←JPと入力します。 State of Province Name (full name) [Some-state]: ←TOKYOと入力しました。 Localiity Name (eg, city) []: ←KITA-KUと入力しました。 Organization Name(eg, company)[Internet Widgits Pty Ltd]: ←組織名(会社名など)です。hero-island,corpと入力しました。 Organization Unit Name (eg, section)[]: ←部門名などです。hero-islandと入力しました。 Common Name (eg, your name or your server's hostname)[]: ←サーバの名称などです。www.hero-island.ne.jpと入力しました。 Email Address []:←管理者のメールアドレスを入力します。 Please enter following 'extra' attributes to be sent with your certificate request A challenge password[]: ←パスワードを入力します。 An optional company name: ←別会社名があれば入力します。私の場合は空enterです。 トップへ戻る ◆電子証明書の作成 通常では、この CSR を使って認証局に認証の依頼をしますが, ここでは自分で電子証明書を作成します。 # openssl x509 -in /usr/local/ssl/csr.pem -out /usr/local/ssl/certs/httpsd.pem -req -signkey /usr/local/ssl/private/pri.pem -days 365 Enter pass phrase for /usr/local/ssl/private/pri.pem ←クライアント証明書リクエストの発行で入力したパスワードを入れます。 Signature ok が上の方に表示されています。 トップへ戻る ◆httpd.confの編集 サーバの鍵ファイル(ca.key)と証明書ファイル(ca.der)が準備できたら、いよいよApacheのhttpd.confの設定です。 httpd.confの基本的な設定については、Apacheの設定で説明していますので、ここではSSLの部分のみを説明します。 # cd /var/lib/apache/conf /var/lib/apache/conf/# cp httpsd.conf httpd.conf←httpsd.confをhttpd.comfにcopyします /var/lib/apache/conf/# vi httpd.conf← vi コマンドでhttpd.comfを開きます。 以下のようにhttpd.confを設定します。 Port 443 ←Port80を443に変更します。 Listen 443 ←以下の赤字部分を追加します。 Listen 80 ServerType standalone SSLCacheServerPort logs/gcache_port SSLCacheServerPath bin/gcache SSLSessionCacheTimeout 300 SSLCertificateKeyFile /usr/local/ssl/private/pri.pem SSLCertificateFile /usr/local/ssl/certs/httpsd.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth < VirtualHost _default_:80 > ←VirtualHostの部分を以下のように書き換えます。 Port 80 SSLDisable < /VirtualHost > < VirtualHost _default_:443 > Port 443 SSLCertificateKeyFile /usr/local/ssl/private/pri.pem SSLCertificateFile /usr/local/ssl/certs/httpsd.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth DocumentRoot /var/lib/apache/htdocs < /VirtualHost > トップへ戻る ◆SSLの起動と停止 Apacheの起動と停止は以下のコマンドで行います。 # /var/lib/apache/bin/httpsdctl start ←起動する場合 # /var/lib/apache/bin/httpsdctl stop ←停止する場合 トップへ戻る ◆動作確認 クライアントPCのブラウザーを立ち上げて以下の動作確認を行います。 http://localhost https://localhost 上記のような画面が表示されます。正規の認証機関に提出した場合は表示されません。 また、ブラウザーの右下にも以下のような「鍵」が表示されます。 トップへ戻る 前ページへ戻る ご質問・お問い合わせ - 免責事項 Copyright (C) 1998 hero-island. All Rights Reserved.
◆前準備 セキュアWeb環境を構築するには「perl」と「gcc」が必要です。。
# perl -v ←でperlがインストールされていることを確認。
# gcc -v ←でgccがインストールされていることを確認。
トップへ戻る
◆open_sslのインストール
#/usr/local/src /usr/local/src# tar zxvf openssl-0.9.8k.tar.gz ← openssl-0.9.8k.tar.gzを解凍をする /usr/local/src #cd openssl-0.9.6 /usr/local/src/openssl-0.9.6# ./config /usr/local/src/openssl-0.9.6# make /usr/local/src/openssl-0.9.6# make test /usr/local/src/openssl-0.9.6# su /usr/local/src/openssl-0.9.6# make install
◆apache_sslのインストール
# killall httpd ←でApacheを終了させる。 # rm -r /var/lib/Apache ←Apacheをディレクトリ毎削除をしました # /usr/local/src /usr/local/src# tar zxvf apach_1.3.41.tar.gz←解凍をする /usr/local/src# mv apache_1.3.41+ssl_1.60.tar.gz ./apache_1.3.41/ /usr/local/src# cd apache-1.3.41 /usr/local/src/apache_1.3.41#tar zxvf apache_1.3.41+ssl_1.60.tar.gz←Apachesslを解凍 /usr/local/src/apache_1.3.41# patch -p1 < SSLpatch←patchコマンドでApache-SSLを適用する。 /usr/local/src/apache_1.3.41# ./configure --prefix=/var/lib/Apache --enable-rule=SHARED_CORE \ > --with-layout=Apache --enable-module=so --enable-module=status --enable-module=info \ > --enable-module=rewrite --enable-module=usertrack /usr/local/src/apache_1.3.41# make /usr/local/src/apache_1.3.41# su /usr/local/src/apache_1.3.41# make install
◆クライアント証明書リクエストの発行
# openssl genrsa -des 1024 > /usr/local/ssl/private/pri.pem Enter Press Phrase: ←パスワードを入力します。 Verfiying Enter Press Phrase: ←同じパスワードを入力します。 ここで作成されたファイルの内容が表示されます。 ----------END RSA PRIVATE KEY------- ←メッセージを確認します。 # chmod 600 /usr/local/ssl/private/pri.pem
◆証明書発行に必要な CSR の作成
# # openssl req -new -days 365 -key /usr/local/ssl/private/pri.pem -out /usr/local/ssl/csr.pem Enter pass phrase for /usr/local/ssl/private/pri.pem ←クライアント証明書リクエストの発行で入力したパスワードを入れます。 Country Name (2 letter code) [AU]: ←JPと入力します。 State of Province Name (full name) [Some-state]: ←TOKYOと入力しました。 Localiity Name (eg, city) []: ←KITA-KUと入力しました。 Organization Name(eg, company)[Internet Widgits Pty Ltd]: ←組織名(会社名など)です。hero-island,corpと入力しました。 Organization Unit Name (eg, section)[]: ←部門名などです。hero-islandと入力しました。 Common Name (eg, your name or your server's hostname)[]: ←サーバの名称などです。www.hero-island.ne.jpと入力しました。 Email Address []:←管理者のメールアドレスを入力します。 Please enter following 'extra' attributes to be sent with your certificate request A challenge password[]: ←パスワードを入力します。 An optional company name: ←別会社名があれば入力します。私の場合は空enterです。
◆電子証明書の作成 通常では、この CSR を使って認証局に認証の依頼をしますが, ここでは自分で電子証明書を作成します。
# openssl x509 -in /usr/local/ssl/csr.pem -out /usr/local/ssl/certs/httpsd.pem -req -signkey /usr/local/ssl/private/pri.pem -days 365 Enter pass phrase for /usr/local/ssl/private/pri.pem ←クライアント証明書リクエストの発行で入力したパスワードを入れます。 Signature ok が上の方に表示されています。
◆httpd.confの編集 サーバの鍵ファイル(ca.key)と証明書ファイル(ca.der)が準備できたら、いよいよApacheのhttpd.confの設定です。 httpd.confの基本的な設定については、Apacheの設定で説明していますので、ここではSSLの部分のみを説明します。
# cd /var/lib/apache/conf /var/lib/apache/conf/# cp httpsd.conf httpd.conf←httpsd.confをhttpd.comfにcopyします /var/lib/apache/conf/# vi httpd.conf← vi コマンドでhttpd.comfを開きます。
Port 443 ←Port80を443に変更します。 Listen 443 ←以下の赤字部分を追加します。 Listen 80 ServerType standalone SSLCacheServerPort logs/gcache_port SSLCacheServerPath bin/gcache SSLSessionCacheTimeout 300 SSLCertificateKeyFile /usr/local/ssl/private/pri.pem SSLCertificateFile /usr/local/ssl/certs/httpsd.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth < VirtualHost _default_:80 > ←VirtualHostの部分を以下のように書き換えます。 Port 80 SSLDisable < /VirtualHost > < VirtualHost _default_:443 > Port 443 SSLCertificateKeyFile /usr/local/ssl/private/pri.pem SSLCertificateFile /usr/local/ssl/certs/httpsd.pem SSLVerifyClient 0 SSLVerifyDepth 10 SSLFakeBasicAuth DocumentRoot /var/lib/apache/htdocs < /VirtualHost >
◆SSLの起動と停止 Apacheの起動と停止は以下のコマンドで行います。
# /var/lib/apache/bin/httpsdctl start ←起動する場合 # /var/lib/apache/bin/httpsdctl stop ←停止する場合
◆動作確認 クライアントPCのブラウザーを立ち上げて以下の動作確認を行います。 http://localhost https://localhost
上記のような画面が表示されます。正規の認証機関に提出した場合は表示されません。 また、ブラウザーの右下にも以下のような「鍵」が表示されます。
前ページへ戻る