FreeBSD Apache - eiichiromomma/CVMLAB GitHub Wiki
FreeBSD) Apache
(Apacheについていろいろ
httpのアクセスをhttpsに飛ばす
mod_rewrite
httpd.confに記入。設定はネットを探す。
注意点は
- mod_rewriteを読んだ後に設定を記述する
- 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