Edge for Private Cloud على RHEL 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 الرسمية للحصول على تعليمات حول كيفية تفعيله: تبديل RHEL 8 إلى وضع FIPS.

متطلبات 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 المتوافق مع FIPS، يجب إجراء معظم عمليات ضبط مكوّنات Edge ذات الصلة ببروتوكول TLS من خلال ملفّات تخزين المفاتيح بتنسيق PKCS12 أو BCFKS.

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

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

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

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

  1. أنشئ ملفًا بتنسيق cacerts BCFKS يحتوي على جميع شهادات موفّري خدمات إصدار الشهادات التي تريد الوثوق بها. تأكَّد من تطابق كلمة مرور ملف تخزين المفاتيح وكلمة مرور المفتاح. يُرجى الرجوع إلى الملحق للحصول على مزيد من التفاصيل.
  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

لإنشاء متجر 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، يُرجى الاطّلاع على مقالة تحويل الشهادات إلى تنسيق متوافق.