1.4. 暗号化の設定
Data Grid Server は、異なるタイプの SSL/TLS 暗号化を適用して、Hot Rod JS クライアント接続をセキュアにすることができます。
前提条件
- Hot Rod JS クライアントが Data Grid Server アイデンティティーを検証するのに使用できるトラストストアを作成します。
- Data Grid Server を設定してクライアント証明書を検証または認証する場合は、必要に応じてキーストアを作成します。
手順
- Hot Rod JS クライアント設定を開いて編集します。
-
enabled: true
フラグを設定するssl
メソッドを追加します。 - 使用する暗号化タイプに固有のその他の設定を指定します。
1.4.1. 暗号化タイプ
Hot Rod JS クライアントは、異なるタイプの暗号化を使用して、Data Grid Server とセキュアな接続をネゴシエートできます。
Data Grid Server のアイデンティティー
基本的な暗号化の場合、次のように、Data Grid Server 証明書の署名証明書または CA バンドルを設定に追加できます。
Data Grid Server に発行された証明書を検証するには、Hot Rod JS クライアントでは、完全な証明書チェーンまたは Root CA で始まる部分的なチェーンのいずれかが必要です。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'}, { ssl: { enabled: true, trustCerts: ['my-root-ca.crt.pem'] } } );
トラストストア
以下のように、PKCS12
または PFX
形式でトラストストアを追加できます。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'}, { ssl: { enabled: true, cryptoStore: { path: 'my-truststore.p12', passphrase: 'secret' } } } );
クライアント証明書認証
Data Grid Server 設定でクライアント証明書認証を有効にする場合は、以下の例のようにキーストアを追加します。
クライアント証明書認証を使用する場合は、Hot Rod JS クライアントを EXTERNAL
認証メカニズムで設定する必要があります。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'}, { ssl: { enabled: true, trustCerts: ['my-root-ca.crt.pem'], clientAuth: { key: 'privkey.pem', passphrase: 'secret', cert:ssl 'cert.pem' } } } );
Server Name Indication (SNI)
SNI を使用して Hot Rod JS クライアントが Data Grid Server ホスト名を要求できるようにするには、Data Grid Server 設定のホスト名と一致する sniHostName
パラメーターの値を設定します。
The sniHostName
パラメーターのデフォルトは localhost
です。
var connected = infinispan.client({port: 11222, host: '127.0.0.1'}, { ssl: { enabled: true, trustCerts: ['my-root-ca.crt.pem'] sniHostName: 'example.com' } } );
Hot Rod JS クライアントは、デフォルトで自己署名証明書を許可しません。これにより、パブリック認証局 (CA) キーが利用できない開発環境またはテスト環境で問題が発生する可能性があります。
Java keytool で署名済み証明書を作成するなど、Data Grid コードチュートリアル を参照してください。