節點間 (或節點對節點) 加密功能可確保資料在叢集中的節點之間傳輸資料安全無虞 也就是使用 TLS 加密本頁面說明如何在 Edge 上使用 TLS 啟用 Cassandra 節點間加密, 私有雲。如要執行這些步驟,您必須熟悉 Cassandra 的詳細資料 鈴聲。
啟用 Cassandra 節點間加密
如要啟用 Cassandra 節點間加密,請按照下列步驟操作:
- 按照附錄中的步驟產生伺服器憑證 建立自行簽署的金鑰 和憑證 - 下列步驟假設您已建立 - keystore.node0和- truststore.node0, 以及 KeyStore 和信任儲存庫密碼,詳情請參閱附錄。 在繼續操作之前,您應在每個節點上以初步步驟建立 KeyStore 和信任儲存庫 說明後續步驟
- 在 /opt/apigee/customer/application/cassandra.properties中加入下列屬性 檔案。如果檔案不存在,請建立一個。conf_cassandra_internode_encryption=all conf_cassandra_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0 conf_cassandra_keystore_password=keypass conf_cassandra_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0 conf_cassandra_truststore_password=trustpass # Optionally set the following to enable 2-way TLS or mutual TLS # conf_cassandra_require_client_auth=true 
- 確認 API 使用者擁有 cassandra.properties檔案:chown apigee:apigee \ /opt/apigee/customer/application/cassandra.properties 
在每個 Cassandra 節點上執行下列步驟 (一次執行一個步驟),讓變更生效 而不會對使用者造成任何停機時間:
- 停止 Cassandra 服務:
  /opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop 
- 重新啟動 Cassandra 服務:
  /opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start 
- 如要判斷 TLS 加密服務是否已啟動,請在系統記錄中查看以下訊息:
  Starting Encrypted Messaging Service on TLS port 
執行憑證輪替
如要輪替憑證,請按照下列步驟操作:
- 為每個產生的不重複金鑰組新增憑證 (請參閱附錄)
  現有 Cassandra
節點的信任存放區,以使舊憑證和新憑證均位於相同的
信任儲存庫:
  keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE 其中 NEW_ALIAS是用來識別項目的不重複字串,CERT則是 憑證名稱 要新增的檔案,以及EXISTING_TRUSTSTORE是 Cassandra 節點上現有信任存放區的名稱。
- 使用複製公用程式 (例如 scp),將信任儲存庫發布至叢集中的所有 Cassandra 節點 取代每個節點使用的現有信任存放區
- 執行叢集滾動式重新啟動,載入新的信任存放區並建立
  並安裝新的金鑰:
  /opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart 
- 在叢集中的每個 Cassandra 節點上,將下方顯示的屬性更新為新的 KeyStore
      位於 cassandra.properties 檔案中:
  conf_cassandra_keystore=NEW_KEYSTORE_PATH conf_cassandra_keystore_password=NEW_KEYSTORE_PASSOWRD where NEW_KEYSTORE_PATHis the path to the directory where the keystore file is located andNEW_KEYSTORE_PASSWORDis the keystore password set when the certificates were created, as explained in the Appendix.
- Stop the Cassandra service:
  /opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop 
- 重新啟動 Cassandra 服務:
  /opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start 
- 成功在所有節點之間建立通訊後,請前往 Cassandra 節點注意:只有在通訊成功時,才能繼續前往下一個節點 各個節點間建立的關係
附錄
以下範例說明如何準備伺服器憑證以執行 節點間加密步驟範例中顯示的指令使用下列參數:
| 參數 | 說明 | 
|---|---|
| node0 | 用來識別節點的任何不重複字串。 | 
| keystore.node0 | KeyStore 名稱。這些指令會假設這個檔案位於目前的目錄中。 | 
| keypass | KeyStore 和金鑰的金鑰組必須相同。 | 
| dname | 將 node0的 IP 位址識別為10.128.0.39。 | 
| -validity | 針對這個標記設定的值,產生的金鑰組在 10 年內有效。 | 
- 前往以下目錄:
  cd /opt/apigee/data/apigee-cassandra 
- 執行下列指令,在目前的目錄中產生名為 keystore.node0的檔案:keytool -genkey -keyalg RSA -alias node0 -validity 3650 \ -keystore keystore.node0 -storepass keypass \ -keypass keypass -dname "CN=10.128.0.39, OU=None, \ O=None, L=None, C=None" 重要事項:請確認金鑰密碼與 KeyStore 密碼相同。 
- 將憑證匯出成獨立檔案:
  keytool -export -alias node0 -file node0.cer \ -keystore keystore.node0 
- 確保只有 Apigee 使用者能讀取這個檔案,且其他使用者無法讀取:
  $ chown apigee:apigee \ /opt/apigee/data/apigee-cassandra/keystore.node0 $ chmod 400 /opt/apigee/data/apigee-cassandra/keystore.node0 
- 將產生的憑證 node0.cer匯入節點的信任存放區:keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node0 上述指令會要求您設定密碼。這是信任儲存庫密碼,且 不同於您先前設定的 KeyStore 密碼。如果系統提示您信任憑證, 輸入 yes。
- 使用 opensl 產生不含金鑰的憑證 PEM 檔案。請注意,cqlsh「無法」與系統產生的憑證搭配使用。$ keytool -importkeystore -srckeystore keystore.node0 \ -destkeystore node0.p12 -deststoretype PKCS12 -srcstorepass \ keypass -deststorepass keypass $ openssl pkcs12 -in node0.p12 -nokeys -out node0.cer.pem \ -passin pass:keypass $ openssl pkcs12 -in node0.p12 -nodes -nocerts -out node0.key.pem -passin pass:keypass 
- 如需節點對節點加密,請將 node0.cer檔案複製到每個節點並匯入 每個節點的信任存放區keytool -import -v -trustcacerts -alias node0 \ -file node0.cer -keystore truststore.node1 
- 使用 keytool -list檢查 KeyStore 和信任儲存庫檔案中的憑證:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0