Apacheのインストール


さて、次はApacheのインストールです。
実行にあたっては スーパー・ユーザ でカレント・ディレクトリを /usr/local/src/apache_1.3.31 にします。
ここも結構な時間がかかりました。

# make[Enter]
# make install[Enter]

SSLの証明書を作成する時は、make の後で make certificate とするとコンパイルの終わりの方でSSL Keyのパラメータ入力要求があります。
今回は後で設定したいので、make certificate は実行しませんでした。

コンパイル終了は下のような感じでした。

make 終了時
make install 終了時

1.httpd.confの編集

ディレクトリは /usr/local/apache/conf です。
ll で確認したら httpd.conf.default というのがありました。これを cp httpd.conf.default httpd.conf としました。
そして、vihttpd.conf を開き各種設定をします。SSL以外の項目については「Apacheのページ」を参考にしてください。
/ で文字列検索すると見つけやすいと思います。
<IfDefine SSL>
Listen 8081
Listen 443

</IfDefine>
La10では通常のポートを 8081にしてます。
一般的にはPortとあわせ80にします。
<IfDefine SSL>

##
## SSL Virtual Host Context
##

<VirtualHost _default_:443>

# General setup for the virtual host
DocumentRoot "/usr3/httpd/html/ssl_top"
ServerName la10.takaq.jp
ServerAdmin root@la10.takaq.jp
ErrorLog /var/log/httpd-error.log
TransferLog /var/log/httpd-access.log
本来ならば VirtualHostで運用するのでしょうが、私の環境ではDDNSにAレコードしかないので・・・・

DocumentRootは通常の位置と分けてみました。

後の確認のためにDocumentRootiに簡単なコンテンツを作っておきましょう。
これ以降は Server Certification Files などのSSLに関する記述がダラダラとあります。
ちなみに httpd.conf.default のファイル・サイズは 44,462byte 行数は 1,226行 ありました。
追記(重要)
httpd.conf内の以下部分(青アンダーライン)はディフォルトではリマークされているので、これをはずしましょう。
そうしないと、「サーバーが見つかりません」になってしまいます。

2.SSL Keyの作成

次にSSL Keyを作成しました。
ディレクトリは /usr/local/src/apache_1.3.31 です。(後でkey変更することを考えるとソースは置いといた方がいいようです)
# make certificate[Enter]
次のような入力要求がありますので、適宜入力しました。
Signature Algorithm ((R)SA or (D)SA) [R]:R
 → 認証方式は: RSA

1. Country Name (2 letter code) [XY]:JP
 → 国名は: JAPAN

2. State or Province Name (full name) [Snake Desert]:Miyagi
 → 都道府県は:Miyagi

3. Locality Name (eg, city) [Snake Town]:Sendai
 → 市区町村は:Sendai

4. Organization Name (eg, company) [Snake Oil, Ltd]:Communication Society

 → 団体名、企業名は:Communication Society

5. Organizational Unit Name (eg, section) [Webserver Team]:
 → 所属部署は:(Enterのみ)

6. Common Name (eg, FQDN) [www.snakeoil.dom]:takaq1.plala.jp
 → 組織名は:takaq1.plala.jp

7. Email Address (eg, name@FQDN) [www@snakeoil.dom]:master@la10.takaq.jp
 → メールアドレスは:master@la10.takaq.jp

8. Certificate Validity (days) [365]:365
 → 証明書の有効期限は:365

Certificate Version (1 or 3) [3]:3
 → 証明書のバージョンは:3

Encrypt the private key now? [Y/n]:Y
 → 証明書の暗号化を行うか:Y

Enter PEM pass phrase: *****
 → パスワード入力:*****

Verifying password - Enter PEM pass phrase:*****
 → パスワード再入力:*****
・・・で終わりは次のようになりました。
ここで、ディレクトリを /usr/local/src/apche1_3.31/conf に移動し ll で確認してみると ssl.crl, ssl.crt, ssl.csr, ssl.key, ssl.prm というディレクトリが出来ていました。
# cp -R ssl* /usr/local/apache/conf[Enter] としてコピーしました。
そして、/usr/local/apache/conf の下にある ssl.crl, ssl.crt, ssl.csr, ssl.key, ssl.prm 内をchmodroot権限の読み取りのみ許可しました。(セキュリティのため)

3.起動の確認

自動起動にする前にコマンドラインから起動を確認してみました。
# /usr/local/apache/bin/apachectl startssl[Enter]・・・・です。すると!
Apache/1.3.31 mod_ssl/2.8.19 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide us with the pass phrases.

