Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □Apache2のSSL対応

□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

Name of author

Name: admin

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です