「Apache - ユーザ認証」の版間の差分
細 (Wiki がページ「Apacheでユーザ認証を行う方法」を「Apache - ユーザ認証」に、リダイレクトを残さずに移動しました) |
編集の要約なし |
||
4行目: | 4行目: | ||
Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。<br> | Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。<br> | ||
<br> | <br> | ||
< | <u>※注意</u><br> | ||
<u>ここで使用しているコマンド名やディレクトリはディストリビューションによって異なる。</u><br> | |||
< | |||
<br><br> | <br><br> | ||
20行目: | 18行目: | ||
パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。<br> | パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。<br> | ||
<br> | <br> | ||
< | <u>※注意</u><br> | ||
<u>パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。</u><br> | |||
<u>ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。</u><br> | |||
<u>なお、初めて.htpasswdファイルを作成するときは-cオプションが必要となる。</u><br> | |||
<br> | |||
< | |||
# 入力 | # 入力 | ||
htpasswd -c /etc/httpd/.htpasswd secret | htpasswd -c /etc/httpd/.htpasswd secret | ||
35行目: | 32行目: | ||
<br> | <br> | ||
そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br> | そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br> | ||
<syntaxhighlight lang="apache"> | |||
<Directory "/var/www/html/basic"> | <Directory "/var/www/html/basic"> | ||
AuthType Basic | AuthType Basic | ||
41行目: | 39行目: | ||
Require user secret | Require user secret | ||
</Directory> | </Directory> | ||
</syntaxhighlight> | |||
<br> | <br> | ||
次に、Apacheを再起動する。<br> | |||
sudo systemctl restart httpd | sudo systemctl restart httpd | ||
<br> | <br> | ||
53行目: | 50行目: | ||
ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。<br> | ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。<br> | ||
<br> | <br> | ||
Digest認証には、htdigestコマンドを使用する。<br> | |||
<br> | |||
まず、htdigestをインストールする。<br> | |||
# Debian系の場合 | # Debian系の場合 | ||
76行目: | 74行目: | ||
<br> | <br> | ||
次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br> | 次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。<br> | ||
<syntaxhighlight lang="apache"> | |||
<Directory "/var/www/html/digest"> | <Directory "/var/www/html/digest"> | ||
AuthType Digest | AuthType Digest | ||
83行目: | 82行目: | ||
Require user secret | Require user secret | ||
</Directory> | </Directory> | ||
</syntaxhighlight> | |||
<br> | <br> | ||
そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。<br> | そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。<br> | ||
パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。<br> | パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。<br> | ||
<br> | <br> | ||
< | <u>※注意</u><br> | ||
<u>パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。</u><br> | |||
<u>ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。</u><br> | |||
< | |||
<br> | <br> | ||
htdigestコマンドの書式を以下に示す。<br> | |||
レルムには、httpd.confファイルの<code>AuthName</code>に指定した文字列を入力する。<br> | |||
<br> | <br> | ||
なお、初めて.htdigestファイルを作成するときは、<code>-c</code>オプションが必要となる。<br> | |||
# | htdigest [-c] <パスワードファイル> <レルム> <ユーザ名> | ||
# 入力例 | |||
htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret | htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret | ||
107行目: | 105行目: | ||
Re-type new password: | Re-type new password: | ||
<br> | <br> | ||
次に、Apacheを再起動する。<br> | |||
sudo systemctl restart httpd | sudo systemctl restart httpd | ||
<br> | <br> | ||
Webブラウザで、http://localhost/digest/ | Webブラウザで、http://localhost/digest/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるかどうかを確認する。<br> | ||
<br><br> | <br><br> | ||
{{#seo: | |||
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki | |||
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板 | |||
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux | |||
|image=/resources/assets/MochiuLogo_Single_Blue.png | |||
}} | |||
__FORCETOC__ | __FORCETOC__ | ||
[[カテゴリ: | [[カテゴリ:Web]] |
2025年1月5日 (日) 22:07時点における最新版
概要
Apacheのユーザ認証には、Basic認証とDigest認証がある。
Basic認証は一般的に行われている方法だが、パスワードが暗号化されないため、機密性の高いデータへの認証には適していない。
Digest認証はパスワードが暗号化されるが、これに対応しているのは比較的最近のWebブラウザに限られる。
※注意
ここで使用しているコマンド名やディレクトリはディストリビューションによって異なる。
Basic認証
ここでは、Basic認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。
まず、ユーザ認証によるアクセス制限をかけるディレクトリを作成する。
ここでは、/var/www/html/basicとする。
sudo mkdir -p /var/www/html/basic
次に、htpasswdコマンドでsecretというユーザを作成し、パスワードを設定する。
パスワードの設定に必要なパスワードファイルは、ここでは/etc/httpdに.htpasswdファイルとして作成する。
※注意
パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。
ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。
なお、初めて.htpasswdファイルを作成するときは-cオプションが必要となる。
# 入力 htpasswd -c /etc/httpd/.htpasswd secret # 出力 New password: Re-type new password: Adding password for user secret
そして、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。
<Directory "/var/www/html/basic">
AuthType Basic
AuthName "Secret Zone"
AuthUserFile /etc/httpd/.htpasswd
Require user secret
</Directory>
次に、Apacheを再起動する。
sudo systemctl restart httpd
Webブラウザで、http://localhost/basic/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるか確認する。
Digest認証
ここでは、Digest認証を利用して、特定ディレクトリのWebページを開く際に、secretというユーザ名でアクセスできるようにする。
Digest認証には、htdigestコマンドを使用する。
まず、htdigestをインストールする。
# Debian系の場合 # htdigestがインストールされいているか確認 htgiest -bash: htgiest: command not found # htdigestのパッケージ名を確認 sudo apt-cache search htdigest apache2-utils - Apache HTTP Server (utility programs for web servers) # htdigestをインストール sudo apt-get install apache2-utils # Apache2のDigest認証のモジュールを有効にする(Apache2の再起動が必要) sudo a2enmod auth_digest
まず、ユーザ認証によるアクセス制限をかけるディレクトリを作成する。
ここでは、/var/www/html/memberとする。
sudo mkdir -p /var/www/html/digest
次に、Apacheの設定ファイル(/etc/httpd/conf/httpd.conf)に以下の設定を追加する。
<Directory "/var/www/html/digest">
AuthType Digest
AuthName "Secret Zone"
AuthDigestDomain /member/
AuthDigestFile /etc/httpd/.htdigest
Require user secret
</Directory>
そして、htdigestコマンドでsecretというユーザを作成し、パスワードを設定する。
パスワードの設定に必要なパスワードファイルは、ここでは、/etc/httpdディレクトリに.htdigestとして作成する。
※注意
パスワードファイルの作成場所は必ずしも/etc/httpdである必要はない。
ただし、外部からアクセスできる場所(Apacheのドキュメントルート内など)は避ける。
htdigestコマンドの書式を以下に示す。
レルムには、httpd.confファイルのAuthName
に指定した文字列を入力する。
なお、初めて.htdigestファイルを作成するときは、-c
オプションが必要となる。
htdigest [-c] <パスワードファイル> <レルム> <ユーザ名> # 入力例 htdigest -c /etc/httpd/.htdigest 'Secret Zone' secret # 出力 Adding password for secret in realm Secret Zone. New password: Re-type new password:
次に、Apacheを再起動する。
sudo systemctl restart httpd
Webブラウザで、http://localhost/digest/ にアクセスして、ユーザ認証用のダイアログボックスが表示されるかどうかを確認する。