為 Management API 設定傳輸層安全標準 (TLS)

Edge for Private Cloud 4.18.05

根據預設,管理 API 的 TLS 已停用,您必須使用管理伺服器節點的 IP 位址和 8080 通訊埠,透過 HTTP 存取 Edge 管理 API。例如:

http://ms_IP:8080

或者,您也可以設定管理 API 的 TLS 存取權,以便透過以下表單存取:

https://ms_IP:8443

在這個範例中,您會將 TLS 存取權設為使用 8443 通訊埠。不過,Edge 不需要這個通訊埠號碼,您可以將管理伺服器設為使用其他通訊埠值。唯一的要求是防火牆必須允許透過指定通訊埠的流量。

為確保管理 API 的進出流量加密,請在 /opt/apigee/customer/application/management-server.properties 檔案中設定相關設定。

除了 TLS 設定之外,您也可以修改 management-server.properties 檔案,藉此控制密碼驗證 (密碼長度和強度)。

確認 TLS 通訊埠已開啟

本節的程序會將 TLS 設為在管理伺服器上使用 8443 通訊埠。無論您使用哪個通訊埠,都必須確保管理伺服器已開啟該通訊埠。例如,您可以使用下列指令開啟它:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT --verbose

設定 TLS

編輯 /opt/apigee/customer/application/management-server.properties 檔案,控管管理 API 傳入和傳出流量的 TLS 用量。如果這個檔案不存在,請建立這個檔案。

請按照下列程序,設定管理 API 的 TLS 存取權:

  1. 產生包含 TLS 認證和私密金鑰的 KeyStore JKS 檔案。詳情請參閱「為 Edge On Premises 設定 TLS/SSL」。
  2. 將金鑰庫 JKS 檔案複製到管理伺服器節點的某個目錄,例如 /opt/apigee/customer/application
  3. 將 JKS 檔案的擁有權變更為 apigee:
    chown apigee:apigee keystore.jks
    其中 keystore.jks 是金鑰庫檔案的名稱。
  4. 編輯 /opt/apigee/customer/application/management-server.properties 設定下列屬性。如果該檔案不存在,請建立檔案:
    conf_webserver_ssl.enabled=true
    # Leave conf_webserver_http.turn.off set to false
    # because many Edge internal calls use HTTP.
    conf_webserver_http.turn.off=false
    conf_webserver_ssl.port=8443
    conf_webserver_keystore.path=/opt/apigee/customer/application/keystore.jks
    # Enter the obfuscated keystore password below.
    conf_webserver_keystore.password=OBF:obfuscatedPassword
    其中 keyStore.jks 是金鑰庫檔案,而 obfuscatedPassword 是經過模糊處理的金鑰庫密碼。如要瞭解如何產生經過模糊處理的密碼,請參閱「為 Edge On Premises 設定 TLS/SSL」。
  5. 使用以下指令重新啟動 Edge Management Server:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart

管理 API 現已支援透過 TLS 存取。

設定 Edge UI 使用 TLS 存取 Edge API

在上述程序中,Apigee 建議保留 conf_webserver_http.turn.off=false,以便 Edge UI 繼續透過 HTTP 呼叫 Edge API。

請按照下列程序設定 Edge UI,以便只透過 HTTPS 發出這些呼叫:

  1. 按照上述說明設定管理 API 的 TLS 存取權。
  2. 確認管理 API 的 TLS 運作正常後,請編輯 /opt/apigee/customer/application/management-server.properties 來設定下列屬性:conf_webserver_http.turn.off=true
  3. 使用以下指令重新啟動 Edge Management Server:
    /opt/apigee/apigee-service/bin/apigee-service edge-management-server restart 
  4. 編輯 /opt/apigee/customer/application/ui.properties,為 Edge UI 設定下列屬性。如果該檔案不存在,請建立檔案: conf_apigee_apigee.mgmt.baseurl="https://FQDN:8443/v1" 其中 FQDN 是完整網域名稱,請參考管理伺服器的憑證位址,而通訊埠號碼是 conf_webserver_ssl.port 在上述指定的通訊埠。
  5. 只有在您使用自行簽署的憑證 (不建議在實際工作環境中使用)時,才需要在上述管理 API 的 TLS 存取權設定中加入下列屬性: conf/application.conf+play.ws.ssl.loose.acceptAnyCertificate=true 否則,Edge UI 會拒絕自行簽署的憑證。ui.properties
  6. 使用以下指令重新啟動 Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

管理伺服器的 TLS 屬性

下表列出您可以在 management-server.properties 中設定的所有 TLS/SSL 屬性:

資源

說明

conf_webserver_http.port=8080

預設值為 8080。

conf_webserver_ssl.enabled=false

如要啟用/停用 TLS/SSL,啟用 TLS/SSL (設為 true) 時,您也必須設定 ssl.port 和 keystore.path 屬性。

conf_webserver_http.turn.off=true

如要啟用/停用 http 和 https,如果您只想使用 HTTPS,請將預設值保留為 true

conf_webserver_ssl.port=8443

TLS/SSL 通訊埠。

啟用 TLS/SSL 時必填 (conf_webserver_ssl.enabled=true)。

conf_webserver_keystore.path=<path>

KeyStore 檔案的路徑。

啟用 TLS/SSL 時必填 (conf_webserver_ssl.enabled=true)。

conf_webserver_keystore.password=

使用以下格式的模糊處理密碼:OBF:xxxxxxxxxx

conf_webserver_cert.alias=

選用的 KeyStore 憑證別名

conf_webserver_keymanager.password=

如果金鑰管理工具有密碼,請以以下格式輸入經過模糊處理的密碼:OBF:xxxxxxxxxx

conf_webserver_trust.all= <false | true>

conf_webserver_trust.store.path=<path>

conf_webserver_trust.store.password=

設定信任存放區。決定是否要接受所有 TLS/SSL 憑證 (例如,接受非標準類型)。預設值為 false。提供信任儲存庫的路徑,並以以下格式輸入經過模糊處理的信任儲存庫密碼:OBF:xxxxxxxxxx

conf_webserver_exclude.cipher.suites=<CIPHER_SUITE_1 CIPHER_SUITE_2>

conf_webserver_include.cipher.suites=

指出要納入或排除的加密套件。舉例來說,如果您發現某個密碼有安全漏洞,可以在此排除該密碼。請以半形空格分隔多個密碼。

如要瞭解加密編譯組合和密碼學架構,請參閱:

http://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE

conf_webserver_ssl.session.cache.size=

conf_webserver_ssl.session.timeout=

用於決定下列項目的整數:

  • 用於儲存多個用戶端工作階段資訊的 TLS/SSL 工作階段快取大小 (以位元組為單位)。
  • TLS/SSL 工作階段可持續的時間 (以毫秒為單位)。