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

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

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

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

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

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

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

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

इंस्टॉल करना

एज कॉन्फ़िगरेशन फ़ाइल रेफ़रंस में, हर नोड पर FIPS_OS=true सेट करें. Edge for Private Cloud को इंस्टॉल करने के लिए, सामान्य तरीके अपनाएं.

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

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

TLS के सामान्य ऑपरेशन

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

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

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

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

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

  1. BCFKS फ़ॉर्मैट में cacerts फ़ाइल बनाएं. इसमें वे सभी सीए सर्टिफ़िकेट शामिल करें जिन पर आपको भरोसा करना है. पक्का करें कि पासवर्ड और पासकी का पासवर्ड एक ही हो. ज़्यादा जानकारी के लिए, अनुबंध देखें.
  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 स्टोर

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 फ़ॉर्मैट में बदलना है, तो सर्टिफ़िकेट को काम करने वाले फ़ॉर्मैट में बदलना लेख पढ़ें.