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

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

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

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

Q&A

解決済

1回答

1376閲覧

apache2.4 httpsのproxyについて

aonisai

総合スコア14

Apache

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

proxy

proxy(プロキシー)は、企業などの内部コンピュータとインターネットの中間に位置し、例えば直接インターネットに接続できない内部コンピュータの代理としてインターネットに接続する等をするシステム、もしくは代理として機能を実行するソフトウェアです。内部ネットワークへのアクセスを一元管理し、内部からの特定の種類の接続以外を遮断すること、外部からの不正アクセスを拒否することなどに用いられます。

0グッド

2クリップ

投稿2018/05/14 07:19

■環境
OS:CentOS Linux release 7.4.1708
apache:Apache/2.4.6

■実現したいこと
http、httpsのアクセスすべてに同一レスポンス(sorryコンテンツ)を返したい。
リダイレクトは使えない。

■問題点
上手くレスポンス返せていないが、そもそもproxyの設定が妥当か判断出来ない。(素人ですみません)

■現状 /etc/httpd/conf.modules.d/00-proxy.conf

This file configures all the proxy modules:

LoadModule proxy_module modules/mod_proxy.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

<VirtualHost *>
ServerName IPaddress
DocumentRoot /var/www/html

ProxyPass / https://IPaddress/sorry.html:443/
ProxyPassReverse / https://IPaddress:443/
</VirtualHost>

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

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

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

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

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

guest

回答1

0

ベストアンサー

プロキシー先の URL に HTTPS でアクセスするのは必須ですか?
HTTP ならば、すんなりいくと思います。

プロキシー先に HTTPS でアクセスするのであれば、mod_ssl モジュールのインストールと、SSLProxyEngine on (HTTPS クライアントとして使用する) 設定が必要です。
また、「アクセスすべてに」ということであれば、RewriteRule を使って ^.*$ (すべてのパス) を sorry ページに [P] (プロキシー) でアクセスするようにするといいと思います。

SSLProxyEngine on SSLProxyCheckPeerCN off SSLProxyCheckPeerName off RewriteEngine On RewriteRule ^.*$ https://IPaddress/sorry.html [P,L]

設定ファイルは、/etc/httpd/conf.modules.d/00-proxy.conf に記載するよりも、/etc/httpd/conf.d/ 以下に proxy-sorry.conf などのファイル名で作成した方がいいと思います。

また、本サーバーへの https アクセスも sorry ページにプロキシーアクセスさせるには、/etc/httpd/conf.d/ssl.conf の <VirtualHost _default_:443> 内にも上記設定が必要です。

投稿2018/05/16 09:25

TaichiYanagiya

総合スコア12141

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

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

aonisai

2018/05/16 23:48

ご回答ありがとうございます。HTTPSは必須です。 昨日、自分でも以下の設定で上手く動作することが確認できました。 SSLProxyCheckPeerCN off、SSLProxyCheckPeerName offは証明書作成時にIPで対象設定を記載しているので、省きました。 RewriteCond %{REQUEST_URI} !^/sorry.html$を省くと、HTTPでアクセスした時にループするかなと思ったのですが、不要でしょうか。 【00-proxy.conf】 <VirtualHost *:80> ServerName IPaddress DocumentRoot /var/www/html SSLProxyEngine On RewriteEngine On RewriteRule ^(.*)$ https://IPaddress/sorry.html [P,L] </VirtualHost> 【ssl.conf】 <VirtualHost _default_:443> SSLProxyEngine On RewriteEngine On RewriteCond %{REQUEST_URI} !^/sorry.html$ RewriteRule ^(.*)$ https://IPaddress/sorry.html [P,L] </VirtualHost>
TaichiYanagiya

2018/05/17 01:21

ループ回避は必要ですが、プロキシー先が自ホストなのであれば、プロキシー([P])にする必要はなく、"/sorry.html" にリライトすればいいです。 RewriteRule ^.*$ /sorry.html [L]
aonisai

2018/05/17 07:06

仰る通りでした。 今回はProxyも含め、勉強になりました。ありがとうございました。
aonisai

2018/05/17 23:53

一点確認してさせていただきたいのですが,クライアントからHTTPで来たリクエストに対して,レスポンスはHTTPSで返しているのでしょうか。それともHTTPでしょうか。
aonisai

2018/05/19 00:43

HTTPですか。HTTPで来たリクエストをHTTPSでレスポンスするには,リダイレクトするしかないのでしょうか。
TaichiYanagiya

2018/05/19 03:19

https の URL をリダイレクトで返して、ブラウザから https でアクセスし直してもらうしかないと思います。
aonisai

2018/05/19 04:02

承知致しました。 本件、解決致しました。 ご回答いただき、ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問