one push

レンタルサーバーのCONOHA WINGでBasic認証を設定する

ConoHa WINGでBASIC認証をかける方法【実体験トラブルまとめ】

公開日:2026.03.23 カテゴリ:サーバー設定 / ConoHa WING


クライアントのサイト制作中、公開前のサイトにBASIC認証をかけようとしてかなりハマりました。「500エラーが出る」「認証画面が出ない」など、ConoHa WING特有のつまずきポイントをまとめます。

#ConoHaWING #BASIC認証 #htaccess #サーバー設定 #備忘録


まず知っておきたい:ConoHa WINGのサーバーアカウント名

BASIC認証の設定で最重要なのが AuthUserFile に指定するパスです。このパスにConoHa WINGのサーバーアカウント名が必要になりますが、これがどこで確認できるのかわかりにくい。

> ここでハマった > 管理画面に表示される「ConoHaアカウント(C12345678)」や、ファイルマネージャーのパスに表示される「04o3o_c1234567@localhost」はどちらも正しいアカウント名ではありませんでした。

正しいアカウント名の確認方法

一番確実なのは、PHPファイルを使って実際のサーバーパスを取得することです。

ドキュメントルートに checkpath.php を作成して以下を記述:

<?php
echo __FILE__;
echo '<br>';
echo $_SERVER['DOCUMENT_ROOT'];
?>

ブラウザでアクセスすると以下のようなパスが表示されます:

/home/c1234567/public_html/example.com/checkpath.php
/home/c1234567/public_html/example.com

この c1234567 の部分がサーバーアカウント名です。確認後は必ず checkpath.php を削除してください。


BASIC認証の設定手順

手動で .htaccess.htpasswd を作成してアップロードする方法です。

① .htpasswd の作成

ID・パスワードをハッシュ化したファイルです。以下のコマンドで生成できます:

openssl passwd -apr1 "任意のパスワード"

生成されたハッシュを使って .htpasswd を作成:

ユーザーID:$apr1$XXXXXXXX$XXXXXXXXXXXXXXXXXXXXXXX

> ポイント > ファイルはテキストファイルで作成し(.htpasswd.txt など)、アップロード後に .htpasswd にリネームします。末尾の改行以外に余分なスペースや文字が入らないよう注意。

② .htaccess の作成

AuthType Basic
AuthName "認証が必要です。IDとPASSを入力してください。"
AuthUserFile /home/c1234567/public_html/example.com/.htpasswd
AuthGroupFile /dev/null
Require valid-user

c1234567example.com は自分の環境に合わせて変更してください。

③ ファイルの配置

  1. テキストファイルとして作成(例:htaccess.txthtpasswd.txt
  2. ファイルマネージャーまたはFTPでドキュメントルート直下にアップロード
  3. ファイルマネージャー上でリネーム:.htaccess / .htpasswd
  4. シークレットモードでサイトにアクセスして動作確認

トラブルシューティング

症状 原因 対処法
認証画面が出ない 手動の.htaccessが管理画面設定と競合 / ブラウザキャッシュ 既存の.htaccessを削除してシークレットモードで確認
ID/PASS入力後に500エラー AuthUserFileのパスが間違っている PHPファイルで実際のパスを確認して修正
サイト全体が500エラー .htaccessの構文エラー 各ディレクティブが改行で区切られているか確認
認証ダイアログが再表示されない ブラウザが401をキャッシュしている シークレットモードで再アクセス

まとめ:ConoHa WING BASIC認証 チェックリスト

  • [ ] サーバーアカウント名は checkpath.php で確認する
  • [ ] AuthUserFile のパスは /home/アカウント名/public_html/ドメイン名/.htpasswd
  • [ ] 各ディレクティブは改行で区切られているか
  • [ ] .htpasswd に余分なスペース・改行が入っていないか
  • [ ] 動作確認はシークレットモードで行う
  • [ ] 確認用 checkpath.php は必ず削除する