המאמר הזה מכיל פרטים והוראות ללקוחות 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 לענן פרטי כרגיל.
פורמט של מפתח פרטי
אפשר להשתמש רק בפורמט PKCS12/PFX כדי להעלות מפתחות פרטיים למאגרי המפתחות של Apigee לשימוש בשרתי ה-proxy של ה-API או במארחים הווירטואליים. במאמר המרת אישורים לפורמט נתמך מוסבר איך יוצרים את הקובץ.
פעולות כלליות של TLS
כשמשתמשים ב-Edge for Private Cloud בגרסה 4.53.00 ואילך ב-RHEL 8.X עם תמיכה ב-FIPS, רוב ההגדרות של רכיבי TLS ב-Edge צריכות להתבצע דרך מאגרי מפתחות בפורמט PKCS12 או BCFKS. לקבלת פרטים נוספים, אפשר לעיין במסמכי התיעוד הספציפיים ל-FIPS או בהערות במאמרים הרלוונטיים להגדרת TLS. בנספח מפורטות כמה פקודות שימושיות שאפשר להשתמש בהן כדי ליצור את מאגרי המפתחות האלה.
מאגר המפתחות/מאגר האמון שמוגדר כברירת מחדל ב-Java
כשמשתמשים ב-Edge for Private Cloud בגרסה 4.53.00 ואילך ב-RHEL 8.X עם תמיכה ב-FIPS, מעבד ההודעות, שרת הניהול ורכיבים אחרים מסוג edge-* מסתמכים על מאגר מפתחות ומאגר אמון שמוגדרים כברירת מחדל ונשלחים עם המוצר. הם מכילים אישורי CA שהאפליקציה תאמין בהם כברירת מחדל. אם רוצים לשנות את זה לחנות משלכם שמכילה אישורי CA, צריך לפעול לפי השלבים הבאים:
- יוצרים קובץ cacerts בפורמט BCFKS שמכיל את כל אישורי ה-CA שרוצים להעניק להם אמון. מוודאים שהסיסמה של מאגר המפתחות זהה לסיסמה של המפתח. פרטים נוספים זמינים בנספח.
-
מניחים את הקובץ בנתיב מתאים ומוודאים שהוא קריא למשתמש 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 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 -
מוסיפים את השורות הבאות לקובץ:
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 ואפשר לקרוא אותו:
chown apigee:apigee $opt/apigee/customer/application/<file>.properties
-
מפעילים מחדש את הרכיב:
/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. נכון לגרסה 4.53 של OPDK, הנתיב צריך להיות /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 Store
כדי ליצור מאגר 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, תוכלו לעיין במאמר המרת אישורים לפורמט נתמך.