Help us understand the problem. What is going on with this article?

Spring-security+Jetty+ELBでSSLオフロード(SSL終端)

More than 1 year has passed since last update.

やりたいこと

ユーザのブラウザからELBまではhttpsで通信、ELBからアプリケーションサーバまではhttpで通信させる
→ これをWikipedia - SSLオフロード, 英語版 TLS termination proxyと言う。Rails, ngnix, ELBでやったことはあったけど、Springではやったことない。そしてできればHttpsを強制させたい。

Springのソース改変するのは面倒なのでミドルウェア層で解決する。

Tomcatでの設定例

以下のブログポストでTomcatでの設定例がある、詳しくはブログポストを見てほしいが基本的にはserver.xmlの記述を書き換えるだけでよい

  HTTP (80) -----> ELB -----> Tomcat (8080)
HTTPS (443) -----> ELB -----> Tomcat (8080)

これで、ELB経由してるブラウザからはHttpsで全部通信してるようになる。

Jetty9での設定

ここからは自分が調査したところになる、Jettyはバージョンによって内部のクラスが結構変わるので、古いWikiなどを見ると設定が通らないことがある。

最終的にはこの部分をアンコメントすることで、Tomcatと同等の設定ができた。

<New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
  ...
  <!-- Uncomment to enable handling of X-Forwarded- style headers -->
  <Call name="addCustomizer">
    <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
  </Call>
</New>

ForwardedRequestCustomizerはロードバランサから送られるX-Forwardedのヘッダがついたリクエストを良しなに処理してくれる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away