Edge برای Private Cloud در RHEL 8.X دارای FIPS فعال است

این بخش راهنمایی هایی را در مورد فعال کردن حالت FIPS در RHEL 8 ارائه می دهد و از یک محیط امن و سازگار برای Edge برای نسخه های ابر خصوصی نسخه 4.53.00 یا بالاتر اطمینان می دهد.

از پیش نصب کنید

مطمئن شوید که FIPS در گره های شما به همراه سایر پیش نیازهای پیکربندی استاندارد فهرست شده در مستندات Edge Installation Overview فعال باشد.

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

اگر حالت FIPS در حال حاضر غیرفعال است، برای دستورالعمل‌های نحوه فعال کردن آن به مستندات رسمی Red Hat مراجعه کنید: تغییر RHEL 8 به حالت FIPS .

الزامات جاوا

جاوای مورد استفاده شما باید از مخزن Red Hat دانلود شود تا اطمینان حاصل شود که ماژول های امنیتی آن با FIPS سازگار هستند و محدودیت های مخصوص FIPS را از طریق امنیت جاوا فعال می کند.

نصب و راه اندازی

در مرجع فایل پیکربندی لبه ، FIPS_OS=true در هر گره تنظیم کنید. می توانید طبق معمول مراحل نصب کلی Edge for Private Cloud را دنبال کنید.

فرمت کلید خصوصی

فقط از فرمت PKCS12/PFX می توان برای آپلود کلیدهای خصوصی در فروشگاه های کلید Apigee برای استفاده در پراکسی های API یا میزبان های مجازی استفاده کرد. برای راهنمایی در مورد ایجاد فایل، به تبدیل گواهینامه ها به فرمت پشتیبانی شده مراجعه کنید.

عملیات عمومی TLS

هنگام استفاده از Edge برای Private Cloud 4.53.00 یا جدیدتر در RHEL 8.X دارای FIPS فعال، بیشتر پیکربندی‌های اجزای Edge مربوط به TLS باید از طریق ذخیره‌سازی کلیدهای فرمت PKCS12 یا BCFKS انجام شود.

برای دریافت جزئیات بیشتر، به اسناد یا یادداشت‌های خاص FIPS در مقالات مربوطه برای پیکربندی TLS مراجعه کنید. ضمیمه برخی از دستورات مفید را فهرست می کند که می توان از آنها برای تولید این کلیدهای ذخیره استفاده کرد.

پیش فرض جاوا کلید ذخیره/تراست استور

وقتی Edge for Private Cloud 4.53.00 یا جدیدتر در RHEL 8.X دارای FIPS استفاده می‌شود، پردازشگر پیام، سرور مدیریت و سایر اجزای edge-* به یک ذخیره‌سازی اعتماد پیش‌فرض و فروشگاه کلید ارائه شده با محصول متکی هستند.

اینها حاوی گواهینامه های CA هستند که برنامه شما به طور پیش فرض به آنها اعتماد دارد. اگر می خواهید از فروشگاه خود حاوی گواهینامه های CA استفاده کنید، مراحل زیر را دنبال کنید:

  1. یک فایل cacerts با فرمت BCFKS ایجاد کنید که حاوی تمام گواهینامه های CA است که می خواهید به آنها اعتماد کنید. اطمینان حاصل کنید که رمز ورود کلید و رمز عبور کلید یکسان هستند. برای جزئیات بیشتر به پیوست مراجعه کنید.
  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
    لبه روتر $/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 keystore

دستور زیر یک فروشگاه کلید 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 Argument توضیحات
-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 استفاده کرد. برای اطلاعات بیشتر در مورد نحوه کار با 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 تبدیل کنید، به تبدیل گواهینامه ها به فرمت پشتیبانی شده مراجعه کنید.