- - PR -
SSLリバースプロキシについての質問
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2007-01-08 01:00
初めましてkapと申します。
非武装エリアさんのサイト http://squid.robata.org/ReverseProxy_top.html http://squid.robata.org/ReverseProxy_ssl.html を参考にさせていただき、ProxyとWebサーバ1対1の関係で SSLリバースプロキシを構築しました。 しかし、Httpsでアクセスしても次ページに進むとHttpでの アクセスになってしまいます。 これは、私の設定に問題があるのでしょか? 調査するポイントや具体的なSquidの設定などご指示いただけると幸いです。 なお、設定については上記サイトにかかれているSquid.confの修正以外は 行っておりません。 当方、Linuxをさわりはじめて、まだ間もないためとんちんかんな 質問をしているかもしれませんが、何とぞよろしくお願いいたします。 |
|
投稿日時: 2007-01-08 10:53
こんにちは。
squid の設定云々よりも、Webサーバに載せているコンテンツをまず確認した方が良いと思います。 HTML の aタグのhref属性や、formのaction属性等で指定している、次ページのURLが“http://〜”というように絶対パスで指定されていませんか? squidはSSL暗号化通信の復号をやってくれるだけで、実際のコンテンツのことまで面倒は見ないですから。 |
|
投稿日時: 2007-01-09 07:31
回答ありがとうございます。
Webサーバのコンテンツ内容によってはSSLリバースプロキシが Webサーバから受け取ったそのままを返してくると言うことですね。 私はてっきり、全てのサイトにおいてSSL化が可能かとおもって いました。どえらい勘違いでした。(^^;;; 一点ご質問させていただきたいのですが、Webサーバ側で Httpsのリクエストが処理できるのであれば、問題なく 処理できるのでしょうか?ご存じでしたら教えてください。 私も自分の環境で本日テストしてみます。 よろしくお願いいたします。 |
|
投稿日時: 2007-01-09 11:10
こんにちは
SSLリバースプロキシ(SSLアクセラレータ)は基本的にPC<->SSLアクセラレータ間をSSL化するだけです。 バックエンドとのプロトコルはSSLアクセラレータの設定次第です。 PC<--(https)-->SSLアクセラレータ<--(http)-->WEB SSLアクセラレータによってはコンテンツの中身を見てURL変換の設定が出来るものがあるようです(万能ではありませんが)。 [ メッセージ編集済み 編集者: 末記人 編集日時 2007-01-09 11:12 ] |
|
投稿日時: 2007-01-09 14:14
返信ありがとうございます。Kapです。
>PC<--(https)-->SSLアクセラレータ<--(http)-->WEB >SSLアクセラレータによってはコンテンツの中身を見てURL変換の設定が出来るものがあるようです(万能ではありませんが)。 言われていることは理解しているつもりなのですが・・・。 Webサーバ的にはHttpしかサポートされていない場合、 PC<--(https)-->SSLアクセラレータ間を 全てSSL化したいのですが、これはSSLリバースプロキシ(Squid)では 不可能なのでしょうか? 教えてばかりで申し訳ございませんが、どうかご教授いただけませんでしょうか? |
|
投稿日時: 2007-01-09 16:34
> Webサーバのコンテンツ内容によってはSSLリバースプロキシが
> Webサーバから受け取ったそのままを返してくると言うことですね。 いえ、SSLリバースプロキシであろうと、非SSLリバースプロキシであろうと、「Webサーバから受け取ったそのまま」を返すのが基本でして、そこは問題ではありません。 私が懸念したのは、 ・https://example.com/ex1.html にアクセスする。( PC→squid SSL ) ・squid が後背のWebサーバに代理でアクセスし、コンテンツを得る。( squid⇔web 非SSL ) ・squid が PC にコンテンツを送る。( PC←squid SSL ) ・コンテンツの中に、ex2.html へのリンクがある ( 「<a href="http://example.com/ex2.html">リンク</a>」 のような ) ・リンクをクリックする ・今度は http://example.com/ex2.html にアクセスする。( PC→squid 非SSL ) … という状態ではないですか? ということ。 この例でex2.htmlへのアクセスの場合、素のhttpで接続しようと判断したのは PC自身であって、さらにその原因はコンテンツに記されているURLです。squidでどうこうする問題ではありません。 ※もし、「<a href="/ex2.html">〜」や「<a href="ex2.html">〜」のようになっていれば、PC は“https://example.com/ex2.html”と解釈して SSL通信をしていたでしょう。 上記のような状態なのかどうか確認しては? というのが、前回答の趣旨です。 で、もしそうなら、コンテンツの中身を調整した方が良いと思います。 コンテンツを弄るのが大変で、squid側だけで対処したいなら、 (1)squidでコンテンツを変換する http://example.com となっている部分を全て https://example.com に替える (2)httpで通信が来たら、httpsでアクセスさせ直す 302の応答コードと共に、アクセスさせたいURL( 今回は https://〜 ) を送ることで、https で再接続させる という候補が考えられますが、(1)に関してそのような機能があるかどうかは知りません。(2)に関しては根本的な解決ではありませんが、一応。Squid FAQのリダイレクタ例が参考になると思います。 追記: Squid FAQのリダイレクタ例って、フォワードプロキシの時のものではないかと気付きました。そのままではリバースプロキシに適用できないように思います。その分を差し引いてご覧下さい。失礼致しました。 [ メッセージ編集済み 編集者: angel 編集日時 2007-01-09 17:19 ] |
|
投稿日時: 2007-01-10 02:22
大変ご丁寧なご回答ありがとうございます。
結論から言うとWebサーバ側の問題でした。 お騒がせしました。現状Webサーバ側のコンテンツがHttpに対しては Httpで返答するような形になっているため、Webサーバ側のApacheを Https対応して、 PC<--(https)-->SSLアクセラレータ<--(https)-->WEB としようと考えております。 別途、できましたらまた報告します。 皆々様、ご支援ありがとうございます。 ---------------------------------------------------------------------- 自己完結レス 結局、上記形式ではできなかったため、別の方法を模索した結果 Poundを利用してSSLリバースプロキシ実現することができました。 ご助言いただきました皆様ありがとうございました。 以上、よろしくお願いいたします。 [ メッセージ編集済み 編集者: kap 編集日時 2007-01-29 20:55 ] |
|
投稿日時: 2007-07-19 01:11
Poundを利用してクライアント→Pound→Webサーバ(https)を解決した
とのことですが、差し支えなければ設定方法について、ご教授願います。 なお、バックエンドサーバの設定を443通信へ変更しただけでは だめでした。。。 以上宜しくお願い致します。 |