SSL暗号化用のサーバー証明書の準備

すべてのノードに、関連するSSL証明書が必要です。クライアントとノード間の暗号化またはノード間の暗号化用のSSL証明書を生成する手順

クライアントとノード間の暗号化またはノード間の暗号化用のSSL証明書を生成するには、以下の手順に従います。1種類の暗号化に対して証明書を生成した場合、もう一方の種類に対して証明書を再度生成する必要はありません。両方のタイプの暗号化に同じ証明書が使用されます。

SSLクライアントとノード間の暗号化を使用する場合は、証明書のコモンネーム(CN)が、コマンドを発行するノードのホスト名またはIPアドレスである必要があります。

すべてのノードに、関連するすべてのSSL証明書が必要です。キーストアには秘密鍵が含まれています。トラストストアには各ノードのSSL証明書が含まれているため、信頼され、認識されている公的認証局による署名は必要ありません。

手順

サーバーの証明書をプリペアするには:

  1. クラスターのノード用にプライベートと公開鍵・ペアを生成し、キーのパスワードはキーストアのパスワードと同じにしておきます。
    keytool -genkey -alias dse_node0 -keyalg RSA -keystore .keystore
    What is your first and last name?というプロンプトが表示されたら、キーを生成するCassandraノードのホスト名または完全修飾ドメイン名(FQDN)を入力します。ここに入力した氏名は、クライアントがサーバー認証に使用する証明書CN(コモンネーム)を設定するために使用されます。
  2. ノードごとに異なる別名を使用して、各ノードで前のステップを繰り返します。
  3. 証明書の公開部分を個別のファイルにエクスポートし、これらの証明書をその他すべてのノードにコピーします。
    keytool -export -alias dse_node0 -file dse_node0.cer -keystore .keystore
  4. 各ノードの証明書を各ノードのトラストストアに追加して、ノードが他のノードの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
  5. .keystoreがシステムのユーザーではなく、DataStax Enterpriseデーモンによってのみ読み取り可能になるようにします。