‫Edge for Private Cloud در RHEL 8.X یا Rocky 8.X با قابلیت FIPS

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

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

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

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

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

الزامات جاوا

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

نصب

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

قالب کلید خصوصی

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

عملیات کلی «امنیت لایه انتقال»

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

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

‫keystore/truststore پیش‌فرض Java

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

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

  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
    پردازنده پیام لبه $/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 است و کاربر 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 تبدیل کنید، به تبدیل گواهی‌ها به قالب پشتیبانی‌شده مراجعه کنید.