1

にSpring Securityを使用していX.509 preauthenticationます。

クライアントが HTTP 要求ごとに証明書を送信することを確認するには、次のことが必要ですか。

  • pom.xml を変更して設定<wantClientAuth><needClientAuth>true
  • ApacheSSLVerifyClientrequire 参照に設定する

読み取りに基づいて、クライアントが実際に証明書を送信するために、Web サーバーはクライアント側に証明書を送信するように指示する必要があります。これを実現するために Spring Security と Apache の構成が必要かどうか、私は混乱しています。

4

1 に答える 1

4

Spring Security の構成は、クライアントが証明書を送信するかどうかとは関係ありません。これは SSL プロトコル レベルで決定されるため、クライアントとサーバー間のネゴシエーションによって決定されます。あなたの質問は、システムがどのように設定されているかを説明せずに、maven pom と Apache 構成に言及しているという点で少し不明確です。Apache サーバーを前にして Maven Jetty プラグインを実行していますか?

SSL 接続がサーブレット コンテナーで終了しない場合、Spring Security の X.509 認証は機能しません。したがって、クライアントと Apache の間に HTTPS があり、Apache からサーブレット コンテナーへの非 SSL 接続がある場合、クライアント証明書は通常は利用できません。

AJP コネクタを使用している場合は、オプションを使用して証明書をバックエンドに渡すように Apache を構成できExportCertDataます。そうでない場合でも、エクスポートされた証明書を取得して、それを要求ヘッダーとして渡すことができます (SO の他の場所でこの例を見つけることができます)。また、Spring Security X.509 コードをカスタマイズして、デフォルトで使用される標準の Java プロパティ名ではなく、ヘッダーから証明書を抽出する必要があります。

于 2013-05-13T13:02:21.263 に答える