Apache Webサーバーは無料でオープンソースであり、世界で最も広く使用されているWebサーバーの1つです。 Web上でコンテンツを提供できます。
アプリケーションがApacheWebサーバーでホストされている場合、すべてのユーザーがインターネット経由でアプリケーションにアクセスできます。場合によっては、認証されたユーザーのみがアプリケーションにアクセスできるように、アプリケーションを保護する必要があります。 Apache htpasswdを使用して、サーバーレベルでアプリケーションを保護できます。このユーティリティを使用すると、特定のWebサイトへのアクセスを、ログインの詳細のみを持っている限られた人に制限できます。
このチュートリアルでは、Ubuntu18.04でApacheを使用してパスワード認証を設定する方法を示します。
前提条件
- Atlantic.netクラウドプラットフォーム上の新しいUbuntu18.04VPS。
- サーバーで構成されているrootパスワード。
ステップ1-Atlantic.Netクラウドサーバーを作成する
まず、Atlantic.Netクラウドサーバーにログインします。少なくとも1GBのRAMを搭載したオペレーティングシステムとしてUbuntu18.04を選択して、新しいサーバーを作成します。 SSH経由でクラウドサーバーに接続し、ページの上部で強調表示されているクレデンシャルを使用してログインします。
Ubuntu 18.04サーバーにログインしたら、次のコマンドを実行して、ベースシステムを最新の利用可能なパッケージで更新します。
apt-get update -y
ステップ2–ApacheWebサーバーをインストールする
apt-get install apache2 apache2-utils -y
インストールしたら、Apacheサービスを開始し、次のコマンドを使用してシステムの再起動後に開始できるようにします。
systemctl start apache2 systemctl enable apache2
次に、Webブラウザーを開き、URL http://your-server-ipに移動します。次の画面にデフォルトのApacheWebページが表示されます。
ステップ3–Apacheパスワードファイルを作成する
まず、Apacheがユーザーの認証に使用できるパスワードファイルを作成する必要があります。 htpasswdユーティリティを使用して、user1という名前のユーザーの/ etc/apache2ディレクトリを使用して非表示の.htpasswdファイルを作成できます。
htpasswd -c /etc/apache2/.htpasswd user1
以下に示すように、希望するパスワードを入力します。
New password: Re-type new password: Adding password for user user1
上記のコマンドは、ユーザー資格情報を使用して.htpasswdファイルを作成します。 Webサイトにアクセスするには、これらの資格情報を使用する必要があります。
ステップ4–サンプルWebサイトを作成する
このセクションでは、テスト用にサンプルのディレクトリ構造とindex.htmlファイルを作成します。
まず、次のコマンドを使用してWebサイトのディレクトリを作成します。
mkdir /var/www/html/example.com
次に、次のコマンドを使用して、Webディレクトリ内にindex.htmlファイルを作成します。
nano /var/www/html/example.com/index.html
次のコンテンツを追加します:
<html> <title>Password Protected Apache Website.</title> <h1>This website is password protected.</h1> </html>
終了したら、ファイルを保存して閉じます。次に、Webディレクトリの所有権をwww-dataに変更します:
chown -R www-data:www-data /var/www/html/example.com
ステップ5–Apache基本認証を構成する
次に、Webサイト用のApache仮想ホスト構成ファイルを作成し、基本認証を定義する必要があります。
nano /etc/apache2/sites-available/example.conf
次の行を追加します:
<VirtualHost *:80> ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/html/example.com DirectoryIndex index.html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory "/var/www/html/example.com"> AuthType Basic AuthName "Restricted Content" AuthUserFile /etc/apache2/.htpasswd Require valid-user </Directory> </VirtualHost>
終了したら、ファイルを保存して閉じます。
各ディレクティブの簡単な説明を以下に示します。
- ServerAdmin :サーバー管理者のメールアドレス。
- サーバー名 :サーバーが自身を識別するために使用するドメイン名。
- DocumentRoot :アプリケーションのパスを指定してください。
- DirectoryIndex :ディレクトリにアクセスしたときに表示するデフォルトのページを指定します。
- AuthType :認証の種類。
- AuthName :パスワードページに表示するメッセージを指定します。
- AuthUserFile :ユーザークレデンシャルファイルの場所を指定します。
- 必須 :サーバーのこの領域にアクセスできるユーザーを指定します。
次に、次のコマンドを使用して、Apacheに構文エラーがないか確認します。
apachectl -t
次の出力が得られるはずです:
Syntax OK
次に、次のコマンドを使用して、WebサイトのApache仮想ホストファイルを有効にします。
a2ensite example.conf
次に、Apacheサービスを再起動して、変更を実装します。
systemctl restart apache2
ステップ6–Apacheパスワード認証を確認する
この時点で、WebサイトはApache基本認証で保護されています。
確認するには、Webブラウザーを開き、URLhttp://example.comを入力します。以下に示すように、Webサイトにアクセスするためのユーザー名とパスワードを入力するように求められます。
ユーザー名とパスワードを入力し、ログインをクリックします ボタン。次の画面にWebサイトのデフォルトページが表示されます。
結論
上記のガイドでは、Ubuntu18.04でApacheを使用してパスワードで保護されたWebサイトを作成する方法を学びました。これで、Apacheを使用してWebサイトを簡単にパスワードで保護できます。Atlantic.NetのVPSホスティングプランを使用して、今すぐテストしてください。詳細については、ApacheAuthのApache公式ドキュメントをご覧ください。