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

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

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

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

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

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

الزامات جاوا

جاوای مورد استفاده شما باید از مخزن 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  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 توضیحات
-نوع فروشگاه نوع فروشگاه BCFKS است.
مسیر ارائه دهنده مسیر به bc-fips-XXXX.jar. نسخه این jar ممکن است در نسخه های بعدی OPDK تغییر کند. هر نسخه ای که توسط Apigee ارسال می شود باید استفاده شود. شما همچنین می توانید شیشه را از مخازن Bouncycastle دانلود کنید. از زمان انتشار OPDK 4.53، این باید /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar باشد.
-کلاس ارائه دهنده باید روی org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider تنظیم شود.
-نام ارائه دهنده باید روی 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 بسته بندی کنید، به تبدیل گواهی‌ها به فرمت پشتیبانی‌شده مراجعه کنید.