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

इस लेख में, Edge for Private Cloud के उन ग्राहकों के लिए जानकारी और निर्देश दिए गए हैं जो FIPS की सुविधा वाले RHEL 8.X पर काम करने वाले वर्शन 4.53.00 या इसके बाद के वर्शन का इस्तेमाल कर रहे हैं.

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

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

fips-mode-setup --check
FIPS mode is enabled.

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

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

आपको Red Hat की रिपॉज़िटरी से Java डाउनलोड करना चाहिए. इससे यह पक्का किया जा सकता है कि 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  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 के वर्शन में, इस jar का वर्शन बदल सकता है. Apigee के शिप किए गए किसी भी वर्शन का इस्तेमाल किया जाना चाहिए. Bouncycastle के रिपॉज़िटरी से भी jar डाउनलोड किया जा सकता है. 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

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