Tomcat6を介してホストされるアプリケーションでSSLを有効にする必要があり、Tomcat web.xmlに次を追加しました。
<security-constraint>
<web-resource-collection>
<web-resource-name>Entire Application</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
server.xmlでredirectPortを443として設定します-この設定は正常に機能します。
特定のDNS名を使用してアプリにアクセスする場合、SSLを必要とせずに、アプリケーションへのアクセスを許可する必要があります。
例えば:
アプリケーションのSSL証明書はDNS名に関連付けられています
xyz.applicationdomain.com
この名前でアプリケーションにアクセスすると、リダイレクトが発生し、URLは
https://xyz.applicationdomain.com
しかし、アプリケーションにアクセスするとき
abc.applicationdomain.com、SSLを必要とせずにアプリケーションにアクセスできる必要があります。
別のsecurity-constraint定義を使用してこれを実装することは可能ですか?
いいえ、web.xmlのセキュリティ制約は、ドメインではなくコンテキストのみを考慮します。これを処理する必要があります。Apacheなどを使用したリバースプロキシソリューションで考えます。 2つの独立した仮想ホストは、Tomcatコンテナーのセキュアポート8443または非セキュアポート8080のいずれかにリダイレクトします。
Server.xmlの各コンテキストは、URLを構成する適切なporxyhostとポートを定義します。