‫Edge for Private Cloud على RHEL 8.X أو Rocky 8.X المتوافق مع معيار FIPS

يقدّم هذا القسم إرشادات حول تفعيل وضع FIPS على RHEL 8، ما يضمن توفير بيئة آمنة ومتوافقة مع الإصدار 4.53.00 أو الإصدارات الأحدث من Edge for Private Cloud.

التثبيت المُسبَق

تأكَّد من تفعيل FIPS على العُقد بالإضافة إلى متطلبات الإعدادات العادية الأخرى المُدرَجة في مستند نظرة عامة على عملية تثبيت Edge.

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

إذا كان وضع FIPS غير مفعّل حاليًا، يُرجى الرجوع إلى مستندات Red Hat الرسمية للحصول على تعليمات حول كيفية تفعيله: التبديل إلى وضع FIPS في RHEL 8.

متطلبات Java

يجب تنزيل Java الذي تستخدمه من مستودع Red Hat لضمان توافق وحدات الأمان مع معيار FIPS، ما يتيح فرض قيود خاصة بمعيار FIPS من خلال أمان Java.

تثبيت

في مرجع ملف إعداد Edge، اضبط FIPS_OS=true على كل عقدة. يمكنك اتّباع خطوات التثبيت العامة لبرنامج Edge for Private Cloud كالمعتاد.

تنسيق المفتاح الخاص

يمكن استخدام تنسيق PKCS12/PFX فقط لتحميل المفاتيح الخاصة إلى مخازن مفاتيح Apigee لاستخدامها في خوادم وكيل واجهة برمجة التطبيقات أو المضيفات الافتراضية. للحصول على إرشادات حول إنشاء الملف، يُرجى الرجوع إلى تحويل الشهادات إلى تنسيق متوافق.

عمليات TLS العامة

عند استخدام Edge for Private Cloud 4.53.00 أو إصدار أحدث على RHEL 8.X أو Rocky 8.X المتوافقَين مع FIPS، يجب إجراء معظم إعدادات المكوّنات ذات الصلة ببروتوكول أمان طبقة النقل (TLS) في Edge من خلال ملفات تخزين المفاتيح بتنسيق PKCS12 أو BCFKS.

للحصول على مزيد من التفاصيل، يُرجى الرجوع إلى المستندات أو الملاحظات الخاصة بمعيار FIPS في المقالات ذات الصلة بإعدادات طبقة النقل الآمنة. يسرد الملحق بعض الأوامر المفيدة التي يمكن استخدامها لإنشاء ملفات تخزين المفاتيح هذه.

ملف تخزين المفاتيح/ملف تخزين الشهادات الموثوقة التلقائي في Java

عند استخدام Edge for Private Cloud 4.53.00 أو إصدار أحدث على RHEL 8.X أو Rocky 8.X المتوافقَين مع معيار FIPS، يعتمد معالج الرسائل وخادم الإدارة ومكوّنات edge-* الأخرى على ملف truststore وملف keystore تلقائيَّين يتم توفيرهما مع المنتج.

تحتوي هذه الملفات على شهادات مراجع التصديق التي يثق بها تطبيقك تلقائيًا. إذا كنت تريد استخدام متجرك الخاص الذي يحتوي على شهادات مرجع التصديق، اتّبِع الإجراء التالي:

  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.

يمكن استخدام أوامر keytool مشابهة لاستيراد الشهادات و/أو المفاتيح أو تصديرها من أو إلى ملف تخزين مفاتيح بتنسيق BCFKS. لمزيد من المعلومات حول كيفية استخدام 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، يُرجى الرجوع إلى تحويل الشهادات إلى تنسيق متوافق.