• 締切済み

apachの リバースプロキシについて

WEBの知識がなく、分かりにくい表現になるかと思いますが、よろしくお願いします。アパッチのリバースプロキシを使用して、HttpsのURLを呼びだしPOSTデータを引き渡したいと考え、動作検証を行ったのですが、POSTのデータを受け取ることができませんでした。GETで送られた、データは受け取ることができました。 アパッチのリバースプロキシでは、POSTのデータを受け取ることはできないのでしょうか。   可能の場合は、どのようにすればできるのでしょうか。 また、実現不可の場合は、リバースプロキシ、POST通信、SSLによる暗号化通信の要件を満たせる実装方法をご教示頂きたく。 よろしくお願い致します。

みんなの回答

  • t-okura
  • ベストアンサー率75% (253/335)
回答No.1

リバースプロキシの設定は、Apache のドキュメントに あるように下記のような設定を行うだけです。 ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /foo http://foo.example.com/bar ProxyPassReverse /foo http://foo.example.com/bar これで GET も POST もプロキシーされます。 具体的にどうできないのでしょうか。 設定された内容やうまく行かない状況(具体的に どうなるのか)を出されたらどうでしょうか。 また LogLevel debug で ErrorLog を取るとプロキシー の動作状況が見れますよ。

参考URL:
http://httpd.apache.org/docs/2.2/mod/mod_proxy.html
noco1234
質問者

お礼

t-okura様 ありがとうございます。 POST送信できました。 APACHの設定ファイルの書き方に問題があったようです。 リバース先のディレクトリの末尾に / を付与したら動作しました。 https://xxxxxxxxx/xxxxxx GETの動作 ○ POSTの動作 × https://xxxxxxxx/xxxxxx/ GETの動作 ○ POSTの動作 ○ 以上、ありがとうございました。

