ส่วนนี้จะให้คําแนะนําเกี่ยวกับการเปิดใช้โหมด 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
ข้อกำหนดของ Java
คุณควรดาวน์โหลด Java ที่ใช้จากที่เก็บข้อมูลของ Red Hat เพื่อให้มั่นใจว่าโมดูลความปลอดภัยของ Java เป็นไปตามข้อกำหนด FIPS ซึ่งจะเปิดใช้ข้อจำกัดเฉพาะของ FIPS ผ่านการรักษาความปลอดภัยของ Java
การติดตั้ง
ในข้อมูลอ้างอิงไฟล์การกําหนดค่า Edge ให้ตั้งค่า FIPS_OS=true
ในโหนดแต่ละโหนด คุณสามารถทำตามขั้นตอนการติดตั้งทั่วไปสำหรับ Edge for Private Cloud ได้ตามปกติ
รูปแบบคีย์ส่วนตัว
เฉพาะรูปแบบ PKCS12/PFX เท่านั้นที่ใช้อัปโหลดคีย์ส่วนตัวไปยังคีย์สโตร์ของ Apigee เพื่อใช้ในพร็อกซี API หรือโฮสต์เสมือนได้ ดูคําแนะนําในการสร้างไฟล์ได้ที่การแปลงใบรับรองเป็นรูปแบบที่รองรับ
การดำเนินการทั่วไปของ TLS
เมื่อใช้ Edge for Private Cloud 4.53.00 ขึ้นไปใน RHEL 8.X ที่เปิดใช้ FIPS การกําหนดค่าคอมโพเนนต์ที่เกี่ยวข้องกับ TLS ส่วนใหญ่ของ Edge จะต้องทําผ่านคีย์สโตร์รูปแบบ PKCS12 หรือ BCFKS
ดูรายละเอียดเพิ่มเติมเกี่ยวกับการกำหนดค่า TLS ได้จากเอกสารประกอบหรือหมายเหตุเฉพาะ FIPS ในบทความที่เกี่ยวข้อง ภาคผนวกแสดงคําสั่งที่เป็นประโยชน์บางส่วนซึ่งสามารถใช้สร้างคีย์สโตร์เหล่านี้
คีย์สโตร์/คลังความน่าเชื่อถือเริ่มต้นของ 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 <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 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 โปรดดูการแปลงใบรับรองเป็นรูปแบบที่รองรับ