Apache 強制SSLとBasic認証の導入
義兄の店の通販のサーバで、業務用の画面は当然パスワードで保護されている。
だけど、SSLされてなかった。
意識してhttps://をURLに入力すればもちろんSSLになるけど、普通に業務画面に入ると
httpのままだった。
そこで、htaccessによるベーシック認証と、mod_rewriteによる強制SSLを導入することに
した。
当該のディレクトリに以下のような.htaccessを設置。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
AuthUserfile /home/www/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
希望の動作としては、
1.httpでアクセス、
2.httpsに強制変更、
3.Basic認証
を期待していたんだが、、、、。
結果は
1.httpでアクセス
2.httpでBasic認証
3.htpsへ強制変換
4.httpsでBasic認証
となった。同じ認証が2回必要になってしまった。
ということで、対策は以下
httpd.confのhttpの設定部分に
Alias /gyoumu /home/www/gyoumu
を入れる。
/home/www/gyoumu
に以下.htaccessを設置
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
これでhttpで当該ディレクトリにアクセスしてきたら、ダミーのディレクトリ
/home/www/gyoumu
にアクセスする。
ここでmod_rewriteでhttpsに強制変更される。もちろんこの時点では認証はなし。
すると本来のディレクトリ<DocumentRoot>/gyoumuに移動される。
これで、httpsになって初めて認証が実施される。もちろん1回だけ。
これは使える。備忘録備忘録!!
だけど、SSLされてなかった。
意識してhttps://をURLに入力すればもちろんSSLになるけど、普通に業務画面に入ると
httpのままだった。
そこで、htaccessによるベーシック認証と、mod_rewriteによる強制SSLを導入することに
した。
当該のディレクトリに以下のような.htaccessを設置。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
AuthUserfile /home/www/.htpasswd
AuthGroupfile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user
希望の動作としては、
1.httpでアクセス、
2.httpsに強制変更、
3.Basic認証
を期待していたんだが、、、、。
結果は
1.httpでアクセス
2.httpでBasic認証
3.htpsへ強制変換
4.httpsでBasic認証
となった。同じ認証が2回必要になってしまった。
ということで、対策は以下
httpd.confのhttpの設定部分に
Alias /gyoumu /home/www/gyoumu
を入れる。
/home/www/gyoumu
に以下.htaccessを設置
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
これでhttpで当該ディレクトリにアクセスしてきたら、ダミーのディレクトリ
/home/www/gyoumu
にアクセスする。
ここでmod_rewriteでhttpsに強制変更される。もちろんこの時点では認証はなし。
すると本来のディレクトリ<DocumentRoot>/gyoumuに移動される。
これで、httpsになって初めて認証が実施される。もちろん1回だけ。
これは使える。備忘録備忘録!!