為管理使用者介面設定傳輸層安全標準 (TLS)

根據預設,您可以使用管理伺服器節點的 IP 位址和 9000 通訊埠,透過 HTTP 存取 Edge UI。例如:

http://ms_IP:9000

您也可以設定 Edge UI 的 TLS 存取權,以便在 表單:

https://ms_IP:9443

在本例中,您要將 TLS 存取權設為使用通訊埠 9443。不過,通訊埠號碼 以便將管理伺服器設定為使用其他通訊埠值。只有 您的防火牆允許流量通過指定的通訊埠。

確認 TLS 通訊埠已開啟

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

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

設定 TLS

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

  1. 產生含有 TLS 認證和私密金鑰的 KeyStore JKS 檔案,並將檔案複製到管理伺服器節點。詳情請參閱「為 Edge On Premises 設定 TLS/SSL」一文。
  2. 執行下列指令來設定 TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
  3. 輸入 HTTPS 通訊埠編號,例如 9443。
  4. 指定是否要停用管理 UI 的 HTTP 存取權。根據預設,管理介面可透過通訊埠 9000 上的 HTTP 存取。
  5. 輸入 KeyStore 演算法。預設值為 JKS。
  6. 輸入 KeyStore JKS 檔案的絕對路徑。

    這個指令碼會將檔案複製到管理伺服器節點的 /opt/apigee/customer/conf 目錄,並將檔案的擁有權變更為「apigee」。

  7. 輸入 KeyStore 純文字密碼。
  8. 然後指令碼會重新啟動 Edge 管理 UI。重新啟動後,管理 UI 就會支援透過 TLS 存取。

    您可以在 /opt/apigee/etc/edge-ui.d/SSL.sh 中查看這些設定。

使用設定檔設定 TLS

除了上述程序之外,您也可以將設定檔傳送至 。您需要使用這個方法 設定選用的 TLS 屬性

如要使用設定檔,請建立新檔案並新增下列屬性:

HTTPSPORT=9443
DISABLE_HTTP=y
# Set type to PKCS12 if you are using a PKCS12 keystore
KEY_ALGO=JKS
KEY_FILE_PATH=/opt/apigee/customer/application/mykeystore.jks
KEY_PASS=clearTextKeystorePWord

將檔案儲存到包含所需名稱的本機目錄中。 然後使用下列指令設定 TLS:

/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

其中 configFile 是您儲存檔案的完整路徑。

針對支援 FIPS 的作業系統使用 PKCS12 金鑰庫

如果您要在支援 FIPS 的作業系統上使用 Edge for Private Cloud,請使用 PKCS12 KeyStore。您可以使用標準 OpenSSL 指令產生 PKCS12 KeyStore。使用 PKCS12 金鑰庫時,請在設定檔中設定 KEY_ALGO=PKCS12

在傳輸層安全標準 (TLS) 時設定 Edge UI 會在負載平衡器上終止

如果您有負載平衡器,可將要求轉送至 Edge UI,您可以選擇終止負載平衡器上的 TLS 連線,然後讓負載平衡器透過 HTTP 將要求轉送至 Edge UI。系統支援這項設定,但您必須相應地設定負載平衡器和 Edge UI。

當 Edge UI 在使用者建立帳戶時,或使用者要求重設遺失的密碼時,傳送電子郵件要求使用者設定密碼,就需要額外設定。這封電子郵件 包含使用者選擇設定或重設密碼的網址。根據預設,如果 Edge UI 未設定為使用傳輸層安全標準 (TLS),產生電子郵件中的網址會使用 HTTP 通訊協定,而非 HTTPS。 您必須設定負載平衡器和 Edge UI,才能產生使用 HTTPS 的電子郵件地址。

如要設定負載平衡器,請務必對轉送的要求設定下列標頭 邊緣 UI:

X-Forwarded-Proto: https

如何設定 Edge UI:

  1. 打開 /opt/apigee/customer/application/ui.properties 新增至編輯器中的檔案如果檔案不存在,請建立一個:
    vi /opt/apigee/customer/application/ui.properties
  2. ui.properties 中設定下列屬性:
    conf/application.conf+trustxforwarded=true
  3. 將變更儲存至「ui.properties」。
  4. 重新啟動 Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

設定選用 TLS 屬性

Edge UI 支援選用的 TLS 設定屬性,可用於設定以下項目:

  • 預設 TLS 通訊協定
  • 支援的 TLS 通訊協定清單
  • 支援的 TLS 演算法
  • 支援的 TLS 加密方式