Server la10.takaq.jp:443 (RSA)
Enter pass phrase:(********)

Ok: Pass Phrase Dialog successful.
上のように「パスフレーズ」の入力を求められました。ここは、先に作成したSSL keyパスフレーズを入力します。
この状態で top で見ると httpd が動いていました。
次にクライアントPCのブラウザから https://うんたらかんたら/ でアクセスしてみました。すると・・・・
こんなん表示しました。どうやらOKのようです。
そして、「はい(Y)」を選択するとコンテンツを表示しブラウザの右下に「鍵」マークを表示しました。
停止は # /usr/local/apache/bin/apachectl stop[Enter]・・・・です。

4.自動起動の設定

次のようなファイルを作成しファイル名をapache.shとして /usr/local/etc/rc.d に置きました。
#!/bin/sh


case "$1" in
start)
[ -x /usr/local/apache/bin/apachectl ] && /usr/local/apache/bin/apachectl startssl > /dev/null && echo -n ' apache start'
;;
stop)
[ -r /usr/local/apache/logs/httpd.pid ] && /usr/local/apache/bin/apachectl stop > /dev/null && echo -n ' apache stop'
;;
*)
echo "Usage: `basename $0` {startssl|stop}" >&2
;;
esac

exit 0
リブートする前にシェルが正しいかどうか確認しました。
スタート → # sh /usr/local/etc/rc.d/apache.sh start[Enter]
ストップ → # sh /usr/local/etc/rc.d/apache.sh stop[Enter]

5.実際の確認

サーバーをリブートしクライアントPCから確認しました。

6.追記

ここまでの設定では、Apache の起動時に必ず「パスフレーズ」の入力が必要です。
「パスフレーズ」の入力をしないでも済む方法がありますが、セキュリテイ上心配なので対応しないことにしました。
「起動時一回だけだから、まぁーいっか!」
平成20年02月10日(日) 追記
やっぱ起動時のパスフレーム入力が面倒なので次のようにして入力がいらないようにしました。
xc13# cd /usr/local/apache/conf/ssl.key
xc13# pwd
/usr/local/apache/conf/ssl.key
xc13# ll
total 8
-rw-r--r-- 1 root wheel 1207 10/ 5 22:34 README.KEY
-rw-r--r-- 1 root wheel 963 10/ 5 22:34 ca.key
-r-------- 1 root wheel 963 10/ 5 22:34 server.key
-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-ca-dsa.key
-r-------- 1 root wheel 887 10/ 5 22:34 snakeoil-ca-rsa.key
-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-dsa.key
-r-------- 1 root wheel 891 10/ 5 22:34 snakeoil-rsa.key
xc13# openssl rsa < server.key > server.key.out
read RSA key
Enter PEM pass phrase:(パスフレーズを入力します)
writing RSA key
xc13# ll
total 9
-rw-r--r-- 1 root wheel 1207 10/ 5 22:34 README.KEY
-rw-r--r-- 1 root wheel 963 10/ 5 22:34 ca.key
-r-------- 1 root wheel 963 10/ 5 22:34 server.key
-rw-r--r-- 1 root wheel 887 2/10 16:25 server.key.out
-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-ca-dsa.key
-r-------- 1 root wheel 887 10/ 5 22:34 snakeoil-ca-rsa.key
-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-dsa.key
-r-------- 1 root wheel 891 10/ 5 22:34 snakeoil-rsa.key
xc13# mv server.key server.key.org
xc13# mv server.key.out server.key
xc13# ll
total 9
-rw-r--r-- 1 root wheel 1207 10/ 5 22:34 README.KEY
-rw-r--r-- 1 root wheel 963 10/ 5 22:34 ca.key
-rw-r--r-- 1 root wheel 887 2/10 16:25 server.key
-r-------- 1 root wheel 963 10/ 5 22:34 server.key.org

-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-ca-dsa.key
-r-------- 1 root wheel 887 10/ 5 22:34 snakeoil-ca-rsa.key
-r-------- 1 root wheel 668 10/ 5 22:34 snakeoil-dsa.key
-r-------- 1 root wheel 891 10/ 5 22:34 snakeoil-rsa.key
xc13#

xc13# sh /usr/local/etc/rc.d/apache.sh stop
apache stopxc13#
xc13# sh /usr/local/etc/rc.d/apache.sh start (---->実施前はパスフレーズ入力が要りました)
apache startxc13#
xc13#

PC-9821La10活用苦労談へ戻る

FreeBSD構築苦労談へ戻る

サイトトップへ