2こんにちは、サイオステクノロジー技術部の武井です。AppsのSSL化でドハマリした記録を書こうと思います。ちなみに本件、ドハマリした挙句解決してません。その記録だけを書き留めようと思っただけです。Apps(Windows)は内部的に以下のような構成になっているらしいです。Routingというリバースプロキシのようなものが、フロントでHTTPS(HTTPでも可)でリクエストを受けて、バックエンドにいるTomcatにhttpでアクセスしてきます。Routingで行います。SSLしたかったので、https://〜でアクセスしたところ、途中でHTTPのアクセスになってしまうところがありました。HTTPヘッダ見てみたら、Locationヘッダにhttpで返していたので、リダイレクトきっかけでHTTPになってしまうようでした。たしかに、WebアプリケーションはHTTPでリクエストを受けているので、LocationヘッダにHTTPで返すだろうなぁと思いました。Security(今回、Tomcat上で稼働しているアプリケーションが採用しているセキュリティフレームワーク)で、以下のような設定を入れると、HTTPでアクセスしてきた場合、HTTPSにリダイレクトしてくれるらしいです。こりゃいいとおもいました。{http.authorizeRequests().antMatchers("/**").hasRole("USER").and().formLogin().and().requiresChannel().anyRequest().requiresSecure();}・・・しかしこれではだめでした。リダイレクトループが発生してしまいました。以下のようなことが起こっていると想像できます。1.http://hoge.com/loginにアクセスします。RoutingはHTTPに変換して、Tomcat上のWebアプリケーションにフォワードします。3.Tomcat上のWebアプリケーションは、https://hoge.com/loginにリダイレクトします。正確に言うと、http://hoge.com/loginにリダイレクトするためのLocationヘッダをHTTPレスポンスに乗せます。4.3のLocationヘッダをブラウザが受け取って、https://hoge.com/loginにリダイレクトする。5.4のLocationヘッダを受けて、https://hoge.com/loginにアクセスします。RoutingはHTTPに変換して、Tomcat上のWebアプリケーションにフォワードします。7.Tomcat上のWebアプリケーションは、https://hoge.com/loginにリダイレクトします。正確に言うと、http://hoge.com/loginにリダイレクトするためのLocationヘッダをHTTPレスポンスに乗せます。8.3のLocationヘッダをブラウザが受け取って、https://hoge.com/loginにリダイレクトする。その後は、5に戻って、ひたすら5〜8の無限ループになります。これを回避する方法があるとWebで見つけました。以下の設定をapplication.propertiesに入れます。Routingは、ブラウザのURLのスキームをx-forwarded-protoというHTTPヘッダに乗せて、Tomcatに送ってくれるらしいです。Securityは、ユーザーがHTTPSで接続してきたとき、つまりx-forwarded-protoヘッダの値がhttpsだったときはhttpsにリダイレクトしなくなるらしいのです。この設定を施したのですが、やっぱり、無限ループになってしまいました。Web上ではこの方法で解決しているひとが多いのですが、なぜか私の環境ではだめでした。なんででしょうか?困り果てたので、アプリケーションの中でリダイレクトを定義しているところを、全てスキームとFQDNを書くようにしました。http.formLogin().loginProcessingUrl("/login").loginPage("/loginForm");こう書いてたのをhttp.formLogin().loginProcessingUrl("/login").loginPage("https://contoso.com/loginForm");としました。めんどくさいですが、今のところ、これしか解決策がないのです。誰か、教えてください・・・。雑誌等の執筆依頼を受付しております。役に立たなかった0人がこの投稿は役に立ったと言っています。HTTPS」拡張機能をインストールしてみて、挙動を試してみてください。10:57佐藤様コメントありがとうございます!!頂きました方法、ぜひ試してみたいと思います。コメントをキャンセルメールアドレスは表示されません。Reserved.本サイトに掲載されている社名、製品名、サービス名等は各社の商標または登録商標です。プライバシーポリシーお問い合わせ。