本節提供在 RHEL 8 上啟用 FIPS 模式的指引,確保 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 存放區下載,確保其安全性模組符合 FIPS 標準,並透過 Java 安全性啟用 FIPS 特定限制。
安裝
在 Edge 設定檔參考資料中,為每個節點設定 FIPS_OS=true
。您可以照常按照 Edge for Private Cloud 的一般安裝步驟操作。
私密金鑰格式
只有 PKCS12/PFX 格式可用於將私密金鑰上傳至 Apigee 金鑰庫,以便在 API 代理程式或虛擬主機中使用。如需建立檔案的指引,請參閱「將憑證轉換為支援的格式」。
一般 TLS 作業
在支援 FIPS 的 RHEL 8.X 上使用 Edge for Private Cloud 4.53.00 以上版本時,Edge 的大部分 TLS 相關元件設定都必須透過 PKCS12 或 BCFKS 格式的金鑰庫完成。
如需進一步瞭解 TLS 設定,請參閱 FIPS 專屬說明文件或相關文章中的附註。附錄列出一些可用來產生這些 KeyStore 的實用指令。
預設 Java KeyStore/TrustStore
在啟用 FIPS 的 RHEL 8.X 上使用 Edge for Private Cloud 4.53.00 以上版本時,訊息處理器、管理伺服器和其他 edge-* 元件會依賴產品提供的預設信任存放區和金鑰存放區。
這些檔案包含應用程式預設信任的憑證授權單位憑證。如果您想使用自己的存放區,並在其中放入 CA 憑證,請按照下列程序操作:
-
建立 BCFKS 格式的
cacerts
檔案,其中包含您要信任的所有 CA 憑證。請確認 Keystore 密碼和金鑰密碼相同。詳情請參閱附錄。 -
將檔案放在適當的路徑中,並確保 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 格式 KeyStore 匯入或匯出憑證和/或金鑰。如要進一步瞭解如何使用 BCFKS,請參閱 BouncyCastle 說明文件。
PKCS12 儲存庫
如要產生 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 格式,請參閱「將憑證轉換為支援的格式」。