Phần này cung cấp hướng dẫn về 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 for Private Cloud 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ề quy trình 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 mà bạn sử dụng 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 hạn chế cụ thể của FIPS thông qua bảo mật Java.
Cài đặt
Trong Edge Configuration File Reference (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 để sử dụng trong các máy chủ ảo hoặc proxy API. Để 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ợ.
Các thao tác TLS chung
Khi sử dụng Edge cho Đám mây riêng tư 4.53.00 trở lên trên RHEL 8.X hoặc Rocky 8.X có hỗ trợ FIPS, bạn sẽ 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 có 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 Edge cho Đám mây riêng tư 4.53.00 trở lên được dùng trên RHEL 8.X hoặc Rocky 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 của bạn sẽ dựa vào một truststore và keystore mặc định được cung cấp cùng với sản phẩm.
Các tệp này chứa chứng chỉ CA mà ứng dụng của bạn tin cậy theo mặc định. Nếu bạn muốn sử dụng kho lưu trữ riêng có chứa các chứng chỉ CA, hãy làm theo quy trình bên dưới:
-
Tạo một tệp
cacertsở định dạng BCFKS chứa tất cả các chứng chỉ CA mà bạn muốn tin cậy. Đảm bảo rằng mật khẩu kho khoá và mật khẩu khoá giống nhau. Hãy tham khảo phụ lục để biết thêm thông tin chi tiết. -
Đặt tệp vào một đường dẫn thích hợp và đảm bảo người dùng apigee có thể đọc được tệp đó:
cp my-cacerts.bcfks /opt/apigee/customer/application/my-cacerts.bcfks chown apigee:apigee /opt/apigee/customer/application/my-cacerts.bcfks
-
Tạo (hoặc chỉnh sửa) tệp cấu hình thích hợp dựa trên thành phần mà bạn đang làm việc:
Thành phần Tệp 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 -
Thêm các dòng sau vào tệp:
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
-
Đảm bảo rằng tệp cấu hình thuộc sở hữu của người dùng apigee và người dùng này có thể đọc tệp:
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
Các lệnh mẫu cho thao tác trên kho khoá BCFKS
Lệnh bên dưới sẽ tạo một kho khoá BCFKS bằng một 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 những lệnh thường dùng, nhưng bạn phải thêm các lựa 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ể 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 đến một kho khoá định dạng BCFKS. Để biết thêm thông tin về cách sử dụng BCFKS, hãy xem tài liệu về BouncyCastle.
Kho PKCS12
Để tạo một kho PKCS12, bạn có thể 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 phần Chuyển đổi chứng chỉ sang định dạng được hỗ trợ.