SSL証明書の設定
開発および実稼働環境用に証明書署名要求の生成、署名、キーストアとトラストストアの作成を行うための一般的な手順。
クライアントとノード間の暗号化とノード間の暗号化にはSSL証明書を使用します。DataStaxでは、一般的なCAによって署名された証明書をノードごとに使用したSSL、またはBring Your Own(BYO)ルート認証局を使用したSSLをサポートしています。
注: DataStaxでは、SSL証明書管理タスクを軽減するために、CAによって署名された証明書を使用することを推奨しています。ただし、DSEで自己署名証明書を使用することも可能です。
以下の手順では、OpenSSLおよびJava keytoolを使用してSSL証明書を生成し、配布するための一般的なプロセスを順を追って説明します。実稼働環境でSSLを安全に実装するため、中間証明書チェーンを使用します。OpenSSLルートCAの手順を参照してください。
始める前に
完全に暗号化され、ネットワークから恒久的に分離されている専用のCAサーバーで、以下の手順を実行します。BYO CAを使用する場合、必ずセキュアな環境で証明書の署名用にルート・ペアを作成してください。ルートCAファイルにアクセスできれば誰でもルート・ペアを使用して証明書に署名できることになります。
注: DataStaxでは、DSE環境の外にあるコンピューターを使用してSSL証明書を生成し管理することを推奨しています。
SSL証明書を生成するために使用するコモン・ネーム(CN)は、DNSの解決可能なホスト名と一致している必要があります。CNとノード・ホスト名が一致していない場合、例外が生じ、接続は拒否されます。手順
サードパーティの署名済み証明書を使用する場合、または既存のrootCAを使用してノードを追加する場合は、ステップ3に進んでください。
-
BYOルートCAのみ:ノード証明書に署名するために、独自のルートCAを作成します。
-
単一のトラストストアを作成します。
keytool -keystore dse-truststore.jks \ -alias rootCa -importcert -file '../ca/rootCa.crt' \ -keypass myPass \ -storepass truststorePass \ -noprompt
ヒント: 一般的な認証局を使用する場合でも、DataStaxでは署名CA証明書(またはお使いのCAの指示に従っている証明書チェーン)を使用してトラストストアを作成することを推奨しています。最も一般的なCA証明書は、DSE Java実装から既に使用できます。トラストストアには、単一のエントリーが含まれます。以下のコマンドを使用して、トラストストアを確認します。keytool -list \ -keystore dse-truststore.jks \ -storepass truststorePass
サードパーティのCAを使用する場合、またはSSLが有効な既存のDSE環境にノードを追加する場合は、次のステップから開始します。
-
クラスター内のノードごとに、ノードのFQDNを使用してキーストアとキー・ペア、および証明書署名要求を作成します。
-
各ノードの証明書署名要求に署名します。
-
BYOルートCAの場合:ステップ1で作成したルートCAを使用して、各ノードの証明書に署名します。
openssl x509 -req -CA '../ca/rootCa.crt' \ -CAkey '../ca/rootCa.key' \ -in node0.csr \ -out node0.crt_signed \ -days 365 \ -CAcreateserial \ -passin pass:myPass
署名済み証明書ファイルが作成されます。適切に署名されていることを確認します。openssl verify -CAfile '../ca/rootCa.crt' node0.crt_signed
node0.crt_signed: OK
- 署名を得るため、証明書署名要求を一般的なCAに送信します。
-
-
クラスター内のノードごとに、署名済み証明書をキーストアにインポートします。
-
トラストストアとキーストアをDSEノードにアクセスできるコンピューターに移動し、各ノードに配布します。