web-dev-qa-db-ja.com

DNS名/ホストヘッダー固有のurl-pattern / security-constraint、Tomcat6でSSLを要求しない

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定義を使用してこれを実装することは可能ですか?

2
user57555

いいえ、web.xmlのセキュリティ制約は、ドメインではなくコンテキストのみを考慮します。これを処理する必要があります。Apacheなどを使用したリバースプロキシソリューションで考えます。 2つの独立した仮想ホストは、Tomcatコンテナーのセキュアポート8443または非セキュアポート8080のいずれかにリダイレクトします。

Server.xmlの各コンテキストは、URLを構成する適切なporxyhostとポートを定義します。

http://wiki.customware.net/repository/display/GREENHOUSE/2009/06/13/Reverse+Proxy+with+Apache+mod_proxy

1
Eddie