ライン

ポイント:バーチャルホスト用の設定ファイルのミスに注意する

ライン

 はじめに

www/apache22

 FreeBSD 9.1に新規で導入するメモを取り直して作成します。
インストールは、オプション選択なしにすべてportsの指定のままで導入を終えます。

# cd /usr/ports/www/apache22
# make install clean

設定ファイル等を含め、このような感じに設置されています。

# cd /usr/local/www/apache22
# ls -la
total 24
drwxr-xr-x  6 root  wheel   512 Mar 30 18:39 .
drwxr-xr-x  3 root  wheel   512 Mar 30 18:39 ..
drwxr-xr-x  2 root  wheel   512 Mar 30 18:39 cgi-bin
drwxr-xr-x  2 root  wheel   512 Mar 30 18:39 data
drwxr-xr-x  3 root  wheel  1024 Mar 30 18:39 error
drwxr-xr-x  3 root  wheel  3584 Mar 30 18:39 icons

 FreeBSD上で動作させるために、/etc/rc.conf に追加設定を加えます。

# 2013-03-30
# Apache
apache22_enable="YES"
apache22_http_accept_enable="YES"

 まずは、こんなであがるかを確認します。

# /usr/local/etc/rc.d/apache22 start

 問題なし。

普通にブラウザからも見えてきます。

 設定ファイル

/usr/local/etc/apache22

 このディレクトリの下に作成されています。

# cd /usr/local/etc/apache22
# ls -la
total 108
drwxr-xr-x  5 root  wheel    512 Mar 30 18:39 .
drwxr-xr-x  8 root  wheel   1024 Mar 30 19:54 ..
drwxr-xr-x  2 root  wheel    512 Mar 30 18:39 Includes
drwxr-xr-x  2 root  wheel    512 Mar 30 18:39 envvars.d
drwxr-xr-x  2 root  wheel    512 Mar 30 18:39 extra
-rw-r--r--  1 root  wheel  16838 Mar 30 18:39 httpd.conf
-rw-r--r--  1 root  wheel  12958 Mar 30 18:39 magic
-rw-r--r--  1 root  wheel  53011 Mar 30 18:39 mime.types

 Includesの下には、バーチャルドメイン用のそれぞれの設定ファイルを入れておきます。
example.co.jp.confなど。

<VirtualHost 192.168.1.251:80>
        ServerAdmin     webmaster@example.co.jp
        DocumentRoot    /opt/docs/example.co.jp
        ServerName      example.co.jp
        ServerAlias     www.example.co.jp
        UserDir         disabled
        ErrorLog        /opt/log/example.co.jp/http-example.co.jp-error.log
        CustomLog       /opt/log/example.co.jp/http-example.co.jp-access.log combined
<Directory "/opt/docs/example.co.jp">
        AllowOverride   all
        Options         all
        Order           allow,deny
        Allow from      all
</Directory>
</VirtualHost>

 例として、こんな風に作成してみます。
 例では、/opt/docs 以下にドメインごとにディレクトリを作成してドキュメントルートにしています。
FTPでは、ここにおくことを前提にしてアカウントを作成すればいいでしょう。
 ログも同様で、/opt/log 以下にドメインごとにログディレクトリを作成して、そこに生成させています。

 気にすべきは、この設定ファイルを追加した後に、Apacheの再起動(OSの再起動時も同様)に、この設定ファイルにミスがあると、Apache全体が「WARNING: failed to start apache22」として上がってこなくなるので、追加・修正の際には注意が必要です。
安易に修正して後で苦労する経験がそこそこにございます(涙)。
 ドキュメントルートとログディレクトリの作成とパーミッションには注意が必要です。

 httpd.confの修正も最低限で問題なし。
以下の例では、1080番のポートも開ける設定などを加えています。
その他、韓国のIPアドレス帯でうるさいアクセスがあったので、それを避けている設定例も加わっています。
最後には、バーチャルホストの設定が有効になるように、コメント担っていた業を外しています。

...

#Listen 12.34.56.78:80
Listen 80
# 2013-03-30
Listen 1080

...

    Order allow,deny
    Allow from all
# 2013-03-30
    Deny  from 61.247.222

...

# Virtual hosts
# 2013-03-30
Include etc/apache22/extra/httpd-vhosts.conf
...
# Secure (SSL/TLS) connections
# 2013-03-30
Include etc/apache22/extra/httpd-ssl.conf

...

 /usr/local/etc/apache22/extra/httpd-vhosts.confにサンプルに入っている内容はコメント化します。

 さて、せっかくなのでSSLの設定もやってしまうことにします。上記の設定ファイルはそのままでいいように作成します。

#openssl genrsa -out ./server.key 2048
Generating RSA private key, 2048 bit long modulus
..+++
...................................................+++
e is 65537 (0x10001)
#openssl req -new -days 3650 -key ./server.key -out ./server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:TOKYO
Locality Name (eg, city) []:SHINJUKU
Organization Name (eg, company) [Internet Widgits Pty Ltd]:EXAMPLE.CO.JP
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:WWW.EXAMPLE.CO.JP
Email Address []:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
#openssl x509 -in ./server.csr -out ./server.crt -req -signkey ./server.key -days 3650
Signature ok
subject=/C=JP/ST=TOKYO/L=SHINJUKU/O=EXAMPLE.CO.JP/CN=WWW.EXAMPLE.CO.JP
Getting Private key
# openssl x509 -inform pem -in ./server.crt -outform der -out ./server.der
# chmod 400 server.*

 これで完了。自己認証局のSSLが動くようになりました。

【改訂履歴】作成:2013/3/30 更新:-
【参考リンク】

*

Copyright © 1996,1997-2006,2007- by F.Kimura,