Phần này hướng dẫn cách bật chế độ FIPS trên RHEL 8, đảm bảo môi trường an toàn và tuân thủ cho Edge cho đám mây riêng tư phiên bản 4.53.00 trở lên.
Cài đặt trước
Đảm bảo rằng FIPS được bật trên các nút của bạn cùng với các điều kiện tiên quyết khác về cấu hình tiêu chuẩn được liệt kê trong tài liệu Tổng quan về việc cài đặt Edge.
fips-mode-setup --check FIPS mode is enabled. # Command output
Nếu chế độ FIPS hiện đang tắt, hãy tham khảo tài liệu chính thức của Red Hat để biết hướng dẫn về cách bật chế độ này: Chuyển RHEL 8 sang chế độ FIPS.
Yêu cầu về Java
Bạn nên tải Java xuống từ kho lưu trữ của Red Hat để đảm bảo các mô-đun bảo mật của Java tuân thủ FIPS, cho phép các quy định hạn chế dành riêng cho FIPS thông qua tính năng bảo mật của Java.
Cài đặt
Trong Tài liệu tham khảo về tệp cấu hình Edge, hãy đặt FIPS_OS=true trên mỗi nút. Bạn có thể làm theo các bước cài đặt chung cho Edge cho đám mây riêng tư như bình thường.
Định dạng khoá riêng tư
Bạn chỉ có thể sử dụng định dạng PKCS12/PFX để tải khoá riêng tư lên kho khoá Apigee để dùng trong proxy API hoặc máy chủ ảo. Để biết hướng dẫn về cách tạo tệp, hãy tham khảo bài viết Chuyển đổi chứng chỉ sang định dạng được hỗ trợ.
Thao tác chung về TLS
Khi sử dụng Edge cho Private Cloud phiên bản 4.53.00 trở lên trên RHEL 8.X có hỗ trợ FIPS, bạn cần thực hiện hầu hết các cấu hình thành phần liên quan đến TLS của Edge thông qua kho khoá định dạng PKCS12 hoặc BCFKS.
Hãy tham khảo tài liệu hoặc ghi chú dành riêng cho FIPS trong các bài viết liên quan về cấu hình TLS để biết thêm thông tin chi tiết. Phụ lục liệt kê một số lệnh hữu ích có thể dùng để tạo các kho khoá này.
Kho khoá/kho tin cậy Java mặc định
Khi bạn sử dụng Edge cho Private Cloud 4.53.00 trên RHEL 8.X có hỗ trợ FIPS, Bộ xử lý thông báo, Máy chủ quản lý và các thành phần edge-* khác sẽ trỏ theo mặc định đến kho khoá và kho tin cậy BCFKS phần giữ chỗ (/opt/apigee/edge-gateway/vault/bcfks-cacerts) được cung cấp cùng với sản phẩm.
Để tạo kho lưu trữ BCFKS cacerts của riêng bạn và định cấu hình các thành phần Edge để sử dụng kho lưu trữ đó, hãy làm theo các bước sau:
-
Tạo tệp
cacertsđịnh dạng BCFKS của riêng bạn, chứa tất cả chứng chỉ CA mà bạn muốn tin tưởng. Đảm bảo rằng mật khẩu kho khoá và mật khẩu khoá giống nhau (và có ít nhất 14 ký tự nếu áp dụng quy trình kiểm tra mật khẩu BCFIPS nghiêm ngặt).-
Lựa chọn A: Chuyển đổi kho lưu trữ JDK hoặc hệ điều hành lưu trữ
cacertssang định dạng BCFKS (nên dùng nếu bạn muốn thêm các CA gốc đáng tin cậy của hệ điều hành tiêu chuẩn doupdate-ca-trustquản lý):BC_FIPS_JAR=$(ls /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-*.jar \ | head -n 1)keytool -J-Dcom.redhat.fips=false -importkeystore \ -srckeystore /etc/pki/java/cacerts \ -srcstoretype JKS \ -srcstorepass changeit \ -destkeystore my-cacerts.bcfks \ -deststoretype BCFKS \ -deststorepass YOUR_STORE_PASSWORD \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \ -providername BCFIPS \ -providerpath "$BC_FIPS_JAR" \ -noprompt -
Lựa chọn B: Tạo kho lưu trữ BCFKS mới có chứng chỉ CA tuỳ chỉnh (
.pemhoặc.crt) hoặc nhập thêm chứng chỉ CA tuỳ chỉnh vào kho lưu trữ BCFKS hiện có (chẳng hạn nhưmy-cacerts.bcfkstrong Lựa chọn A):BC_FIPS_JAR=$(ls /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-*.jar \ | head -n 1)keytool -J-Dcom.redhat.fips=false -importcert \ -file PATH_TO_CA_CERT.pem \ -alias CA_ALIAS \ -keystore my-cacerts.bcfks \ -storetype BCFKS \ -storepass YOUR_STORE_PASSWORD \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \ -providername BCFIPS \ -providerpath "$BC_FIPS_JAR" \ -noprompt -
Không bắt buộc: Xác minh nội dung của kho lưu trữ BCFKS:
BC_FIPS_JAR=$(ls /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-*.jar \ | head -n 1)keytool -J-Dcom.redhat.fips=false -list \ -keystore my-cacerts.bcfks \ -storetype BCFKS \ -storepass YOUR_STORE_PASSWORD \ -providerclass org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider \ -providername BCFIPS \ -providerpath "$BC_FIPS_JAR"
-
-
Trên mỗi nút chạy bất kỳ thành phần nào của Edge được liệt kê trong Bước 3, hãy sao chép tệp BCFKS vào một đường dẫn thích hợp và đảm bảo rằng người dùng
apigeecó thể đọc tệp đó:cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfkschown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfkschmod 600 /opt/apigee/customer/application/my-cacerts.bcfks -
Trên mỗi nút, hãy tạo hoặc chỉnh sửa tệp cấu hình cho từng thành phần đã cài đặt trong bảng sau (lặp lại các Bước 3 – 6 cho từng thành phần được liệt kê trên nút):
Thành phần Tệp edge-management-server/opt/apigee/customer/application/management-server.propertiesedge-message-processor/opt/apigee/customer/application/message-processor.propertiesedge-router/opt/apigee/customer/application/router.propertiesedge-postgres-server/opt/apigee/customer/application/postgres-server.propertiesedge-qpid-server/opt/apigee/customer/application/qpid-server.properties -
Thêm các dòng sau vào tệp cấu hình:
conf_system_javax.net.ssl.trustStore=/opt/apigee/customer/application/my-cacerts.bcfks conf_system_javax.net.ssl.trustStorePassword=YOUR_STORE_PASSWORD conf_system_javax.net.ssl.keyStore=/opt/apigee/customer/application/my-cacerts.bcfks conf_system_javax.net.ssl.keyStoreType=BCFKS conf_system_javax.net.ssl.keyStorePassword=YOUR_STORE_PASSWORD
Thay thế
/opt/apigee/customer/application/my-cacerts.bcfksvàYOUR_STORE_PASSWORDbằng đường dẫn và mật khẩu cho tệp BCFKScacertscủa bạn. -
Đảm bảo rằng người dùng
apigeesở hữu và có thể đọc tệp cấu hình:chown apigee:apigee /opt/apigee/customer/application/FILE.properties
-
Khởi động lại thành phần:
/opt/apigee/apigee-service/bin/apigee-service COMPONENT restart
Phụ lục
Lệnh mẫu cho thao tác với kho khoá BCFKS
Lệnh dưới đây tạo một kho khoá BCFKS có cặp khoá và chứng chỉ tự ký:
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
Các lệnh keytool vẫn nhất quán với các lệnh thường dùng, nhưng bạn phải đưa các tuỳ chọn sau vào lệnh 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
Đối số Keytool
| Đối số Keytool | Mô tả |
|---|---|
-storetype |
Đặt loại cửa hàng thành BCFKS. |
-providerpath |
Chỉ định đường dẫn đến bc-fips-XXXX.jar. Phiên bản này có thể thay đổi trong các bản phát hành OPDK sau này. Sử dụng phiên bản do Apigee cung cấp hoặc tải phiên bản đó xuống từ kho lưu trữ của Bouncycastle. Đối với OPDK 4.53, đường dẫn phải là /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar. |
-providerclass |
Đặt giá trị này thành org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider. |
-providername |
Đặt giá trị này thành BCFIPS. |
Bạn có thể sử dụng các lệnh keytool tương tự để nhập hoặc xuất chứng chỉ và/hoặc khoá từ hoặc sang kho khoá định dạng BCFKS. Để biết thêm thông tin về cách làm việc với BCFKS, hãy xem tài liệu về BouncyCastle.
Kho khoá PKCS12
Để tạo kho PKCS12, bạn có thể sử dụng các lệnh 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
Nếu bạn có khoá riêng tư và chứng chỉ riêng và cần chuyển đổi chúng sang định dạng PKCS12, hãy tham khảo bài viết Chuyển đổi chứng chỉ sang định dạng được hỗ trợ.