(APRを使用する場合はJSSEコネクタを使用SSLVerifyClient="optional"
する場合と同等であることに注意してください。オプションですが、これは接続時にネゴシエートされ、サーバーがパスを認識した後は再ネゴシエートされません。)clientAuth="want"
特定のWebアプリケーション(またはパス)に対してのみクライアント証明書認証を使用する場合は、トラストストアを使用してコネクタを構成する必要がありますが、そのままにしておきclientAuth="false"
ます。
次に、で、認証WEB-INF/web.xml
を構成する必要があります。CLIENT-CERT
これは、再ネゴシエーションを使用して、必要に応じてクライアント証明書を要求します。構成は次のようになります。
<web-app>
<display-name>My Webapp</display-name>
<security-constraint>
<web-resource-collection>
<web-resource-name>App</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>cert</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
<security-role>
<role-name>cert</role-name>
</security-role>
</web-app>
(Tomcatユーザーを構成するときは、ユーザーのサブジェクトDNを適切なロールにマップする必要もあります。)