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

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

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

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

Q&A

解決済

1回答

7936閲覧

下層ディレクトリのリバースプロキシの設定(SSL込)について

koji9412

総合スコア158

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

WordPress

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

0グッド

1クリップ

投稿2016/05/31 02:55

編集2016/05/31 04:59

初めて質問させていただきます。

apache、リバースプロキシ、SSL、nginxの
記述方法について不明点がありご質問させていただきます。

■サーバー構成
下記のような構成でサイトを運営していて
SSL化込みのリバースプロキシの設定を行ったのですがうまくいかず途方にくれております。

https://example.com/
http://example.com/aaa/

①・・・apache2.2、CentOS6.7
②・・・nginx1.9、CentOS7

②はWordPressを使用しており、負荷分散のため今後は
リバースプロキシでaaaディレクトリを別サーバーで運営をしたいと思っております。
サーバーはKUSANAGI(https://kusanagi.tokyo/)を使用しています。
こちらの設定は殆どデフォルトのまま使用しています。

同時に②はSSL化したいと思っており、下記のように設定しました。
WordPress側のwp_optionsのsiteurlおよびhomeはhttpsに書き換えました。
(https://example.com/aaa/ に設定しています。)

■質問点
(1)ここで、http://example.com/aaa/http://②用のIP/でアクセスが来た場合、
https://example.com/aaa/ に常時リダイレクトさせたいと思っているのですが書き方がわかりません。
そのためhttps://example.com/aaa/http://example.com/aaa/ が両方混在している状態になっております。

(2)②のサーバーのSSL化について
②のサーバーにおSSLの設定は必要なのでしょうか。①のサーバーで設定しているため、不要だと勝手に思っております。

上記2点の質問についてご質問させていただきます。
長文乱文で大変申し訳ございませんが、ご教示いただけましたら幸甚で御座います。
お手数をおかけしますが、よろしくお願い致します。

■以下WEBサーバーの設定

①httpd.conf

Listen 80 ~省略~ NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot /var/www/example.com ServerName example.com </VirtualHost> <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from All </Proxy> ProxyPass /aaa/ http://②用のIP/aaa/ ProxyPassReverse /aaa/ http://②用のIP/aaa/ </IFModule>

①ssl.conf

LoadModule ssl_module modules/mod_ssl.so Listen 443 SSLPassPhraseDialog builtin SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSLRandomSeed startup file:/dev/urandom 256 SSLRandomSeed connect builtin SSLCryptoDevice builtin <VirtualHost _default_:443> DocumentRoot "/var/www/example.com/" ServerName example.com:443 LogLevel warn SSLEngine on SSLProtocol all -SSLv2 SSLCipherSuite DEFAULT:!EXP:!SSLv2:!DES:!IDEA:!SEED:+3DES SSLCertificateFile /usr/local/ssl/certs/○○○ SSLCertificateKeyFile /usr/local/ssl/private/○○○ SSLCACertificateFile /usr/local/ssl/certs/○○○ <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/var/www/cgi-bin"> SSLOptions +StdEnvVars </Directory> SetEnvIf User-Agent ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 CustomLog logs/ssl_request_log \ "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b" </VirtualHost> <IfModule mod_proxy.c> ProxyRequests Off <Proxy *> Order deny,allow Allow from All </Proxy> SSLEngine on SSLProxyEngine on ProxyPass /aaa/ https://②用のIP/aaa/ ProxyPassReverse /aaa/ https://②用のIP/aaa/ </IFModule>

②httpd.conf

server { listen 80; server_name ②のIP; 省略

②ssl.conf

server { listen 443; server_name ②のIP; 省略

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ぱっと見ですが、

ProxyPass /aaa/ https://②用のIP/aaa/

上記で、参照するURLはhttpsで接続しています。
であれば、以下

(2)②のサーバーのSSL化について

②のサーバーにおSSLの設定は必要なのでしょうか。①のサーバーで設定しているため、不要だと勝手に思っております。

②のサーバにはhttpsでのリクエストが飛ぶので、SSLの設定が必要なのでは?と思います。

投稿2016/05/31 03:12

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koji9412

2016/05/31 03:24

ご回答ありがとうございます。 ①ssl.conf ProxyPass /aaa/ https://②用のIP/aaa/ ProxyPassReverse /aaa/ https://②用のIP/aaa/ こちらの部分ですが、httpsにしておりますが、httpにしなければいけないのでは・・・?と思っております。 併せて ①httpd.conf の/aaa/ディレクトリを参照した場合の処理をリバースプロキシではなく、 リダイレクト処理で一度 http://②用のIP/aaa/https://example.com/aaa/ に飛ばしてから、再度 ①ssl.conf でhttp://②用のIP/aaa/ にすれば、 常時SSL化が出来そうだと思っておりますが、動かなくなりそうで不安です。 要約 http://example.com/aaa/ でアクセスがあった ↓ ①http.confを見る ↓ https://example.com/aaa/ へリダイレクト ↓ ①ssl.confを見る ↓ /aaa/ を http://②用のIO/aaa/ へリバースプロキシ ↓ ②http.confを見る ↓ サイト表示 このため、②側にはSSLの設定はいらないのではないかと思っております。 引き続きご教示いただけましたら幸いです。 よろしくお願いいたします。
over

2016/05/31 04:05

> (2)②のサーバーのSSL化について > ②のサーバーにおSSLの設定は必要なのでしょうか。①のサーバーで設定しているため、 > 不要だと勝手に思っております。 上記の質問は設定の問題ではなく運用(ここではセキュリティが該当するかと存じますが)ポリシー上必要か?ということを聞かれているのでしょうか? 運用ポリシーは、サイト毎に適切な設計をされるべきものなので一概には言えませんが、少しでも平文が流れるのを嫌うのであればSSL化となります。 ただし、それなりのオーバーヘッドも生じますので、今回の「http://②用のIP/aaa/」に接続が合った場合に「https://example.com/aaa/」にリダイレクトするのであれば必要ないようにも感じます。 Web実体がhttpでのリクエストを受け付けるのであれば、以下認識で問題ないと思います。 > ProxyPass /aaa/ https://②用のIP/aaa/ > ProxyPassReverse /aaa/ https://②用のIP/aaa/ > こちらの部分ですが、httpsにしておりますが、httpにしなければいけないので > は・・・?と思っております。 ただし、リバースプロキシ - Web実体間は平文でやり取りされるので、運用ポリシーと相談なさってください。 で、一つ気になったのは、サーバ②でリダイレクトを行って、サーバ①でリバースプロキシでhttpで接続するとループが起きるような気がします。 > 常時SSL化が出来そうだと思っておりますが、動かなくなりそうで不安です。 いきなり本番に実装するつもりであれば、検証環境で試されてからの方が良いでしょう。
koji9412

2016/05/31 05:33

ありがとうございます。 >上記の質問は設定の問題ではなく運用(ここではセキュリティが該当するかと存じますが)ポリシー上必要か?ということを聞かれているのでしょうか? ・こちらhttps://example.com/ および https://example.com/aaa/ を実現する上での設定面でのご質問でした。 >リバースプロキシ - Web実体間は平文でやり取りされる ・つまり、①がSSL対応でもリバースプロキシ先がSSL非対応の場合、平分やり取りになってしまうのですね。勉強になります。 >で、一つ気になったのは、サーバ②でリダイレクトを行って、サーバ①でリバースプロキシでhttpで接続するとループが起きるような気がします。 おっしゃるとおり、ループしてしまいますね。。。 >いきなり本番に実装するつもりであれば、 検証環境できちんと再度試行錯誤することにいたしました。 今回のベストアンサーにさせていただきます。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問