関連するQ&A

  • 透過型プロキシのHTTPS通信

    現在,自作の透過型HTTP/HTTPSプロキシを開発中です. プロキシとしての動作は単にクライアント・サーバ間のデータ受け渡しを行うだけなのですが,現在,透過型の実現で困っております. 透過型の実現には,iptablesを利用し,宛先ポート80番のデータの宛先ポート番号を3128番(本プロキシ)に変換し,本システムにデータを送信しています.HTTPの場合はこれで問題ないのですが,HTTPSの場合が問題です. HTTPSの場合はSSLハンドシェイク等,通常のHTTPとは違う手順を行わなければならないので,HTTP,HTTPSどちらで通信するのかをあらかじめ知る必要があります. クライアントのWebブラウザでプロキシの指定を行う場合(透過型ではない)のHTTPS通信は,クライアントからCONNECTリクエストが実行された場合のみ,HTTPS通信処理へ分岐させればいいのですが,透過型の場合は,クライアントからそのメソッドが実行されず,さらにiptablesによって宛先ポート番号も3128番に書き換えられているため,HTTP通信なのかHTTPS通信なのかを判別することができません. これを実現するためには,どのような方法があるのでしょうか? 透過型プロキシでHTTPS通信をサポートする製品(Webフィルタリングソフト等)はたくさん存在しているため,実現は可能だと考えられるのですが,どのように実現されているのでしょうか? 考えられるひとつの方法としては,HTTP用を3128番,HTTPS用を3129番ポートで実行しておいて,iptablesで80ならば3128,430ならば3129等と振り分ける方法が挙げられますが,どうでしょうか. よろしくお願いいたします.

  • リバースプロキシの設定方法

    「http://IPアドレス」にアクセスした時、「https://任意のドメイン/login.html」にリダイレクトするようにしたいです。 ただし、クライアントに返されるhtmlを変更できないようにするために、リダイレクト設定ではなくリバースプロキシ設定で上記を実現させたいです。 ちなみに、EC2(Apache)からVPCエンドポイントを経由してリダイレクトするといった構成です。 Apacheにおいてリバースプロキシで、上記リダイレクトを実現する方法を教えてください。

  • NATとリバースプロキシについて

    今ネットワークの設計と構築を行っており添付のとおり設計してます アクセスはHTTPSでFWのWAN側のIPにアクセスし その通信をNATしてリバースプロキシに向け リバースプロキシがURL毎に該当のサーバーに振り分けます。 このとき戻りのパケット(ウェブサーバーからの応答パケット) はFWに行くのでしょうか? 当方リバースプロキシサーバーの知識がなく よくわかりません。汗 (担当の人はいけると言ってるのですが、、、) サーバーのデフォルトゲートウェイはFWに向いているのですが この場合だとNATテーブルにないためパケットが破棄されてしまうのでは? と思っています。 知識のある方お知恵をお貸しください。

  • リバースプロキシ使用時のSSL証明書について

    クライアント-(SSL)-リバースプロキシ-(SSL)-Webサーバ構成の場合、WebサーバにインストールするSSL証明書は自己署名で構わないのでしょうか? リバースプロキシ-(SSL)-Webサーバ間ではSSLクライアントはリバースプロキシですから、リバースプロキシというものが一般的に証明書の正当性チェックをしないものであれば問題ないと思うのですが、やはりリバースプロキシの仕様に依存するのでしょうか?

  • apache リバースプロキシ

    毎度お世話になってます。 タイトルの通りapacheのリバースプロキシの設定で悩んでおります。 単純なリバースプロキシは問題なく動くのですが、 例えば、 ドメインA:back.com ドメインB:revers.com があるとして、 back.com/ppp/の中身を URL:http://revers.com/ で表示させたいのですが、 ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://back.com/ppp ProxyPassReverse / http://revers.com/ 上記では、転送されてURLがhttp://back.comになってしまします。 どなたか詳しい方、もしくは実装されたことがある方いらっしゃいましたら教えてください。。 よろしくお願いします!

  • リバースプロキシの開発ついての質問

    apacheでリバースプロキシを開発をしています。(c言語) このプロキシは、リクエストを受けてユーザの属性を判別して後ろのサービスにリクエストを送る、というものです。 このリバースプロキシで質問なのですが、xml形式のリクエストをうけて、ある特定のユーザを判別した場合、リクエストのxmlにパラメータ(ユーザ1、2,3のようなフラグ)を追加して送りたいとかんがえているのですが、このようなことをすることは可能でしょうか? いまapacheのモジュールでこの処理をかいえているのですが、 リクエストを受信 → xmlのパース、解析 ー> ユーザの判別 ー> xmlにパラメータの追加 までの実装のめどは付いているのですが、 リクエストを受信 → xmlのパース、解析 ー> ユーザの判別 ー> xmlにパラメータの追加  ー> 追加したxmlで後ろのサービスにリクエストする 追加したxmlで後ろのサービスにリクエストするというのがどのようにすればいいのかがわかりません。(request_recの中のなんらかのパラメータに改ざんしたxmlをつけるのかなとはおもっているのですが・・・) 専門的なことになってしまい、答えにくいかもしれませんが、 1.リバースプロキシ上でリクエストを書き換えて後ろのサービスに送るのは可能か 2.わかるのであればどのようにすれば後ろのサービスに改ざんしたxmlを送れるのか を教えていただければ幸いです。アドバイス程度のものでも構いません。 宜しくお願いします。

  • ■ Firefoxのプロキシ設定の仕方について ■

    Firefoxブラウザのプロキシ設定について教えてください。 プロキシ設定には、以下 ・HTTPプロキシ ・SSLプロキシ がありますが、それぞれプロキシサーバーのアドレスを設定すると、接続先は以下のようになるのでしょうか? HTTPでのアクセスはHTTPプロキシで設定したサーバーへ HTTPSでのアクセスは、SSLプロキシで設定したサーバーへ またSSLプロキシで設定したサーバーを経由した場合は、そのプロキシサーバーは単なる転送で、プロキシサーバーからはデータの内容は暗号化されたままで分からないのでしょうか? ご解説いただける方、よろしくお願いいたします。

  • DelegateでPOP3、SMTPのリバースプロキシは構築できますか?

    このたび、SMTP、POP3のリバースプロキシを構築する可能性がでてきました。 「リバースプロキシ」「Delegate」でぐぐってみると、HTTPやHTTPSのリバースプロキシを構築されているかたのWebサイトはたくさんあるのですが、 「リバースプロキシ」「Delegate」「smtp」「pop」でぐぐってみても、求めるようなサイトが現れません。 Delegateでもsmtp、popのリバースプロキシは構築可能なのでしょうか? 一般にHTTPのリバースプロキシを構築する場合には、MOUNTコマンドで仮想URLと実URLを記述するようなのですが、SMTPサーバやPOPサーバのアドレスを記述しても問題ないのでしょうか?リファレンスを見るとURLしか記述できないようにも見受けられるのですが・・。 参考になるURLなどありましたら、ご紹介いただけると助かります。 ご教授いただけると助かります。 以上、よろしくお願いしたします。 

  • apacheのリバースプロキシの設定に関しまして

    solaris9とapache2.0.54でリバースプロキシを構築しています。しかし、ブラウザに、 Proxy Error The proxy server received an invalid response from an upstream server. The proxy server could not handle the request GET /dir_name/. Reason: DNS lookup failure for: www.hoge.co.jp とでてきて転送先のサーバに接続できません。 apache2をインストールされているサーバから、nslookupを使用すると、www.hoge.co.jpの名前解決はできます。 よろしくお願いいたします。

  • プログラマブルなHTTPSプロキシサーバーの構築

    現在プログラマブルなHTTPS PROXY SERVERが作りたくて悩んでおります。 Proxy Serverでやりたいこと: 1.HTTPの場合はHTMLのコンテキスト(ペイロードデータ)データでフィルタリング 2.SSL/TLS通信はそのまま転送(しかし、SrcとDstは保存しておきたい) 3.SSL/TLS通信でクライアントがアクセスしたいDSTアドレスによって、   適宜、証明書を選択したい。 (多分)技術的に求めていること: 1.HTTP/HTTPS通信に対応したProxy Serverを立てられること 2.HTTPS通信の場合はSRCとDSTアドレスが分かること 3.HTTPS通信は転送ができること、また、場合によっては特定の証明書を適応できること 4.HTTP/HTTPS(証明書適応時)通信のフィルタリング、(広告を消したり、特定のヘッダーを埋め込んだり) 私の調べた範囲ですと ・Ruby(webrickなど)では、HTTPSに対応したProxy Serverは開発できませんでした。 ・Python(tornadeやproxpy)などではHTTP/HTTPSに対応したProxy Serverは構築できましたが、HTTPS通信そのものを転送することができませんでした。特定の証明書を埋め込む必要があり、結果的にMITM攻撃を強制することになってしまいます。 ・SQUIDですと、HTTPS通信をそのまま転送(フォワード)することはできますが、 接続先によって証明書を変更したり、ペイロードデータでフィルタリングをしたりするようなことはできませんでした。 上記のことから、RubyかPythonで、HTTPS通信をフォーワードしつつDSTによって、処理を変更することができればよいのですが・・・、できておりません。 良い実装方法を御存じの方がいらっしゃいましたら 是非、教えて頂けませんでしょうか。 乱文となりましたが宜しくお願い致します。