FIPS की सुविधा वाले RHEL 8.X या Rocky 8.X पर Edge for Private Cloud

इस सेक्शन में, RHEL 8 पर FIPS मोड चालू करने के बारे में जानकारी दी गई है. इससे यह पक्का किया जा सकेगा कि Private Cloud के Edge के वर्शन 4.53.00 या इससे ऊपर के वर्शन के लिए, सुरक्षित और नियमों के मुताबिक एनवायरमेंट उपलब्ध कराया जा सके.

पहले से इंस्टॉल करना

पक्का करें कि आपके नोड पर FIPS चालू हो. साथ ही, Edge Installation Overview दस्तावेज़ में बताई गई, कॉन्फ़िगरेशन की अन्य ज़रूरी शर्तें पूरी की गई हों.

fips-mode-setup --check  
FIPS mode is enabled.  # Command output

अगर FIPS मोड अभी बंद है, तो इसे चालू करने के निर्देशों के लिए, Red Hat का आधिकारिक दस्तावेज़ देखें: Switching RHEL 8 to FIPS mode.

Java के लिए ज़रूरी शर्तें

आपको Red Hat की रिपॉज़िटरी से Java डाउनलोड करना चाहिए, ताकि यह पक्का किया जा सके कि इसके सुरक्षा मॉड्यूल, FIPS के मुताबिक हैं. इससे Java की सुरक्षा के ज़रिए, FIPS से जुड़ी पाबंदियां लागू की जा सकती हैं.

इंस्टॉल करना

Edge Configuration File Reference में, हर नोड पर FIPS_OS=true सेट करें. Edge for Private Cloud को सामान्य तरीके से इंस्टॉल किया जा सकता है.

निजी पासकोड का फ़ॉर्मैट

Apigee कीस्टोर में निजी कुंजियां अपलोड करने के लिए, सिर्फ़ PKCS12/PFX फ़ॉर्मैट का इस्तेमाल किया जा सकता है. इनका इस्तेमाल आपकी एपीआई प्रॉक्सी या वर्चुअल होस्ट में किया जाता है. फ़ाइल बनाने के बारे में दिशा-निर्देश पाने के लिए, सर्टिफ़िकेट को इस्तेमाल किए जा सकने वाले फ़ॉर्मैट में बदलना लेख पढ़ें.

TLS से जुड़ी सामान्य कार्रवाइयां

FIPS की सुविधा वाले RHEL 8.X या Rocky 8.X पर Edge for Private Cloud 4.53.00 या इसके बाद के वर्शन का इस्तेमाल करते समय, Edge के टीएलएस से जुड़े ज़्यादातर कॉम्पोनेंट कॉन्फ़िगरेशन, PKCS12 या BCFKS फ़ॉर्मैट वाले कीस्टोर के ज़रिए करने होंगे.

ज़्यादा जानकारी के लिए, टीएलएस कॉन्फ़िगरेशन से जुड़े लेखों में, FIPS से जुड़े दस्तावेज़ या नोट देखें. अपेंडिक्स में, कुछ ऐसी मददगार कमांड दी गई हैं जिनका इस्तेमाल इन कीस्टोर को जनरेट करने के लिए किया जा सकता है.

डिफ़ॉल्ट Java कीस्टोर/ट्रस्टस्टोर

FIPS की सुविधा वाले RHEL 8.X या Rocky 8.X पर Edge for Private Cloud 4.53.00 या इसके बाद के वर्शन का इस्तेमाल करने पर, आपका मैसेज प्रोसेसर, मैनेजमेंट सर्वर, और अन्य edge-* कॉम्पोनेंट, प्रॉडक्ट के साथ उपलब्ध कराए गए डिफ़ॉल्ट ट्रस्टस्टोर और कीस्टोर पर निर्भर होते हैं.

