Edge for Private Cloud trên RHEL 8.X hỗ trợ FIPS

Bài viết này cung cấp thông tin chi tiết và hướng dẫn dành cho khách hàng sử dụng Edge for Private Cloud phiên bản 4.53.00 trở lên, hoạt động trên RHEL 8.X hỗ trợ FIPS.

Cài đặt trước

Đảm bảo rằng bạn đã bật FIPS trên các nút của mình ngoà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 về Edge cho đám mây riêng tư.

fips-mode-setup --check
FIPS mode is enabled.

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 cách bật chế độ này:

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 nhận biết được FIPS và có thể triển khai các quy định hạn chế dành riêng cho FIPS thông qua tính năng bảo mật Java.

Cài đặt

Trong tệp tham chiếu cấu hình cài đặt im lặng, 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. Hãy tham khảo bài viết Chuyển đổi chứng chỉ sang định dạng được hỗ trợ để được trợ giúp về cách tạo tệp.

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 trên 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 Edge for Private Cloud 4.53.00 trở lên hoạt động 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 đi kèm 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 sẽ tin cậy theo mặc định. Nếu bạn muốn thay đổi kho này thành kho của riêng mình chứa các chứng chỉ CA, hãy làm theo quy trình bên dưới:

  1. 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.
  2. Đặ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
  3. 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
  4. 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
          
  5. Đả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
  6. Khởi động lại thành phần:
    /opt/apigee/apigee-service/bin/apigee-service  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 giống như các lệnh thường chạy, nhưng bạn cần thêm 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 Loại cửa hàng là BCFKS.
-providerpath Đường dẫn đến bc-fips-XXXX.jar. Phiên bản của tệp jar này có thể thay đổi trong các phiên bản OPDK sau này. Bạn nên sử dụng bất kỳ phiên bản nào do Apigee phân phối. Bạn cũng có thể tải tệp jar xuống từ kho lưu trữ của Bouncycastle. Kể từ bản phát hành OPDK 4.53, đường dẫn này sẽ là /opt/apigee/edge-gateway/lib/thirdparty/bc-fips-1.0.2.4.jar.
-providerclass Bạn nên đặt thành org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider.
-providername Bạn nên đặt 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ỉ của riêng mình và muốn đóng gói khoá riêng tư và chứng chỉ đó vào PKCS12, hãy tham khảo phần Chuyển đổi chứng chỉ sang định dạng được hỗ trợ.