Entries

SSL/TLS 必須ページの .htaccess 設定

http://example.jp/ は http だが、http://example.jp/security/ は SSL/TLS 必須と
する場合の .htaccess 設定。

方法1. バーチャルホスト (VirtualHost ディレクティブ) を別に切る
 これが一番スマートかも。それができない場合は方法2 や方法3 で対応。

方法2. SSLRequireSSL を使う。
 .htaccess に
  SSLRequireSSL
 と書くだけで、そのディレクトリ以下は SSL 必須となる (SSL 以外のアクセスは deny する)。
 httpd.conf に記述するなら
  <Directory "/foo/bar">
   SSLRequireSSL
  </Directory>
 とする。
  マニュアル: http://httpd.apache.org/docs/2.0/ja/mod/mod_ssl.html#SSLRequireSSL

方法3. RewiteCond で判別し、http(80) の場合は他に飛ばす。
 RewriteEngine on
 RewriteCond %{SERVER_PORT} ^80$
 RewriteRule ([^/]*)$ http://%{HTTP_HOST}/$0
  マニュアル: http://httpd.apache.org/docs/2.0/ja/mod/mod_rewrite.html

ちなみに
 SetenvIf SERVER_PORT 80 NO_SSL=1
 Deny from env=NO_SSL
という判定方法は SetenvIf から SERVER_PORT を参照できないため無理っぽい。

さらに余談。Apache-SSL には SSLRequireSSL と逆の働きをする (SSL なら拒否)、
SSLDenySSL というディレクティブが存在する。しかし mod_ssl には SSLDenySSL は
存在しないし、mod_ssl を取り込んだ形の Apache2 にも存在しない (Apache-SSL と
mod_ssl は別物
)。
このエントリーをブックマークに追加 ブックマークに追加する
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://68user.blog27.fc2.com/tb.php/34-5e253ce2

0件のトラックバック

0件のコメント

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

Author:68user
http://X68000.q-e-d.net/~68user/

ブロとも申請フォーム

この人とブロともになる

ブログ内検索

Powered By FC2ブログ

Powered By FC2ブログ
ブログやるならFC2ブログ