WebサーバーなどでSSLオフロードするときの注意点

6,668 views

Published on

WebサーバなどでSSLオフロードしている場合、そのままでは アプリが正常に動かなくなる可能性があります。
Webサーバのプラグインの設定とWebLogic Server側の設定方法を説明します。

伊藤忠テクノソリューションズ株式会社 ソフトウェアサービス本部 ミドルウェアサービス部
山田 貴裕

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
6,668
On SlideShare
0
From Embeds
0
Number of Embeds
120
Actions
Shares
0
Downloads
45
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

WebサーバーなどでSSLオフロードするときの注意点

  1. 1. WebLogic Server勉強会@東京 LTWebサーバーなどでSSLオフロードするときの注意点 ソフトウェアサービス本部 ミドルウェアサービス部 山田 貴裕 2012/12/14 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  2. 2. Webサーバーとの連係の基本と本シナリオ Webサーバーと連係する際は、通常、WebLogic Server(WLS)用プラグイン (通称:プロキシプラグイン)を経由してアクセス <シナリオ> セキュリティ要件により、クライアントからはSSL(https)を利用するが、 パフォーマンス上、WLSではhttpで処理したい クライアント Webサーバー WebLogic https http プラグイン Server (WLS) 設定やアプリによっては問題になる可能性あり1 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  3. 3. 何が問題になるのか? クライアントからリクエストしているhttpsで、アプリ上は処理したい – 明示的に意識してなくても、リダイレクトを行う場合など含む WLSにリクエストされているhttpで処理してしまおうとする トラブル発生 影響を受ける主なAPI クラス メソッド 説明 ServletRequest getScheme "https" や "http" のようなスキーム文字列を返す isSecure httpsの場合はtrue、httpの場合はfalseを返す HttpServletRequest getRequestURL クライアントからリクエストされたURLを再構築する HttpServletResponse sendRedirect リダイレクト用のレスポンスを返す (例) HTTP/1.1 302 Moved Temporarily フルパス→ Location: http://www.example.com/foo/bar2 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  4. 4. 解決策 • Webサーバープラグインで「WLProxySSL ON」を設定 <Location /foo> SetHandler weblogic-handler WebLogicHost example WeblogicPort 7001 WLProxySSL ON </Location> • WLSで「WebLogicプラグインの有効化」を設定 – 管理コンソールで、[サーバー]→<サーバー名>→[構成]→[全般]→[詳細] • クラスタを組んでいる場合は、[クラスタ]→<クラスタ名>→[構成]→[全般]→[詳細] ※上記の両方とも設定する必要あり3 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  5. 5. 何が行われているか • Webサーバープラグインで「WLProxySSL ON」を設定 – リクエストヘッダに「WL-Proxy-SSL: true」を付加し、WLSに送信 Webサーバー WebLogic プラグイン Server GET /foo/bar HTTP/1.0 (WLS) : WL-Proxy-SSL: true • WLSで「WebLogicプラグインの有効化」を設定 – WL-Proxy-SSLヘッダがtrueに設定されている場合、セキュアな通信が 行われているとみなし、各種APIの内部動作を変更 – ServletRequest#getRemoteAddrやアクセスログに記録されるIPアドレス も、Webサーバーで受け付けたクライアントのIPアドレスに変更 (WL-Proxy-Client-IPヘッダを参照) ☆ プロキシプラグインを介していない場合、セキュリティ上問題になる可能性あり4 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  6. 6. 補足 • デフォルトだと(おそらくセキュリティ上の理由で)、WL-Proxy-SSL ヘッダはアプリケーションからアクセス不可 – HttpServletRequest#getHeader("WL-Proxy-SSL") => nullが返る – WLSの起動オプションに以下を付加することでアクセス可能 -Dweblogic.http.isWLProxyHeadersAccessible=true • プラグインの「WLProxySSLPassThrough ON」設定 – Webサーバーの前段にSSLアクセラレータがあるような状況で、 WL-Proxy-SSLヘッダが渡ってきたら、そのまま通過 – WLS11gから推奨されているv1.1プラグイン(別途ダウンロード)が必要 SSL Webサーバー WebLogic https アクセラレータ http http プラグイン Server (WLS) WL-Proxy-SSL: true WL-Proxy-SSL: true5 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  7. 7. 参考情報 • Oracle WebLogic ServerにおけるWebサーバー1.1プラグインの使用 11g リリース1 (10.3.6) B61009-04 Webサーバー・プラグインのパラメータ http://docs.oracle.com/cd/E28389_01/web.1111/b61009/plugin_params.htm • Oracle Blogs 日本語のまとめ: [WLS] Offloading SSL from WLS to the F5 http://orablogs-jp.blogspot.jp/2011/10/offloading-ssl-from-wls-to-f5.html6 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  8. 8. まとめ • WebサーバーなどでSSLオフロードしている場合、そのままでは アプリが正常に動かなくなる可能性あり • 以下の設定を行うこと – Webサーバープラグインで「WLProxySSL ON」を設定 – WLSで「WebLogicプラグインの有効化」を設定 WebLogicプラグイン WLProxySSL ON の有効化 Webサーバー WebLogic プラグイン Server (WLS)7 Copyright (c)2012 ITOCHU Techno-Solutions Corporation
  9. 9. Copyright (c)2012 ITOCHU Techno-Solutions Corporation

×