1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Apache】リバースプロキシでBasic認証を設定したら「500 Internal Server Error」が出た時の解決方法

Posted at

はじめに

備忘録
どなたかのお役に立てれば幸いです。

問題の詳細

.htaccessファイルと.htpasswdを置き、Webサイトにアクセス後、ちゃんとBasic認証の画面が出た。

その後、入力したユーザー名とパスワードは合っているはずなのに、なぜか500エラーが出た。

解決方法

まず、エラーログを確認してみます。

$ cat /var/log/apache2/error.log

以下の2パターンに遭遇しました。

# パターン1
AH01617: user username: authentication failure for "/path/to/.htpasswd": Password Mismatch
# パターン2
Permission denied: Could not open password file: /path/to/.htpasswd

パターン1

こちらは、htpasswdコマンドを使って.htpasswdファイルを作ることで解決しました。

vimなどで自分で作成した.htpasswdファイルだと、うまく動作しないそうです。

具体的には、コマンドで作成すると、以下のように、パスワードの部分を自動で暗号化してくれるみたいです。

ただ、暗号化の種類がいくつかあるようなので、Webサイト上で.htpasswdを作成してくれるサイトよりは、ターミナル上でhtpasswdコマンドを実行した方が確実かもしれません。

Basic認証の画面上では、自分で設定したパスワードを打てば認証されます。
わざわざ暗号化されたパスワードを打つ必要はありません。

.htpasswd(自分で作成)
$ vim /path/to/.htpasswd
username:testpassword
.htpasswd(コマンドで作成)
$ htpasswd -c /path/to/.htpasswd username
New password: 
Re-type new password: 
Adding password for user username

$ cat /path/to/.htpasswd
username:$apr1$cPda4fWy$cASDFTf90/DojGK89UJkr9

ちなみに、以下のコマンドを実行することで、.htpasswdの中身を更新できます。

$ htpasswd -b /path/to/.htpasswd username newpassword

パターン2

こちらは、単純にパーミッションの設定がうまくいってない場合もありますが、自分の場合は、.confファイル内でのBasic認証の記述が間違っていました。

<Proxy *> ~ </Proxy><Directory /your/site/path> ~ </Directory>も試しましたが、結局、以下のように変更することで、Basic認証後も500エラーが出ることなく、Webページが正常に動作するようになりました。

mysite.conf
<VirtualHost *:80>
  ServerName mysite.example.com
  ProxyPass / http://127.0.0.1/
  ProxyPassReverse / http://127.0.0.1/
  <Location "/">
    AuthType Basic
    AuthName "Basic Authentication"
    AuthUserFile /path/to/.htpasswd
    Require user username
  </Location>
</VirtualHost>
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?