ピックアップ記事
LightsailインスタンスにDigest認証を設定してみた

LightsailインスタンスにDigest認証を設定してみた

まず、digest.took.jpを作成し、「Hello world」を表示するページを作成。

その後、そのページにDigest認証をかけたいと思います。

 

新規ページを作成

ディレクトリを作成。

mkdir /home/bitnami/apps/digest
mkgir /home/bitnami/apps/digest/htdocs
mkdir /home/bitnami/apps/digest/conf

 

公開するファイルを作成。

vi /home/bitnami/apps/digest/htdocs/index.html
<h1>Hello world!</h1>

 

Lightsail管理画面ネットワーキングのDNSゾーンよりAレコードを設定。

 

SSL証明書を作成。

sudo /opt/bitnami/ctlscript.sh stop apache
sudo apt-get install -y letsencrypt certbot python-certbot-apache
sudo certbot certonly --standalone -t

 

httpd-app.confを作成。

vi /home/bitnami/apps/digest/conf/httpd-app.conf
<Directory "/opt/bitnami/apps/digest/htdocs">
  Options Indexes FollowSymlinks
  AllowOverride All
  Require all granted
</Directory>

 

httpd-vhosts.confを作成。

vi /home/bitnami/apps/digest/conf/httpd-vhosts.conf
<VirtualHost *:80>
    ServerName digest.took.jp
    ServerAlias www.digest.took.jp
    DocumentRoot "/opt/bitnami/apps/digest/htdocs"
    Include "/opt/bitnami/apps/digest/conf/httpd-app.conf"
</VirtualHost>

<VirtualHost *:443>
    ServerName digest.took.jp
    ServerAlias www.digest.took.jp
    DocumentRoot "/opt/bitnami/apps/digest/htdocs"
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/digest.took.jp/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/digest.took.jp/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/digest.took.jp/chain.pem
    SSLCACertificateFile /etc/letsencrypt/live/digest.took.jp/fullchain.pem
    Include "/opt/bitnami/apps/digest/conf/httpd-app.conf"
</VirtualHost>

 

新規サイト用のv-hostsのincludeを設定を追加。

vi /opt/bitnami/apache2/conf/bitnami/bitnami-apps-vhosts.conf
Include '/opt/bitnami/apps/digest/conf/httpd-vhosts.conf'

 

これで新規サイトの追加が完了。

サイトにアクセスすることで、「Hello world」の表示が確認できたかと思います。

 

Digest認証を設定

digest認証用のモジュール読み込みを設定する。

vi /opt/bitnami/apache2/conf/bitnami/httpd.conf

 

以下を追記。

LoadModule auth_digest_module modules/mod_auth_digest.so

 

Digest認証のユーザ名「admin」パスワード「password」に設定します。

sudo htdigest -c /path/to/.digestpass "Digest Auth" admin
New password: 任意のパスワード
Re-type new password: 再度パスワードを入力

 

httpd-app.confの内容を変更。

vi ~/apps/digest/conf/httpd-app.conf 
<Directory "/opt/bitnami/apps/digest/htdocs">
  Options Indexes FollowSymlinks
  AllowOverride All
  #Require all granted

  AuthType Digest
  AuthName "Digest Auth"
  AuthUserFile "/path/to/.digestpass"
  Require valid-user
</Directory>

 

これで設定が完了です。

サイトにアクセスすると、以下のようにDigest認証のフォームが表示されるかと思います。

 

なぜDigest認証を使用するのか

Digest認証(ダイジェストにんしょう)とは、HTTPの認証方法(HTTP認証)の一つ。ユーザ名とパスワードをMD5でハッシュ(ダイジェスト)化して送る。Basic認証では防げなかった盗聴や改竄を防ぐために考案された。

 

Basic認証では、盗聴や改竄される可能性が高いため、Digest認証を使用します。

おすすめの記事