2011-01-14 23 views
6

サイトの一部(特定のURL)のみにクライアント証明書が必要なHTTPSサイトで、Jettyでサーブレットを実行したいとします。たとえば:JettyはURLでSSLクライアント証明書を要求します

https://example.com/someservlet/public - クライアント証明書は、私は要求が行われた後にSSL接続を再交渉するようにApacheを強制<Directory><Location>内部SSLVerifyClient requireを指定することでこれを実現することができますApacheのでは

を必要 - 何のクライアント証明書は https://example.com/someservlet/protectedを必要としません。

私はJettyを他の何かに埋め込み、スタンドアロンで実行したくないです。これは可能ですか?サーブレットはこれを何らかの形で直接引き起こすことができますか?設定を介して行うことはできますか?

答えて

3

私が知る限り、SSLオプションはポート単位でしか指定できません。

セキュリティ上の脆弱性のために1年ほど前に変更されたSSLRenegotiationが必要なため、達成しようとしている設定が問題であっても問題はありません。したがって、SSLRenogitiationを実行するための新しい方法は、新しいクライアントでのみサポートされています。サポートされていても、バグのために機能しません。

2つのSSLポートでリッスンするようにJettyを設定します。 たとえば、HTTPSクライアント認証なしの443、HTTPSクライアント認証が必要な8443などがあります。そして、あなたの保護されたサーブレットを8443だけで利用可能にしてください。これは素晴らしいソリューションではありませんが、100%堅牢で、Jettyとすべてのクライアントで動作します。

+1

私の環境では、すべてのクライアントとサーバーを更新する必要があります(Reneg。問題が進行していたのは楽しいことでした)。さらに、非標準ポートを使用することは、さまざまなファイアウォールを介して許可されません。数ヵ月後に – user63599

+0

、誰もが単一のポートで動作するソリューションを知っていますか? –

関連する問題