- WEBサイト制作中級者〜上級者
※初心者には難しい内容も入っています。 - ConoHa WING上でBasic認証をかけて、検証サイトを作りたい人
- ConoHa WINGで8文字以下のBasic認証を設定したい人
この著者はWEBデザイナー歴5年になるあやおり子です。
最近、XserverからConoHa WINGにサーバー移転しました。
そこで一番苦労したのがBasic認証(アクセス制限)をかけることでした。
今回は、ConoHa WING上でBasic認証をかけるお話について書いていきます。
ConoHa WINGは年間維持費用が安く、WordPressの表示高速化に特化したサーバーになります。
ブログ運営に関するサポートも手厚いので、WordPressを使ったブログを運営している人にオススメのサーバーです。
基本的には、コントロールパネルからBasic認証を設定できる
今回の私のように、サーバー移転などで特殊な設定が必要ない場合、コントロールパネル(以下コンパネ)サーバーから設定変更ができます。
「サイト管理」 > 「サイトセキュリティ」>「ディレクトリアクセス制限」にて、アクセス制限をかけたいディレクトリを設定してください。
※何も入力がない場合は、全体にアクセス制限がかかります。
ユーザーとパスワードを入力すれば、Basic認証がかかり、アクセス制限ができます。
コンパネでは8文字未満のパスワードをかけられない
基本的には、このやり方で問題ありませんが、私の場合は旧サーバーから移行する必要があり、旧サーバーと同じパスワードを設定する必要がありました。
しかし、ConoHa WINGのコンパネでは、パスワードを8文字以上、70文字以下にする入力制限があるため、私がかけたいパスワードで設定できませんでした。
このような背景から、ConoHa WINGのコンパネに頼らず、自分で.htaccessを編集することにしました。
.htaccessにBasic認証の記述を追記するのに苦戦
「.htaccessを作成して、Basic認証の記述を追記しよう」
と思ったのですが、ここからが大変でした…
起こった現象としては、
- ディレクトリによって、Basic認証がかからなかったりする。
- SSLの仕様がドメインによって違う
などなど。
シークレットウィンドウで何度も確認するも、パスワード画面が表示されず、キャッシュが影響しているのかも分からない。
ブラウザによっては挙動が違う。
何なんだ???
コンパネから編集することで、Basic認証が設定出来た!
そんなこんなで試行錯誤し、最終的にやっと成功しました。
- コンパネでエラーコード「401」をオンにする
- .htaccessをコンパネで編集する
の手順を使えば、Basic認証を任意の方法で設定し、アクセス制限をかけることが出来ました。
(1)エラーコード「401」をオンにする
SafariだとBasic認証がキャンセルされると、HTMLの中身が見えてしまう現象がありました。
それを解決するためには、コンパネ内「サイト管理」> 「サイト設定」>「エラーページ」にある401の利用設定をオンにする必要があります。
エラーコード401とは、Webサイトのアクセスやログインに必要なIDやパスワードが間違っているときに表示されるエラー表示です。
本来ここは、401エラー時に表示内容をカスタマイズする箇所ですが、ConoHa Wingsでは設定しないと中身が表示されてしまうようです。
ちなみに、エラーコード403はウェブサイトのアクセス拒否を意味するエラー表示です。
もし、ベーシック認証だけではなくIP制限なども設定している場合は、403の利用設定もオンにしたほうがいいかもしれません。
参考
(2).htaccessをコンパネで編集する
直下の.htaccessで指定する場合、FTPではなくコンパネで編集することをオススメします。
.htaccessには(1)で設定した401の利用設定がすでに指定されていますので、その下にBasic認証の記述をついきします。
記述内容は、ネットで転がっている別サイトでも確認できます。
AuthType Basic
AuthUserFile /home/(省略)/.htpasswd
AuthName "IDとパスワードを入力してください"
Require valid-user
なぜFTPではダメかというと、FTPで編集すると文字コードが変わってしまうらしく、編集するのに一癖あるからです。
本来は、エディターの文字コードを変えて…というお話になりますが、変えたことにより他の制作物への影響を考えると頭が痛いので、コンパネで対応するのがおすすめです。
(補足).htpasswdは既存のhtpasswdファイル生成ツールでも対応可能
.htpasswdは他のサーバー同様、.htaccess内のAuthUserFileに記載した場所に.htpasswdを設置してください。
ちなみに、.htpasswdの記載内容は、既存のhtpasswdファイル生成ツールのものでも対応できました。
しかし、ConoHaのコンパネで生成される、パスワードをかけるための暗号化とはちょっと違うようです。
PHPが標準で発行できるDESベースの暗号は8文字までの制限があり、長いパスワードを設定しても、最初の8文字までしか使用できません。
一方で、ConoHaでは、書き方的におそらくbcryptが採用されおり、より高いセキュリティを意識しているのではと思います。
bcrypt:
Basic認証用パスワード作成ツール
blowfish暗号アルゴリズムを用いた、近年比較的安全であると考えられているハッシュ関数。
計算に多くの時間を要すが、これが安全である理由のひとつ。
参考
Xserver と ConoHa WING 、どっちがおオススメ?
Xserverはガチガチに設定されている一方、ConoHa Wingsはそこまでガチガチにされていない印象を受けました。
そのため、Xserverでは設定されている項目が、ConoHa Wingsでは設定されていない場合もあります。
また、ConoHa Wingsは稼働実績が少ないサーバーなので、XserverのようにWEBサイト制作全般の記事も少ないです。
これらの傾向から、以下の傾向が言えるでしょう。
ConoHa WING
- WordPressしか使う予定がなく、サイトの高速化を求めているひと
- 趣味レベルでサーバーをレンタルしている人
- サポートの手厚さよりも維持費を下げることを優先したい人
- ライターなどのブログでアフィリエイトをしたい人
- ドメインが2つ欲しい人
WordPressに特化したWEBサーバーで、初心者でもかんたんにWordPressを使えます。
Xserverがオススメな人
- サポートの手厚さが欲しい人
- 法人など、企業のサイトを運営したい人
- WEBサイト制作初心者で、WordPress以外の制作も視野に入れている人
- WordPress以外も作る予定がある人
Xserverは大量アクセスに強く、安心の実績とサポート体制が強みのWEBサーバーです。