前へ << SSL/TLS の導入 (1) | SSL/TLS の導入 (3) >> 次へ |
ここでは Apache-2.x と Apache-1.x の設定方法について解説します。
簡単に違いを説明しておきます。
apache-1.x 時代は「www/apache13 が HTTP 専用、www/apache13-modssl が HTTP と HTTPS 用」となっていましたが、 apache-2.x では www/apache2 に一本化されています。
# cd /usr/ports/www/apache2 # make installまたは
# pkg_add /foo/bar/apache-2.0.xx.tbzとします。
/usr/local/etc/apache2/conf/httpd.conf を適当に修正します (ServerName など)。
/etc/rc.conf に
apache2_enable="YES"を追加します。
# /usr/local/etc/rc.d/apache2.sh start Starting apache2.で apache が起動します。何かエラーが出たら適当に対処してください。
# /usr/local/etc/rc.d/apache2.sh start Stopping apache2. Waiting for PIDS: 76730.で apache を終了させます。
一度 start・stop して、正常に起動することを確認しましょう。 また、http://ホスト名/ にブラウザでアクセスできることを確認してください。
# cd /usr/local/etc/apache2/ # mkdir ssl.key ssl.crt # cp /foo/bar/server.key /usr/local/etc/apache2/ssl.key/ # cp /foo/bar/server.crt /usr/local/etc/apache2/ssl.crt/ # chmod 400 /usr/local/etc/apache2/ssl.key/server.keyディレクトリ名やファイル名を変更したい場合は、 /usr/local/apache2/conf/ssl.conf を修正してください。
そして /etc/rc.conf に
apache2ssl_enable="YES"を追加します。つまり /etc/rc.conf には最終的に
apache2_enable="YES" apache2ssl_enable="YES"の 2行を追加したことになります。
# /usr/local/etc/rc.d/apache2.sh stop # /usr/local/etc/rc.d/apache2.sh startとして、https://ホスト名/ にアクセスできたら成功です。
% /usr/local/apache2/bin/httpd -l Compiled in modules: (略) mod_ssl.c (略)
http://httpd.apache.org より最新版の httpd-2.0.xx.tar.gz を取得し、 以下のようにコンパイルします。
% gzip -d httpd-2.0.xx.tar.gz % tar xf httpd-2.0.xx.tar % cd httpd-2.0.xx % ./configure --enable-ssl % make % su # make installバイナリ・設定ファイルなど一式は /usr/local/apache2/ にインストールされます。
/usr/local/apache2/conf/httpd.conf を適当に修正します (ServerName など)。
# /usr/local/apache2/bin/apachectl startで apache が起動、
# /usr/local/apache2/bin/apachectl stopで終了します。
一度 start・stop して、正常に起動することを確認しましょう。 また、http://ホスト名/ にブラウザでアクセスできることを確認してください。
# cd /usr/local/apache2/conf/ # mkdir ssl.key ssl.crt # cp /foo/bar/server.key /usr/local/apache2/conf/ssl.key/ # cp /foo/bar/server.crt /usr/local/apache2/conf/ssl.crt/ # chmod 400 /usr/local/apache2/conf/ssl.key/server.keyディレクトリ名やファイル名を変更したい場合は、 /usr/local/apache2/conf/ssl.conf を修正してください。
サーバを起動する際は、apachectl start ではなく、startssl とします。
# /usr/local/apache2/bin/apachectl startsslもし start としてしまったら HTTP の方だけが有効になってしまうので、 一度 stop して startssl しなおしてください。
なお、stopssl はありません。startssl で起動、stop で終了です。
Listen 443を
Listen 0.0.0.0:443と修正しました。ssl.conf のそれ以外の部分は修正していません。 httpd.conf は全く修正しませんでした。
なお、ssl.conf の Listen 以外を修正しなくても一応動く、というだけなので、 実運用では必要な部分を修正しましょう。
簡単に言うと、 http://httpd.apache.org から apache-1.xx.xx.tar.gz をダウンロードし、 さらに http://www.modssl.org から mod_ssl-2.yy.yy-1.xx.xx.tar.gz をダウンロードして (apache-1.xx.xx.tar.gz と mod_ssl-2.yy.yy-1.xx.xx.tar.gz のバージョンはあわせること)、 以下のようにコンパイルします。
% gzip -d apache-1.xx.xx.tar.gz % tar xf apache-1.xx.xx.tar % gzip -d mod_ssl-2.yy.yy-1.xx.xx.tar.gz % tar xf mod_ssl-2.yy.yy-1.xx.xx.tar.gz % cd mod_ssl-2.yy.yy % ./configure --with-apache=../apache_1.xx.xx --enable-module=so --enable-shared=ssl % cd ../apache_1.xx.xx % make % make certificate TYPE=dummy % su # make installてな感じでコンパイルして、server.key と server.crt を適当に配置すればよいような 気がしないでもないですが、もう忘れました。
apache-1.x に脆弱性が発見された場合などは、それに対応した mod_ssl がリリースされるまでに数日かかっていたこともあったのですが、 apache-2.x ではそういうことはなくなりました。
理由はプロジェクトが活発でないからです。例えば apache-1.3.33 がリリースされたのが 2004/10/28、それに対応する mod_ssl がリリースされたのが 2日後の 2004/10/30 でした。 一方、Apache-SSL は 2004/11/10 に対応版がリリースされています。
このケースはむしろ対応が早かった方で、数ヶ月〜数年放置されていた時代もあったはずです。 例えば apache-1.3.31 と apache-1.3.32 に対応する Apache-SSL はリリースされていません。 mod_ssl はしっかりリリースされています。
いずれにせよ、現時点では SSL/TLS 機能が標準装備されている apache-2.x を使う方がよいでしょう。 ちなみに apache-2.x で使用されているのは Apache-SSL ではなく、mod_ssl の方です。
前へ << SSL/TLS の導入 (1) | SSL/TLS の導入 (3) >> 次へ |
ご意見・ご指摘は Twitter: @68user までお願いします。