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 for Private Cloud phiên bản 4.53.00 trở lên.
Cài đặt trước
Đảm bảo rằng bạn đã bật FIPS trên các nút cùng với các điều kiện tiên quyết khác về cấu hình 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 mà bạn sử dụng xuống từ kho lưu trữ của Red Hat để đảm bảo rằng 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 Tham chiếu 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 for Private Cloud 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 proxy API hoặc máy chủ lưu trữ ảo. Để biết hướng dẫn 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 chung của TLS
Khi sử dụng Edge for Private Cloud 4.53.00 trở lên trên RHEL 8.X hỗ trợ FIPS, hầu hết các cấu hình thành phần liên quan đến TLS của Edge sẽ cần được thực hiện 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 bạn sử dụng Edge for Private Cloud 4.53.00 trở lên trên RHEL 8.X hỗ trợ FIPS, trình xử lý thông báo, máy chủ quản lý và các thành phần edge-* khác sẽ dựa vào kho khoá và kho tin cậy 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ữ của riêng mình chứa chứng chỉ CA, hãy làm theo quy trình bên dưới:
-
Tạo tệp
cacerts
ở định dạng BCFKS chứa tất 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ần 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 bạn đang sử dụng:
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 bộ định tuyến biên $/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 người dùng apigee sở 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 về thao tác với kho khoá BCFKS
Lệnh bên dưới sẽ 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 lệnh keytool phải bao gồm các tuỳ chọn sau:
--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 phân phối 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 đến 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 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 phần Chuyển đổi chứng chỉ sang định dạng được hỗ trợ.