این بخش راهنماییهایی درباره فعال کردن حالت 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 است استفاده کنید، روش زیر را دنبال کنید:
-
فایل
cacertsبا قالب BCFKS ایجاد کنید که حاوی همه گواهیهای «مرجع صدور گواهی» باشد که میخواهید به آنها اعتماد کنید. مطمئن شوید که گذرواژه ذخیرهگاه کلید و گذرواژه کلید یکسان باشند. برای جزئیات بیشتر به پیوست مراجعه کنید. -
فایل را در مسیر مناسبی قرار دهید و مطمئن شوید که کاربر apigee میتواند آن را بخواند:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
فایل پیکربندی مناسب را براساس مؤلفهای که با آن کار میکنید ایجاد (یا ویرایش) کنید:
مؤلفه فایل 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 -
خطوط زیر را به فایل اضافه کنید:
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
-
مطمئن شوید که فایل پیکربندی متعلق به کاربر apigee است و کاربر apigee میتواند آن را بخواند:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
بازراهاندازی عنصر:
/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 تبدیل کنید، به تبدیل گواهیها به قالب پشتیبانیشده مراجعه کنید.