HTTP
静的リソース (英語) を含むすべての HTTP ベースの通信は、TLS を使用して [OWASP] (英語) 保護する必要があります。
フレームワークとして、Spring Security は HTTP 接続を処理しないため、HTTPS を直接サポートしません。ただし、HTTPS の使用に役立つ多くの機能を提供します。
Strict Transport Security
Spring Security は Strict Transport Security をサポートし、デフォルトで有効にします。
プロキシサーバー構成
プロキシサーバーを使用する場合は、アプリケーションが適切に構成されていることを確認することが重要です。例: 多くのアプリケーションには、https://192.168.0.107
のアプリケーションサーバーにリクエストを転送することで、https://example.com/
のリクエストに応答するロードバランサがあります。適切な設定がないと、アプリケーションサーバーはロードバランサの存在を認識できず、リクエストを https://192.168.0.107:8080
がリクエストされたかのように処理します。クライアント。
これを修正するには、RFC 7239 [IETF] (英語) を使用して、ロードバランサーが使用されていることを指定します。アプリケーションにこれを認識させるには、X-Forwarded ヘッダーを認識するようにアプリケーションサーバーを構成する必要があります。例: Tomcat は RemoteIpValve
[Apache] (英語) を使用し、Jetty は ForwardedRequestCustomizer
(英語) を使用します。あるいは、Spring ユーザーは、Servlet スタックで ForwardedHeaderFilter
を使用するか、Reactive スタックで ForwardedHeaderTransformer
を使用できます。
Spring Boot ユーザーは、server.forward-headers-strategy
プロパティを使用してアプリケーションを構成できます。詳細については、Spring Boot ドキュメントを参照してください。