設定邊緣端的傳輸層安全標準 (TLS)/SSL

Private Cloud v. 4.16.09 版本

TLS (傳輸層安全標準 (TLS) 先前採用的是安全資料傳輸層 (SSL)) 是一套標準安全性技術,可確保整個 API 環境從應用程式、Apigee Edge 到後端服務,都能透過安全加密的訊息傳遞。

無論管理 API 的環境設定為何 (例如是否在管理 API 前端使用 Proxy、路由器和/或負載平衡器),Edge 都能讓您啟用及設定 TLS,讓您在內部部署的 API 管理環境中控管訊息加密作業。

如果是地端部署安裝 Edge Private Cloud,您可以在幾個地方設定 TLS:

  1. 路由器和訊息處理工具之間
  2. 如要存取 Edge 管理 API
  3. 用於存取 Edge Management UI
  4. 讓應用程式存取 API
  5. 從 Edge 存取後端服務

以下說明如何為前三個項目設定 TLS。這些程序均假設您已建立一個包含 TLS 認證和私密金鑰的 JKS 檔案。

如要設定傳輸層安全標準 (TLS) 以從應用程式存取 API,請參閱上方步驟 4 的設定私有雲 API 的 TLS 存取權。如要設定 TLS,以便 Edge 存取後端服務,請參閱上方的 #5 項說明,瞭解如何設定 Edge 到後端的 TLS (Cloud 和私有雲)

如需 Edge 上 TLS 設定的完整總覽,請參閱「TLS/SSL」。

建立 JKS 檔案

您可以將 KeyStore 表示為 JKS 檔案,其中 KeyStore 包含 TLS 憑證和私密金鑰。建立 JKS 檔案的方法有很多種,但其中一種方法是使用 opensl 和 keytool 公用程式。

舉例來說,您有一個名為 server.pem 的 PEM 檔案,其中包含 TLS 憑證,以及一個名為 private_key.pem 的 PEM 檔案,其中包含私密金鑰。使用下列指令建立 PKCS12 檔案:

> openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12

您必須輸入金鑰的通關密語 (如果有) 和匯出密碼。這個指令會建立名為 keystore.pkcs12 的 PKCS12 檔案。

請使用以下指令將其轉換為名為 keystore.jks 的 JKS 檔案:

> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks

系統會提示您輸入 JKS 檔案的新密碼,以及 PKCS12 檔案現有的密碼。務必使用與 PKCS12 檔案相同的 JKS 檔案密碼。

如果您必須指定金鑰別名 (例如在路由器和訊息處理器之間設定 TLS 時),請在 openssl 指令中加入「-name」選項:

>  openssl pkcs12 -export -clcerts -in server.pem -inkey private_key.pem -out keystore.pkcs12 -name devtest

然後將「-alias」選項加入 keytool 指令:

> keytool -importkeystore -srckeystore keystore.pkcs12 -srcstoretype pkcs12 -destkeystore keystore.jks -deststoretype jks -alias devtest

產生經過模糊處理的密碼

Edge TLS 設定程序的部分內容需要您在設定檔中輸入經過模糊處理的密碼。經過模糊處理的密碼會取代純文字密碼,安全性更高。

您可以使用與 Edge 一起安裝的 Jetty .jar 檔案,在 Java 中產生經過模糊處理的密碼。請使用以下格式中的指令,產生經過模糊化的密碼:

> IFS= read -rsp Password: passvar; echo; java -cp "/opt/apigee/edge-gateway/lib/thirdparty/*" org.eclipse.jetty.util.security.Password $passvar 2>&1 |tail -2; unset passvar

在系統提示時輸入新密碼。基於安全考量,系統不會顯示密碼文字。這個指令會以以下格式傳回密碼:

OBF:58fh40h61svy156789gk1saj
MD5:902fobg9d80e6043b394cb2314e9c6

設定 TLS 時,請使用 OBF 指定的模糊處理密碼。

詳情請參閱這篇文章