इंटरनोड (या नोड-टू-नोड) एन्क्रिप्शन, क्लस्टर में नोड के बीच आने-जाने वाले डेटा की सुरक्षा करता है TLS का उपयोग करके. इस पेज पर, Edge for Private Cloud पर टीएलएस का इस्तेमाल करके, Cassandra इंटरनोड एन्क्रिप्शन को चालू करने का तरीका बताया गया है. इन चरणों को पूरा करने के लिए, आपको अपने कैसींड्रा के विवरण से परिचित होना चाहिए घंटी बजाओ.
कैसेंड्रा इंटरनोड एन्क्रिप्शन चालू करें
कैसंड्रा इंटरनोड एन्क्रिप्शन चालू करने के लिए, यह तरीका अपनाएं:
सर्वर सर्टिफ़िकेट जनरेट करने के लिए, अनुबंध में दिया गया तरीका अपनाएं. इससे, खुद से हस्ताक्षर की गई कुंजी और सर्टिफ़िकेट बनाया जा सकता है.
अगर FIPS की सुविधा वाले ऑपरेटिंग सिस्टम पर Edge for Private Cloud का इस्तेमाल किया जा रहा है, तो BouncyCastle FIPS Keystore (BCFKS) का इस्तेमाल करें. BCFKS टाइप के पासकोड के साथ काम करने के बारे में सलाह पाने के लिए, नीचे दिया गया अनुबंध देखें.
इस तरीके का इस्तेमाल करके, यह माना जा सकता है कि आपने
keystore.node0
औरtruststore.node0
के साथ-साथ कीस्टोर और ट्रस्टस्टोर पासवर्ड बनाए हैं. इस बारे में अपेंडिक्स में बताया गया है. अगले चरणों पर जाने से पहले, हर नोड पर शुरुआती चरणों के तौर पर पासकोड और ट्रस्टस्टोर बनाया जाना चाहिए./opt/apigee/customer/application/cassandra.properties
फ़ाइल में ये प्रॉपर्टी जोड़ें. अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं.conf_cassandra_server_encryption_internode_encryption=all conf_cassandra_server_encryption_keystore=/opt/apigee/data/apigee-cassandra/keystore.node0 conf_cassandra_server_encryption_keystore_password=keypass conf_cassandra_server_encryption_truststore=/opt/apigee/data/apigee-cassandra/truststore.node0 conf_cassandra_server_encryption_truststore_password=trustpass # Optionally set the following to enable 2-way TLS or mutual TLS conf_cassandra_server_encryption_require_client_auth=true # Set the following in FIPS enabled operating systems # With FIPS, older TLS protocols are disabled, so set to TLSv1.2 conf_cassandra_server_encryption_protocol=TLSv1.2 # With FIPS, use BCFKS keystores conf_cassandra_server_encryption_store_type=BCFKS
- पक्का करें कि
cassandra.properties
फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास है: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 एन्क्रिप्शन सेवा शुरू हुई है या नहीं, सिस्टम लॉग में यह मैसेज देखें:
Internode messaging enabled TLS protocols Internode messaging enabled cipher suites
सर्टिफ़िकेट रोटेशन करना
सर्टिफ़िकेट को बदलने के लिए, यह तरीका अपनाएं:
- जनरेट किए गए हर यूनीक पासकोड जोड़े (अनुबंध देखें) के लिए सर्टिफ़िकेट जोड़ें. ऐसा करें, ताकि पुराने और नए सर्टिफ़िकेट, दोनों एक ही ट्रस्टस्टोर में मौजूद हों:
keytool -import -v -trustcacerts -alias NEW_ALIAS \ -file CERT -keystore EXISTING_TRUSTSTORE
यहां
NEW_ALIAS
, एंट्री की पहचान करने वाली यूनीक स्ट्रिंग है,CERT
जोड़ी जाने वाली सर्टिफ़िकेट फ़ाइल का नाम है, औरEXISTING_TRUSTSTORE
Cassandra नोड पर मौजूद ट्रस्टस्टोर का नाम है. - क्लस्टर के सभी कैसंड्रा नोड में ट्रस्टस्टोर को डिस्ट्रिब्यूट करने के लिए, एसपीपी जैसी कॉपी यूटिलिटी का इस्तेमाल करें. हर नोड में मौजूदा ट्रस्टस्टोर की जगह इसका इस्तेमाल किया जा सकता है.
- नया ट्रस्टस्टोर लोड करने के लिए, क्लस्टर को रोलिंग रीस्टार्ट करें. साथ ही, नई कुंजियों के लागू होने से पहले उन पर भरोसा बनाएं:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra restart
- क्लस्टर में हर Cassandra नोड पर, cassandra.property फ़ाइल में नए कीस्टोर वैल्यू पर नीचे दिखाई गई प्रॉपर्टी अपडेट करें:
conf_cassandra_server_encryption_keystore=NEW_KEYSTORE_PATH conf_cassandra_server_encryption_keystore_password=NEW_KEYSTORE_PASSWORD
जहां
NEW_KEYSTORE_PATH
उस डायरेक्ट्री का पाथ है जहां कीस्टोर फ़ाइल मौजूद है औरNEW_KEYSTORE_PASSWORD
, कीस्टोर पासवर्ड सेट है. इसे सर्टिफ़िकेट बनाते समय सेट किया गया है, जैसा कि अपेंडिक्स में बताया गया है. - Cassandra सेवा को बंद करने के लिए:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra stop
- कैसेंड्रा सेवा को फिर से शुरू करें:
/opt/apigee/apigee-service/bin/apigee-service \ apigee-cassandra start
- सभी नोड के बीच संचार सफलतापूर्वक स्थापित हो जाने पर, अगले कैसंड्रा नोड पर जाएं. ध्यान दें: सभी नोड के बीच कम्यूनिकेशन सेट अप होने के बाद ही अगले नोड पर जाएं.
अन्य जानकारी
यहां दिए गए उदाहरण में, इंटरनोड एन्क्रिप्शन के चरणों को पूरा करने के लिए, ज़रूरी सर्वर सर्टिफ़िकेट तैयार करने का तरीका बताया गया है. उदाहरण में दिखाए गए निर्देशों में, इन पैरामीटर का इस्तेमाल किया गया है:
पैरामीटर | ब्यौरा |
---|---|
node0 |
नोड की पहचान करने वाली कोई भी खास स्ट्रिंग. |
keystore.node0 |
कीस्टोर का नाम. इन कमांड के हिसाब से, यह फ़ाइल मौजूदा डायरेक्ट्री में मौजूद है. |
keypass |
कीपास, कीस्टोर और की, दोनों के लिए एक ही होना चाहिए. |
dname |
node0 के आईपी पते की पहचान 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"
अहम जानकारी: पक्का करें कि पासकोड और पासकोस्ट पासवर्ड एक ही हो.
- सर्टिफ़िकेट को अलग फ़ाइल में एक्सपोर्ट करने के लिए:
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
ऊपर दिए गए कमांड में, आपको पासवर्ड सेट करने के लिए कहा गया है. यह Truststore का पासवर्ड है और यह कर सकता है: आपके द्वारा पहले सेट किए गए कीस्टोर पासवर्ड से अलग होगा. अगर सर्टिफ़िकेट पर भरोसा करने के लिए कहा जाए, तो
yes
डालें. - बिना किसी पासकोड वाले सर्टिफ़िकेट की PEM फ़ाइल जनरेट करने के लिए, openssl का इस्तेमाल करें. ध्यान दें कि
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
का इस्तेमाल करें:$ keytool -list -keystore keystore.node0 $ keytool -list -keystore truststore.node0
एफ़आईपीएस की सुविधा वाले ऑपरेटिंग सिस्टम के लिए, बीसीएफ़केएस कीस्टोर के साथ काम करना
एफ़आईपीएस की सुविधा वाले ऑपरेटिंग सिस्टम के साथ काम करते समय, BoseCastle FIPS Keystores (BCFKS) का इस्तेमाल करें. नीचे दिए गए सेक्शन में बीसीएफ़केएस टाइप के कीस्टोर के साथ काम करने का तरीका बताया गया है. कीस्टोर के साथ काम करने के अन्य चरण (जैसे कि फ़ाइल का मालिकाना हक, फ़ाइल की जगह वगैरह) इस अपेंडिक्स में दी गई जानकारी से मेल नहीं खाती.
BCFKS टाइप का कीस्टोर जनरेट करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें:
keytool -genkeypair -keyalg RSA -alias node0 -validity 365 -keystore keystore.node0 \ -storepass keypass -keypass keypass -v \ -dname "EMAILADDRESS=youremail@domain.com, CN=yourcn, OU=yourou, O=youro, L=yourl, C=yourc" \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
ध्यान दें: कीस्टोर का पासवर्ड और पासकोड एक ही होना चाहिए.
ध्यान दें: Apigee से भेजे गए bc-fips
jar का इस्तेमाल किया जा सकता है या उसी jar को BouncyCastle के रिपॉज़िटरी से डाउनलोड किया जा सकता है. BCFKS कीस्टोर जनरेट करने के तरीके के बारे में ज़्यादा जानकारी के लिए, BouncyCastle का दस्तावेज़ देखें.
सर्टिफ़िकेट को अलग फ़ाइल में एक्सपोर्ट करने के लिए:
keytool -export -v -alias node0 -file node0.cer -keystore keystore.node0 -storepass keypass \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS
जनरेट किए गए सर्टिफ़िकेट node0.cer
को नोड के ट्रस्टस्टोर में इंपोर्ट करें:
keytool -import -v -alias node0 -file node0.cer -keystore truststore.node0 -storepass storepass \ -storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider -providername BCFIPS