- PR -

途中でhttps → httpになってしまう

1
投稿者投稿内容
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-07-05 16:39
ヴァンフォーレ増嶋です。
お世話になっております。

[環境情報]

『Webサーバ』
Windows Server 2003
JDK1.6.0.01
Tomcat 6.0.16(Apache等とは非連携で単独使用)

『SSLアクセラレータ&負荷分散装置』
F5 BIG-IP 3400

上記の環境で、Webシステムを構築中です。サーバ証明書については、BIG-IPにインストールしております。BIG-IPで仮想サーバを立てて、80番ポートで起動させているWebサーバに振り分ける方式を取っております。

先日、テストを実施したところ、トップページ(ログイン画面)については、httpsでアクセスが可能でした。ところが、ログイン処理を実行しようとすると、以下のような警告が表示されてしまいます。

「セキュリティの警告

セキィリティで保護されていない接続へリダイレクトされようとしています。
現在のサイトへ送信中の情報は、セキュリティで保護されていないサイトへ
再送信される可能性があります。続行しますか?」

「はい」を選択後、タイムアウトしてしまいます。ブラウザのエラー画面には、 「http://XXX.XXX.ne.jp:80へはアクセスできませんでした」と表示されてしまいます。どうやら途中から、httpsではなくhttpになってしまったように見えます。

原因が、Webサーバにあるのか、BIG-IPにあるのか、切り分けができず苦慮しております。http://d.hatena.ne.jp/masakas/20050303 の内容が本件に近いかなと思いましたが、特定できておりません。

漠然とした情報なので恐縮ですが、有識者の方のご意見を頂ければと思います。
Anthyhime
ぬし
会議室デビュー日: 2002/09/10
投稿数: 437
投稿日時: 2008-07-05 21:31
「http://」URLにリダイレクトさせていれば、そうなる可能性があります。
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-07-16 16:34
ヴァンフォーレ増嶋です。
お世話になっております。

Anthyhimeさん、返信ありがとうございます。

BIG-IPのサポートベンダその他に調査を依頼しましたが、同様に「http://にリダイレクトされているからでは?」という回答でした。肝心のなぜリダイレクトされてしまうのかがまだわかっておりません。

最初の質問の時に情報が漏れましたが、同一ネットワーク上にあり、同一アプリを乗せたサーバがあり、このサーバのミドルウェアはWeblogic Server 7.0です。こちらでは現象が発生していないことに気づき、ミドルの仕様の差異を疑っております。

リダイレクトさせるjspを配備して、telnetコマンドでGETした結果、以下のように異なった値が取得されました。相対URLや絶対URLといった話になるのだと思いますが、これはミドルウェアの仕様になるのでしょうか?またApacheと非連携のTomcatで、Weblogicのような形に変更させることは可能でしょうか?

Location: /login.con?code=999 (Weblogic)
Location: http://XXX.○○○.co.jp:10600/login.con?code=999  (Tomcat)

質問の内容的には板違いかもしれませんが、よろしくお願い致します。
ykSiR
会議室デビュー日: 2006/10/03
投稿数: 16
投稿日時: 2008-07-16 17:37
引用:

ヴァンフォーレ増嶋さんの書き込み (2008-07-16 16:34) より:
Location: http://XXX.○○○.co.jp:10600/login.con?code=999  (Tomcat)


これを見る限りTomcatのConnectorは10600番ポートでしょうか?

80番ポートであっても同じですが、10600の部分はConnectorのproxyPortにより変更することができます。
HTTPSのみで良いならこれを変更するだけで対応できると思います。
詳細はhttp://tomcat.apache.org/tomcat-6.0-doc/config/http.htmlを確認して下さい。

HTTPも併用する場合はConnectorを2つ用意しproxyPortでそれぞれ80・443と設定した上で、SSLアクセラレータを経由したものはproxyPortが443のConnectorへ、経由していないものはproxyPortが80のConnectorへ割り振れば良いと思います。
BIG-IPからどちらのConnectorに割り振るかについてはBIG IPのRuleを利用すれば実現できると思います。

肝心なことを忘れていましたが、SSLアクセラレータ経由のConnectorのschemeにはhttpsを指定する必要があります。

# Connectorのschemeについて追記



[ メッセージ編集済み 編集者: ykSiR 編集日時 2008-07-16 17:41 ]
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-07-16 18:22
増嶋です。
お世話になっております。

ykSiRさん、早速の返信ありがとうございます。

>これを見る限りTomcatのConnectorは10600番ポートでしょうか?

大変失礼しました。さきほどのtelnetは社内環境でサンプルとして取得したものです。複数インスタンス起動させているため、ポート番号は様々です。

SSLアクセラレータを経由した環境では、TomcatもWeblogicともにhttp(80)で起動させております。Webサーバの設定としては特にhttpsを有効にするような設定になっていないという認識です。

Weblogicでは正常に動いているため、Weblogicに合わせたいと考えております。
ヴァンフォーレ増嶋
常連さん
会議室デビュー日: 2007/08/06
投稿数: 31
投稿日時: 2008-08-11 19:50
ヴァンフォーレ増嶋です。
お世話になっております。

本件、引き続き調査中ですが、
話がWebサーバ寄りになって参りましたので、
一旦、Java Solution 会議室の方で相談してみます。

お騒がせ致しました。
1

スキルアップ/キャリアアップ(JOB@IT)