2

クライアント アプリケーションと Tomcat インスタンスの間で相互 SSL を正常にセットアップすることができました。ただし、Tomcat にデプロイされたサービスのサブセットのみを相互 SSL 経由で公開する方法を探しています。(「SSLVerifyClient」属性の値を「オプション」に定義することにより)APR構成を使用することは可能に見えますが、TomcatのSSLのJSSE実装で同じことを行う方法を見つけることができないようです. これを行う方法についてのご意見をお待ちしております。

乾杯、プラバース

4

1 に答える 1

3

(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を適切なロールにマップする必要もあります。)

于 2012-11-06T11:15:25.247 に答える