您必須設定下列設定屬性,才能使用這些選用參數 設定檔,按照 使用設定檔設定 TLS

TLS_CONFIGURE=y

下表說明這些屬性:

屬性 說明
TLS_PROTOCOL 定義 Edge UI 的預設 TLS 通訊協定。預設為 TLS 1.2。有效值為 TLSv1.2、TLSv1.1、TLSv1。
TLS_ENABLED_PROTOCOL

將已啟用的通訊協定清單定義為以半形逗號分隔的陣列。例如:

TLS_ENABLED_PROTOCOL=[\"TLSv1.2\", \"TLSv1.1\", \"TLSv1\"]

請注意,您必須逸出 " 字元。

根據預設,系統會啟用所有通訊協定。

TLS_DISABLED_ALGO

定義停用的加密套件,也可用於防止小型金鑰大小用於 TLS 握手。沒有預設值。

傳遞至 TLS_DISABLED_ALGO 的值會對應至 jdk.tls.disabledAlgorithms 的允許值,如這裡所述。不過,設定 TLS_DISABLED_ALGO 時,您必須逸出空格字元:

TLS_DISABLED_ALGO=EC\ keySize\ <\ 160,RSA\ keySize\ <\ 2048
TLS_ENABLED_CIPHERS

將可用的 TLS 密碼列表定義為以逗號分隔的陣列。例如:

TLS_ENABLED_CIPHERS=[\"TLS_DHE_RSA_WITH_AES_128_CBC_SHA\",
\"TLS_DHE_DSS_WITH_AES_128_CBC_SHA\"]

請注意,您必須逸出 " 字元。

啟用的加密方式預設清單如下:

"TLS_DHE_RSA_WITH_AES_256_CBC_SHA",
"TLS_DHE_RSA_WITH_AES_128_CBC_SHA",
"TLS_DHE_DSS_WITH_AES_128_CBC_SHA",
"TLS_RSA_WITH_AES_256_CBC_SHA",
"TLS_RSA_WITH_AES_128_CBC_SHA",
"SSL_RSA_WITH_RC4_128_SHA",
"SSL_RSA_WITH_RC4_128_MD5",
"TLS_EMPTY_RENEGOTIATION_INFO_SCSV"

查看可用的加密方式清單 請按這裡

停用 TLS 通訊協定

如要停用 TLS 通訊協定,您需要編輯設定檔,如「使用設定檔設定 TLS」一文所述:

  1. 在編輯器中開啟設定檔。
  2. 如要停用單一 TLS 通訊協定 (例如 TLSv1.0),請新增下列內容 加入設定檔:
    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1"

    停用多種通訊協定,例如 TLSv1.0 和 TLSv1.1: 將以下內容新增到設定檔:

    TLS_CONFIGURE=y
    TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
  3. 儲存設定檔變更。
  4. 執行下列指令來設定 TLS:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile

    其中 configFile 是設定檔的完整路徑。

  5. 重新啟動 Edge UI:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

使用安全 Cookie

Apigee Edge for Private Cloud 支援將 secure 標記新增至 Set-Cookie 標頭: 回應。如有這個標記,Cookie 就只能透過 支援 TLS 的頻道。如果沒有,則 Cookie 可透過任何管道傳送,無論是否安全皆然。

沒有 secure 旗標的 Cookie 可能會讓攻擊者擷取及重複使用 Cookie,或劫持有效的工作階段。因此,建議您啟用這項設定。

如要為 Edge UI Cookie 設定 secure 標記:

  1. 在文字編輯器中開啟以下檔案:
    /opt/apigee/customer/application/ui.properties

    如果檔案不存在,請建立一個。

  2. ui.properties 檔案中將 conf_application_session.secure 屬性設為 true,如以下範例所示:
    conf_application_session.secure=true
  3. 儲存變更。
  4. 使用 apigee-serice 公用程式重新啟動 Edge UI,如以下範例所示 顯示:
    /opt/apigee/apigee-service/bin/apigee-service edge-ui restart

如要確認變更是否有效,請使用 curl 等公用程式,檢查 Edge UI 的回應標頭,例如:

curl -i -v https://edge_UI_URL

標題應包含一行程式碼,如下所示:

Set-Cookie: secure; ...

在 Edge UI 中停用 TLS

如要在 Edge UI 上停用 TLS,請使用下列指令:

/opt/apigee/apigee-service/bin/apigee-service edge-ui disable-ssl