準備
普通に、portsから導入したApache2は、既にSSLに対応している*1ので、追加のモジュール等のインストールは不要である。 後は、サーバーの秘密鍵を生成して、証明書を貰うだけで、ほとんど設定は終わり。
*1make時、明示的に「WITHOUT_SSL=yes」を指定しない限り、SSLモジュールは標準でビルドされる。
保存ディレクトリの作成
まず、Apache2の設定ファイルが置いてあるディレクトリに入り、その中に、サーバーの秘密鍵と証明書を入れるディレクトリを作成する。
# cd /usr/local/etc/apache2/
# mkdir -m 0700 ssl.{key,crt}
この中に入るファイルを他人に覗かれないよう、予めディレクトリのパーミッションを落としておいた方が良い。
CSRの作成
その秘密鍵を基に、CSR(Certificate Signing Request 証明書署名要請書)を作成。
# openssl req -new -key server.key -out server.csr
その際、対話的に、国名や住所などを質問されるけれども、適切なものを入力*2すること。そのまま、ENTERを押してスキップすると、デフォルトで用意されている値になってしまうので、空欄を明示したければ、「.」ピリオドだけを入力し、ENTERを押さなくてはならない。
*2認証機関は、ここで入力された情報に基づいて証明書を作成する。注意点として、「Common Name」の入力欄は、例えば「www.xdelta.net」の様に、サーバーの名前にすること。「*.xdelta.net」の様にワイルドカードも使用可能。
CSRの提出
サーバーの設定
サーバーの秘密鍵と証明書を、それぞれ、
- /usr/local/etc/apache2/ssl.key/server.key
- /usr/local/etc/apache2/ssl.crt/sever.crt
の位置に保存*4したのなら、/usr/local/etc/apache2/ssl.conf内の以下の箇所、
DocumentRoot "/usr/local/www/data" ServerName www.example.com:443 ServerAdmin you@example.com
を適宜、変更するだけで行けるはず。 後は、/etc/rc.confに、以下の行、
apache2ssl_enable="YES"
を追加して、サーバーを次のように、
/usr/local/etc/rc.d/apache2 restart
再起動すれば、SSLは有効になる。
通常、443番のポートでListenするので、外部からのアクセスを通したければ、Firewall等の設定を変えておく必要がある。
*4念のために各ファイルのパーミッションは600のように落とした方が望ましい。
関連情報
- FreeBSD/Apache2 - このWikiフォーラム内のApache 2.0に関するものの目次です。 F...