質問

私は、Apacheの背後にあるTomcatでSSLを使用して少し問題を抱えています。私は良い解決策が、今のところ何を見つけようとするすべての朝グーグルを使用しています。

私は私のSSLのVirtualHostの設定の一部として、

<Location /MyApp/>
  ProxyPass http://localhost:8080/MyApp/
</Location>

これは https://mysite.com/MyApp <からログイン成功後、ほとんどの場合にうまく動作しますが、のj_security_check / A>、HTTPページ http://mysite.com/MyApp/secret.htmlではなくHTTPSページとしてそれを残しての https://mysite.com/MyApp/secret.html 。それだけでなく、機密のログインが、送信されているデータですので、私はそれHTTPSを維持する必要があります。私は、アプリケーションのセキュリティ-contraintsに追加すると、

<user-data-constraint>
  <transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>

これは https://mysite.com:8443/MyApp/secret.html <にリダイレクト/>。私は、server.xmlはSSLを8443に設定したので、それが8443にリダイレクトすることを実現するが、これは、Apacheを介してプロキシされているので、それは実際には443にする必要があります。

私は何にProxyPassReverseを持っていない実現するが、それは私がApacheの設定ファイルのセクション内に追加できるものではありません。

どのように私は相対的なリダイレクトのいずれかにj_security_checkで強制することができます(そうでhttp HTTPSを変更しない)、または443の代わりに、8443にリダイレクトするために?これは私がTomcatやApacheのmod_proxyを経て施行すべきものですか?

乾杯

ニク

役に立ちましたか?

解決

あなたは本当にあなたのセットアップのためにSSLにリダイレクトを行うにはTomcat上でカウントすることはできません。あなたは自分をリダイレクト行うためにフィルタを記述する必要があります。

あなたはこのようにredirectPortを追加する場合は、あなたの特定のセットアップのために、それがうまくいくかもしれない

<Connector ... port="8080" redirectPort="443"/>

HTTPSコネクタを削除してください。あなたがにredirectPortとHTTPSコネクタの両方を持っているときには、Tomcatのいくつかのバージョンを混乱させる可能性があります。あなたは、人々が、とにかく自分のHTTPSポートにアクセスすることを望んでいないように聞こえるます。

あなたが同じマシン上のApacheとTomcatを持っている場合、

これはのみ動作します。本番環境では、そうではないかもしれません。

scroll top