本文提供詳細資訊和操作說明,適用於使用 Edge for Private Cloud 4.53.00 以上版本 (在支援 FIPS 的 RHEL 8.X 上運作) 的客戶。
預先安裝
除了Edge for Private Cloud 說明文件中列出的其他標準設定先決條件之外,請務必在節點上啟用 FIPS。
fips-mode-setup --check FIPS mode is enabled.
如果目前已停用 FIPS 模式,請參閱 Red Hat 官方文件,瞭解如何啟用這項模式:
Java 需求
您使用的 Java 應從 Red Hat 的存放區下載,以確保 Java 的安全性模組支援 FIPS,並可透過 Java 安全性實作 FIPS 專屬限制。
安裝
在靜默安裝設定檔參考資料中,請在每個節點上設定 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 格式的金鑰庫完成。如需更多詳細資訊,請參閱 FIPS 專屬說明文件,或參閱相關文章的 TLS 設定附註。附錄列出一些可用來產生這些 KeyStore 的實用指令。
預設 Java KeyStore/TrustStore
當 Edge for Private Cloud 4.53.00 以上版本在支援 FIPS 的 RHEL 8.X 上運作時,訊息處理器、管理伺服器和其他 edge-* 元件會依賴產品隨附的預設信任存放區和金鑰存放區。這些檔案包含應用程式預設信任的 CA 憑證。如果您想將此存放區變更為含有 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
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 的路徑。這個 JAR 檔案的版本可能會在日後的 OPDK 版本中有所變動。請使用 Apigee 提供的任何版本。您也可以從 Bouncycastle 存放區下載 JAR。自 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,請參閱「將憑證轉換為支援的格式」一文。