すべてのノードに、関連するSSL証明書が必要です。クライアントとノード間の暗号化またはノード間の暗号化用のSSL証明書を生成する手順
クライアントとノード間の暗号化またはノード間の暗号化用のSSL証明書を生成するには、以下の手順に従います。1種類の暗号化に対して証明書を生成した場合、もう一方の種類に対して証明書を再度生成する必要はありません。両方のタイプの暗号化に同じ証明書が使用されます。
SSLクライアントとノード間の暗号化を使用する場合は、証明書のコモンネーム(CN)が、コマンドを発行するノードのホスト名またはIPアドレスである必要があります。
すべてのノードに、関連するすべてのSSL証明書が必要です。キーストアには秘密鍵が含まれています。トラストストアには各ノードのSSL証明書が含まれているため、信頼され、認識されている公的認証局による署名は必要ありません。
手順
サーバーの証明書をプリペアするには:
-
クラスターのノード用にプライベートと公開鍵・ペアを生成し、キーのパスワードはキーストアのパスワードと同じにしておきます。
keytool -genkey -alias dse_node0 -keyalg RSA -keystore .keystore
What is your first and last name?
というプロンプトが表示されたら、キーを生成するCassandraノードのホスト名または完全修飾ドメイン名(FQDN)を入力します。ここに入力した氏名は、クライアントがサーバー認証に使用する証明書CN(コモンネーム)を設定するために使用されます。
-
ノードごとに異なる別名を使用して、各ノードで前のステップを繰り返します。
-
証明書の公開部分を個別のファイルにエクスポートし、これらの証明書をその他すべてのノードにコピーします。
keytool -export -alias dse_node0 -file dse_node0.cer -keystore .keystore
-
各ノードの証明書を各ノードのトラストストアに追加して、ノードが他のノードのIDを確認できるようにします。
新しく作成したトラストストアのパスワードの設定を求めるプロンプトが表示されます。
keytool -import -v -trustcacerts -alias dse_node0 -file dse_node0.cer -keystore .truststore
$ keytool -import -v -trustcacerts -alias dse_node1 -file dse_node1.cer -keystore .truststore
. . .
$ keytool -import -v -trustcacerts -alias dse_nodeN -file dse_nodeN.cer -keystore .truststore
-
.keystoreがシステムのユーザーではなく、DataStax Enterpriseデーモンによってのみ読み取り可能になるようにします。