□Apache2のSSL対応
□Apache2のSSL対応
参考URL:
http://www.openssl.org/
先に混乱するといけないので順番を書いておくと
1.OpenSSL の config, make, install
2.Apache2 の SSL対応化 configuer, make, make install
3.PHP5 の configure, make, make install
4.SSL鍵の作成
となる。(いやー、簡単になりましたな!)
Apache2 で SSL をするには、OpenSSLを使う。
mod_ssl は Apache2 では標準で入っているので入れる必要は無い。
・その1(OpenSSL)
まずはOpenSSLのインストールから。
http://www.openssl.org/
ここから最新版を取ってくる。
tar xvzf ./package/openssl-0.9.8k.tar.gz
cd openssl-0.9.8k/
./Configure linux-generic32 –prefix=/usr shared
./config –prefix=/usr shared
make
make test
make install
補足:バージョン 0.9.6c は使っちゃいけません。あとで怒られます。
・その2(Apache2のSSL対応)
とりあえずSSL用にディレクトリを作ってNORMALからコピーして、
cd /usr/src/
tar xvzf package/httpd-2.2.11.tar.gz
mv ./httpd-2.2.11 ./httpd-2.2.11-SSL
cd ./httpd-2.2.11-SSL/
make distclean
./configure \
–prefix=/usr/local/apache2-SSL \
–enable-info \
–enable-auth-dbm \
–enable-rewrite \
–enable-proxy \
–enable-so \
–enable-mods-shared=most \
–enable-suexec \
–enable-ssl \
–with-ssl=../openssl-0.9.8k \
(–with-ssl=/usr/ssl \)
–with-suexec-caller=www \
–with-suexec-docroot=/usr/local/apache2-SSL/htdocs \
–with-suexec-logfile=/usr/local/apache2-SSL/logs/cgi.log \
–with-suexec-userdir=html \
–with-suexec-uidmin=100 \
–with-suexec-gidmin=100 \
–with-included-apr
make
make install
違うところは、
> –prefix=/usr/local/apache2-SSL \
> –enable-ssl \
> –with-ssl=../openssl-x.x.xx \
> (–with-ssl=/usr/ssl \)
> –with-suexec-docroot=/usr/local/apache2-SSL/htdocs \
> –with-suexec-logfile=/usr/local/apache2-SSL/logs/cgi.log \
の部分です。
・その3(php)
ま、やることはノーマルApache2のときと同じですが、インストール先が
違いますのでご注意ください。
1.GD が要らない場合
cd /usr/src/php-5.3.0/
make distclean
./configure \
–with-pgsql \
–with-apxs2=/usr/local/apache2-SSL/bin/apxs \
–with-openssl \
–enable-ftp \
–enable-mbstring
make
make install
2.GD が要る場合
例:
cd /usr/src/php-5.3.0/
make distclean
./configure \
–with-pgsql \
–with-apxs2=/usr/local/apache2-SSL/bin/apxs \
–with-openssl \
–with-gd \
–with-iconv \
–with-jpeg-dir=/usr \
–with-png-dir=/usr \
–with-zlib-dir=/usr \
–with-xpm-dir=/usr \
–with-ttf=/usr \
–with-freetype-dir=/usr/X11R6 \
–enable-gd-native-ttf \
–enable-gd-jis-conv \
–enable-ftp \
–enable-mbstring
libiconv を後から入れたなら Makefile の EXTRA_LIBS に -liconv を追加
make
make install
として、なんにしても作り直して下さい。
・その4(SSL-Key)
でもって Apache2-SSL の為の鍵をつくりましょう!!
まずは大事な鍵を作りたい(置きたい)ディレクトリを作って、そこで
0.鍵を置く場所を決める
鍵は大事ですので、/root/CSR におくことにします。
mkdir /root/CSR
cd /root/CSR
1.ランダムデータの生成
/usr/bin/openssl md5 /usr/bin/* > rand.dat
2.key.pem (秘密鍵)の生成
/usr/bin/openssl genrsa -rand rand.dat -des3 1024 > key.pem
このときにパスフレーズを聞かれるので、適当に入力するが、入力した
パスフレーズを忘れないようにする事! あとで使うから。
3.CSR の生成
/usr/bin/openssl req -new -key key.pem -out csr.pem
とすると、パスフレーズを求められたあとに下記のように聞かれるので
適当に入力すること。最後の2つ(チャレンジパスワードとか)は要ら
ない。
> Country Name (2 letter code) [AU]:JP
> State or Province Name (full name) [Some-State]:Tokyo
> Locality Name (eg, city) []:Shibuya-ku
> Organization Name (eg, company) [Internet Widgits Pty Ltd]: F.W.Networks
> Organizational Unit Name (eg, section) []: Internet Div.
> Common Name (eg, YOUR name) []:ssl.fwnet.jp
> Email Address []:ssl@fwnet.jp
>
> Please enter the following ‘extra’ attributes
> to be sent with your certificate request
> A challenge password []:
> An optional company name []:
で、本来ならここで出来たcsr.pem をSSL鍵発行会社に送って、お金を払う
ことになります。手続きが無事に済んだなら、発行会社から cert.pem 鍵
がおくられてきます。
で、今回は
認証キー:/root/CSR/cert.pem
秘密キー:/root/CSR/key.pem
に鍵を置いたので、/usr/local/apache2-SSL/conf/httpd.conf の中で
> # Secure (SSL/TLS) connections
> Include conf/extra/httpd-ssl.conf
というようにコメントアウトを外して有効にしてから、さらにSSL関連の
設定ファイル /usr/local/apache2-SSL/conf/extra/httpd-ssl.conf を修正
します。
さらに
>
>
> # General setup for the virtual host
> DocumentRoot “/usr/local/apache2-SSL/htdocs”
> ServerName www.fwnet.or.jp:443
> ServerAdmin webmaster@fwnet.or.jp
> ErrorLog /usr/local/apache2/logs/ssl_error_log
> TransferLog /usr/local/apache2/logs/ssl_access_log
> :
> #SSLCertificateFile /usr/local/apache2/conf/server.crt
> #SSLCertificateFile /usr/local/apache2/conf/server-dsa.crt
> SSLCertificateFile /root/CSR/cert.pem
> :
> #SSLCertificateKeyFile /usr/local/apache2/conf/server.key
> #SSLCertificateKeyFile /usr/local/apache2/conf/server-dsa.key
> SSLCertificateKeyFile /root/CSR/autorun_key.pem
というように書き換えて下さい。おっと、autorun_key.pem ですが、
いちいちパスフレーズを求められるのが面倒な場合には、
/usr/bin/openssl rsa -in key.pem -out autorun_key.pem
として、普通の「key.pem」から作れます。(^-^)/
あとは NORMAL の時の起動スクリプトを修正して実行しましょう。
:
:
> #
> # SSL HTTPD
> /usr/local/apache2-SSL/bin/httpd -f /usr/local/apache2-SSL/conf/httpd.conf
> echo “SSL ”
> #
> echo “Start.”
https://www.fwnet.jp/
アクセスして鍵がつくかどうか、鍵の情報はどうか等を確認する事。
補足:apache-SSL/ はクリアな状態で作ること。
補足:iptables で 443番ポートを閉じているなら開けるのを忘れずに。
補足:とりあえず自分で cert.pem をつくる
cert.pem は本来はお金がかかりますが、動作確認とかをする場合なら
下記のように試し版を作ることも可能です。
openssl x509 -in csr.pem -out cert.pem \
-req -signkey key.pem -days 30
出来た cert.pem を組み込んでも「正式なもんじゃないよ」と怒られる
けど、それさえ目をつぶれば鍵がかかるので、詳細情報が設定した通り
になっているか確認しましょう。
ちなみに日本ベリサインでは実際のcsr.pemからテスト用のcert.pemを
発行してくれるサービスを無料で行なっています。ここを利用するのも
いいでしょう。
http://www.verisign.co.jp/server/trialserver/index.html