FreeBSD Apache - eiichiromomma/CVMLAB GitHub Wiki

(FreeBSD) Apache

Apacheについていろいろ

httpのアクセスをhttpsに飛ばす

mod_rewrite

httpd.confに記入。設定はネットを探す。

注意点は

  1. mod_rewriteを読んだ後に設定を記述する
  2. VirtualHostを使っている場合は<VirtualHost></VirtualHost>の中に記述する

の2点。

.htaccessで認証

.htaccessの設定

以下の内容で認証をかけたいディレクトリに.htaccessを作成。

AuthType Basic
AuthName "入力を促したりするコメント"
AuthUserFile パスワードファイルへのフルパス
require valid-user

パスワードファイルの作成

htpasswdコマンドを使用。

htpasswd -c パスワードファイルへのフルパス ユーザ名

とするとパスワードの入力を2度求められるので、適当なパスを入力。 パスワードが暗号化されたファイルが作成される。

但し、パスワードファイルはWebで公開されていない場所に置くこと。

うまくいかない場合

大抵の場合はスペルミス。

それでもダメな場合はApacheの設定でAuthConfigが許可されていないケース。

AllowOverride AuthConfig

を管理者に設定してもらう必要がある。

SSL

年間数十万も払えないので自己認証局方式。

Apache2

Portsでwww/apache20を入れて/etc/rc.confに

apache2_enable="YES"
apache2ssl_enable="YES"

を書くだけで準備完了。 キーの生成に関しては

の通り。

Apache1.3

Portsでapache13-modsslを入れる。初めて入れる時はportinstallコマンドではなく、makeしてから

make certificate

としないと鍵が生成されない。その後で

make install

起動スクリプトを有効化するため/etc/rc.confに

apache_enable="YES"

を記述。

但し事前にapacheを使っていた場合はhttpd.confとhttpd.conf-distをマージしないとダメ。

あとは

と、書いていたのだが上記サイトが店仕舞い(?)してしまったので補完。

自己認証鍵の生成

/usr/ports/www/apache13-modssl/に移動。鍵の生成。

cd /usr/ports/www/apache13-modssl
make certificate

以下入力する所だけ抜粋。入力は当たり前だが全て半角英数のみ可。

  Signature Algorithm ((R)SA or (D)SA) [R]:R

  1. Country Name             (2 letter code) [XY]:JP
  2. State or Province Name   (full name)     [Snake Desert]:Tokyo
  3. Locality Name            (eg, city)      [Snake Town]:(区)
  4. Organization Name        (eg, company)   [Snake Oil, Ltd]:(組織名)
  5. Organizational Unit Name (eg, section)   [Webserver Team]:(適当に。デフォルトで可)
  6. Common Name              (eg, FQDN)      [www.snakeoil.dom]:(サーバのFQDN)
  7. Email Address            (eg, name@FQDN) [[email protected]]:(管理チームのメールアドレス)
  8. Certificate Validity     (days)          [365]:(通常一年分)

  Certificate Version (1 or 3) [3]:(そのままEnter)

  Encrypt the private key now? [Y/n]: Y

  Enter PEM pass phrase:(パスフレーズ。安易過ぎるのは×)
  Verifying - Enter PEM pass phrase:(パスフレーズの確認)

confディレクトリ内にssl.*として作成されるので稼動システムに移す。 但し、更新の場合は/usr/local/etc/apache/ssl.*をリネームしておかないと偽証サイト扱いされる羽目になる。

cd /usr/ports/www/apache13-modssl/work/apache-xxx/conf
cp -R ssl.* /usr/local/etc/apache/
cd /usr/local/etc/apache
chmod 0700 ssl.*
chmod 0400 ssl.{crl,crt,csr,key,prm}/*

このままだと再起動の度にパスフレーズを聞かれるのでキーを埋め込む。

cd /usr/local/etc/apache/ssl.key/
openssl rsa < server.key > server.key.out
mv server.key server.key.orig
mv server.key.out server.key
/usr/local/etc/rc.d/apache start