इनमें ऐसे सीए सर्टिफ़िकेट होते हैं जिन पर आपका ऐप्लिकेशन डिफ़ॉल्ट रूप से भरोसा करता है. अगर आपको सीए सर्टिफ़िकेट वाला अपना स्टोर इस्तेमाल करना है, तो यहां दिया गया तरीका अपनाएं:

  1. BCFKS फ़ॉर्मैट वाली cacerts फ़ाइल बनाएं. इसमें वे सभी CA सर्टिफ़िकेट शामिल करें जिन पर आपको भरोसा है. पक्का करें कि कीस्टोर का पासवर्ड और कुंजी का पासवर्ड एक ही हो. ज़्यादा जानकारी के लिए, अपेंडिक्स देखें.
  2. फ़ाइल को सही पाथ में रखें और पक्का करें कि Apigee उपयोगकर्ता इसे पढ़ सके:
    cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks
    chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
  3. जिस कॉम्पोनेंट पर काम किया जा रहा है उसके हिसाब से, सही कॉन्फ़िगरेशन फ़ाइल बनाएं या उसमें बदलाव करें:
    कॉम्पोनेंट फ़ाइल
    edge-management-server $/opt/apigee/customer/application/management-server.properties
    edge-message-processor $/opt/apigee/customer/application/message-processor.properties
    edge-router $/opt/apigee/customer/application/router.properties
    edge-postgres-server $/opt/apigee/customer/application/postgres-server.properties
    edge-qpid-server $/opt/apigee/customer/application/qpid-server.properties
  4. फ़ाइल में ये लाइनें जोड़ें:
    conf_system_javax.net.ssl.trustStore=<PATH to bcfks cacerts>
    conf_system_javax.net.ssl.trustStorePassword=changeme
    conf_system_javax.net.ssl.keyStore=<PATH to bcfks cacerts>
    conf_system_javax.net.ssl.keyStoreType=BCFKS
    conf_system_javax.net.ssl.keyStorePassword=changeme
  5. पक्का करें कि कॉन्फ़िगरेशन फ़ाइल का मालिकाना हक apigee उपयोगकर्ता के पास हो और वह उसे पढ़ सके:
    chown apigee:apigee $opt/apigee/customer/application/<file>.properties
  6. कॉम्पोनेंट को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service <component> restart

अन्य जानकारी

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

Keytool कमांड, आम तौर पर इस्तेमाल की जाने वाली कमांड के जैसी ही होती हैं. हालांकि, keytool कमांड में ये विकल्प शामिल होने चाहिए:

--storetype BCFKS -providerpath /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar
-providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider 
-providername BCFIPS

Keytool के आर्ग्युमेंट

Keytool तर्क ब्यौरा
-storetype स्टोर टाइप को BCFKS पर सेट करें.
-providerpath bc-fips-XXXX.jar का पाथ तय करें. OPDK की आने वाली रिलीज़ में, यह वर्शन बदल सकता है. Apigee से शिप किए गए वर्शन का इस्तेमाल करें या इसे Bouncycastle की रिपॉज़िटरी से डाउनलोड करें. OPDK 4.53 के लिए, पाथ /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar होना चाहिए.
-providerclass इसे org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider पर सेट करें.
-providername इसे BCFIPS पर सेट करें.

BCFKS फ़ॉर्मैट वाले कीस्टोर से या उसमें सर्टिफ़िकेट और/या कुंजियां इंपोर्ट या एक्सपोर्ट करने के लिए, keytool के मिलते-जुलते कमांड इस्तेमाल किए जा सकते हैं. BCFKS के साथ काम करने के तरीके के बारे में ज़्यादा जानने के लिए, BouncyCastle का दस्तावेज़ देखें.

PKCS12 Store

PKCS12 स्टोर जनरेट करने के लिए, openssl निर्देशों का इस्तेमाल किया जा सकता है:

# Generate a self-signed private key and certificate
openssl req -x509 -newkey rsa:2048 -keyout private.key -out certificate.pem -sha256 -days 36500 -nodes -subj "/C=yourc/ST=yourst/L=yourl/O=youro/OU=yourou/CN=cn/emailAddress=email"
# Package the above generated key and cert into a PKCS12
openssl pkcs12 -export -clcerts -in certificate.pem -inkey private.key -out keystore.pfx -name myalias

अगर आपके पास अपनी निजी पासकोड और सर्टिफ़िकेट है और आपको उन्हें PKCS12 फ़ॉर्मैट में बदलना है, तो सर्टिफ़िकेट को इस्तेमाल किए जा सकने वाले फ़ॉर्मैट में बदलना लेख पढ़ें.