Edge for Private Cloud على RHEL 8.X المزوَّد بنظام FIPS

تحتوي هذه المقالة على تفاصيل وتعليمات مخصّصة لعملاء Edge for Private Cloud الذين يستخدمون الإصدار 4.53.00 أو الإصدارات الأحدث، والذين يعملون على نظام التشغيل RHEL 8.X المتوافق مع معيار FIPS.

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

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

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

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

متطلبات Java

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

تثبيت

في مرجع ملف إعدادات التثبيت الصامت، اضبط 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 أو المقالات ذات الصلة بإعداد طبقة النقل الآمنة. يسرد الملحق بعض الأوامر المفيدة التي يمكن استخدامها لإنشاء ملفّات تخزين المفاتيح هذه.

ملف تخزين مفاتيح 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  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 قد يتغيّر إصدار حزمة jar هذه في الإصدارات المستقبلية من OPDK. يجب استخدام أي إصدار تطلقه شركة Apigee. يمكنك أيضًا تنزيل حزمة jar من مستودعات 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، يمكنك الرجوع إلى مقالة تحويل الشهادات إلى تنسيق متوافق.