5.2. クライアント証明書認証の設定
Data Grid Server が相互 TLS を使用してクライアント接続のセキュリティーを保護するように設定します。
トラストストアの証明書からクライアント ID を検証するように Data Grid を設定するには、以下の 2 つの方法があります。
- 通常は認証局 (CA) である署名証明書のみが含まれるトラストストアが必要です。CA によって署名された証明書を提示するクライアントは、Data Grid に接続できます。
- 署名証明書に加えて、すべてのクライアント証明書が含まれるトラストストアが必要です。トラストストアに存在する署名済み証明書を提示するクライアントのみが Data Grid に接続できます。
ヒント
トラストストアを提供する代わりに、共有システム証明書を使用できます。
前提条件
- CA 証明書またはすべての公開証明書のいずれかを含むクライアントトラストストアを作成します。
- Data Grid Server のキーストアを作成し、SSL/TLS アイデンティティーを設定します。
手順
-
require-ssl-client-auth="true"パラメーターをendpoints設定に追加します。 -
クライアントトラストストアを
$RHDG_HOME/server/confディレクトリーに追加します。 -
Data Grid Server セキュリティーレルム設定で、
truststore要素のpathおよびpassword属性を指定します。 -
Data Grid Server で各クライアント証明書を認証する場合は、
<truststore-realm/>要素をセキュリティーレルムに追加します。
Data Grid Server のトラストストアレルムの設定
<security xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd"
xmlns="urn:infinispan:server:12.1">
<security-realms>
<security-realm name="default">
<server-identities>
<ssl>
<!-- Provides an SSL/TLS identity with a keystore that
contains server certificates. -->
<keystore path="server.p12"
relative-to="infinispan.server.config.path"
keystore-password="secret"
alias="server"/>
<!-- Configures a trust store that contains client certificates
or part of a certificate chain. -->
<truststore path="trust.p12"
relative-to="infinispan.server.config.path"
password="secret"/>
</ssl>
</server-identities>
<!-- Authenticates client certificates against the trust store.
If you configure this, the trust store must contain
the public certificates for all clients. -->
<truststore-realm/>
</security-realm>
</security-realms>
</security>
<!-- Configures Data Grid Server to require client certificates
with the "require-ssl-client-auth" attribute. -->
<endpoints xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:server:12.1 https://infinispan.org/schemas/infinispan-server-12.1.xsd"
xmlns="urn:infinispan:server:12.1"
socket-binding="default"
security-realm="default"
require-ssl-client-auth="true">
<hotrod-connector>
<!-- Configures the Hot Rod endpoint for client certificate authentication. -->
<authentication>
<sasl mechanisms="EXTERNAL"
server-name="infinispan"
qop="auth"/>
</authentication>
</hotrod-connector>
<rest-connector>
<!-- Configures the REST endpoint for client certificate authentication. -->
<authentication mechanisms="CLIENT_CERT"/>
</rest-connector>
</endpoints>
次のステップ
- セキュリティーロールおよびパーミッションでアクセスを制御する場合は、Data Grid Server 設定で、クライアント証明書を使用して承認を設定します。
- クライアントを設定し、Data Grid Server と SSL/TLS 接続をネゴシエートします。