質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • WordPress

    6685questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • AWS(Amazon Web Services)

    1841questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

EC2でwordpressで立ち上げたサイトにベーシック認証をかけたい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 513

WataruT

score 52

やりたい事

立ち上げたec2インスタンス(WordPress Certified by Bitnami)の
サイト全体にBasic認証をかけたい

環境

・mac

やった事

ドキュメントルート(/opt/bitnami/apps/wordpress/htdocs)に、
.htaccessと、.htpasswdファイルを作成。

AuthUserFile /home/opt/bitnami/apps/wordpress/htdocs/.htpasswd
AuthGroupFile /dev/null
AuthName "Please enter your ID and password"
AuthType Basic
require valid-user

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase / 
WriteCheckString:xxxxxxxxxxxxxxxx
RewriteRule .* - [E=HTTP_MOD_REWRITE:On]
</IfModule> 
user:xxxxxxxxxU

読んだ記事

EC2でWordpressをインストールしましたが、.htaccessがうまく動作しない
上記の記事を読んでみたのですが、
下記のファイルがまずない。
他のディレクトリに「httpd.conf」ファイルが3種類あった。

/etc/httpd/httpd.conf
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

WordPress Certified by BitnamiはカスタマイズされたAMIなので、Apacheの設定ファイルも独自の構成となっているようです。
AMIのバージョンは念の為下記の2つで確認していますが、下記手順でBasic認証をかけられるようでした。

  • 4.7.4-0 on Ubuntu 14.04.3
  • 4.8.1-0 on Ubuntu 14.04

コマンドの実行はすべてbitnamiユーザーで実施しています。

$ whoami
bitnami

# パスワードファイルの作成(隠しファイルは見づらいので、ここではdot.htpasswdで作成)
$ htpasswd -c ~/dot.htpasswd suyama
New password: 
Re-type new password: 
Adding password for user suyama
$ ls ~
apps  dot.htpasswd  htdocs  stack

# .htaccessの作成
$ cd /opt/bitnami/apps/wordpress/htdocs/
$ vi .htaccess
# => Basic認証設定を追記
$ cat .htaccess 
AuthName "Please enter your ID and password"
AuthUserFile /home/bitnami/dot.htpasswd
AuthType Basic
require valid-user

# .htaccessでの認証情報設定の有効化
$ cd /opt/bitnami/apps/wordpress/conf/
$ cp -p  httpd-app.conf httpd-app.conf.`date '+%Y%m%d'`
$ diff httpd-app.conf httpd-app.conf.`date '+%Y%m%d'`
$ vi httpd-app.conf
# => 11行目付近のAllowOverrideを"AuthConfig"に修正
#    .htaccessで認証設定以外も行う場合は、必要に応じて"All"とするなどしてください
$ diff httpd-app.conf httpd-app.conf.`date '+%Y%m%d'`
11c11
<     AllowOverride AuthConfig
---
>     AllowOverride None
40c40
<                     
---
>                     
\ No newline at end of file
$ apachectl configtest
Syntax OK
$ sudo apachectl graceful

提示いただいている.htaccessでは、2点問題があるようでした。

  1. /home/opt 標準ではディレクトリは存在しないはずで、おそらく/homeが不要かと思います。
  2. .htpasswdファイルをドキュメントルートであるhtdocs配下に配置すると、外部から参照されてしまう可能性があるため、好ましくありません。
    標準で".ht"で始まるファイルにはアクセス制限がかかっているはずですが、パスワードファイルの取り扱いには十分注意した方がよいかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/11 11:56

    2つのバージョンで試していただきありがとうございます。
    ただ、ご教授頂いた手順通りやりましたが、basic認証がかからなかったです。。

    もしかして、Lets Encryptで、https化して、
    HSTSでリダイレクトさせているのが問題でしょうか。

    教えて頂いた通り、「httpd-app.conf」に、
    AllowOverride None
     ↓
    AllowOverride ALL
    ※ AllowOverride AuthConfigも試しました。
    のように記述いたしました。

    そのあと、「apachectl configtest」をした時に、
    error 「Syntax error on line XX of /path/to/ssl.conf:
    SSLCertificateFile: file '/path/to/cert.pem' does not exist or is empty」が出たので、
    下記の記事のように、パーミッションを744から755に変更しました。
    https://www.proto-star.com/2016/04/24/lets-encrypt-apache-%E3%81%A7%E3%81%A1%E3%82%83%E3%82%93%E3%81%A8%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AE%E7%94%9F%E6%88%90%E3%81%8C%E5%AE%8C%E4%BA%86%E3%81%97%E3%81%A6%E3%82%8B%E3%81%AE%E3%81%AB/

    そのあと、syntax OKと出たのですが、ページにアクセスしても何も変化がありません。難しいですね。。

    キャンセル

  • 2017/10/12 22:02

    Let's Encryptは設定ファイルを編集するので、インストール直後のhttpd.conf設定とはまた違った形となっているのかもしれません。
    EC2上でLet's Encryptで証明書を導入して、ELBやCloudFrontは通していないという認識ですがあっていますでしょうか。
    Let's Encryptの導入も試してみますが、/opt/bitnami/apps/wordpress/conf/httpd-vhosts.confのServerNameはwordpress.example.comではなく、HTTP/HTTPSでアクセスする際のドメイン名となっているでしょうか。
    また、/opt/bitnami/apache2/conf/httpd.confのDocumentRootを/opt/bitnami/apps/wordpress/htdocs/に変更して運用している等はされているでしょうか。

    キャンセル

  • 2017/10/12 22:24

    もう1点確認させてください。
    今起動しているApacheは、下記のどちらでしょうか。
    ・/opt/bitnami/apache2/bin/httpd.bin
    ・/usr/sbin/apache2

    確認は " ps -ef | grep apache " 等のコマンドを実行すれば可能かと思います。

    キャンセル

  • 2017/10/13 10:45

    追加のアドバイスありがとうございます。

    > EC2上でLet's Encryptで証明書を導入して、
    > ELBやCloudFrontは通していないという認識ですがあっていますでしょうか。
    はい、ご認識あっております。

    > /opt/bitnami/apps/wordpress/conf/httpd-vhosts.confのServerNameは
    > wordpress.example.comではなく、HTTP/HTTPSでアクセスする際のドメイン名となっているでしょうか。
    こちら、exampleのままでございます。

    > /opt/bitnami/apache2/conf/httpd.confのDocumentRootを
    > /opt/bitnami/apps/wordpress/htdocs/に変更して運用している等はされているでしょうか。
    こちらは、下記のようになっています。
    DocumentRoot "/opt/bitnami/apache2/htdocs"
    <Directory "/opt/bitnami/apache2/htdocs">

    > 今起動しているApacheは、下記のどちらでしょうか。
    $ sudo /opt/bitnami/ctlscript.sh restart apache
    /opt/bitnami/apache2/bin/httpd.bin だと思います。

    $ ps -ef | grep apacheの実行結果は、下記の通りです。
    bitnami 13246 13217 0 01:42 pts/0 00:00:00 grep --color=auto apache
    root 32605 1 0 Oct10 ? 00:00:06 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf
    daemon 32613 32605 0 Oct10 ? 00:00:39 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf
    daemon 32614 32605 0 Oct10 ? 00:00:38 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf
    daemon 32747 32605 0 Oct10 ? 00:00:38 /opt/bitnami/apache2/bin/httpd.bin -f /opt/bitnami/apache2/conf/httpd.conf

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • WordPress

    6685questions

    WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

  • AWS(Amazon Web Services)

    1841questions

    Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。