根據預設,您可以使用管理伺服器節點的 IP 位址和 9000 通訊埠,透過 HTTP 存取 Edge UI。例如:
http://ms_IP:9000
或者,您也可以設定 Edge UI 的 TLS 存取權,以便透過下列表單存取:
https://ms_IP:9443
在這個範例中,您會將 TLS 存取權設為使用 9443 通訊埠。不過,Edge 不需要該通訊埠編號,您可以將管理伺服器設為使用其他通訊埠值。唯一的要求是防火牆允許通過指定通訊埠的流量。
確認 TLS 通訊埠已開啟
本節的程序會將 TLS 設定為在管理伺服器上使用通訊埠 9443。無論使用何種通訊埠,您都必須在管理伺服器上開啟該通訊埠。例如,您可以使用以下指令開啟:
iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 9443 -j ACCEPT --verbose
設定 TLS
請按照下列程序,設定管理介面 (UI) 的 TLS 存取權:
- 產生含有 TLS 認證和私密金鑰的 KeyStore JKS 檔案,並將檔案複製到管理伺服器節點。詳情請參閱「為 Edge On Premises 設定 TLS/SSL」一文。
- 執行下列指令來設定 TLS:
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl
- 輸入 HTTPS 通訊埠號碼,例如 9443。
- 指定是否要停用管理 UI 的 HTTP 存取權。根據預設,管理介面可透過通訊埠 9000 上的 HTTP 存取。
- 輸入 KeyStore 演算法。預設值為 JKS。
- 輸入 KeyStore JKS 檔案的絕對路徑。
指令碼會將檔案複製到 Management Server 節點上的
/opt/apigee/customer/conf
目錄,然後將檔案的擁有權變更為「apigee」。 - 輸入明文 KeyStore 密碼。
- 然後指令碼會重新啟動 Edge Management UI。重新啟動後,管理 UI 就會支援透過傳輸層安全標準 (TLS) 進行存取。
您可以在
/opt/apigee/etc/edge-ui.d/SSL.sh
中查看這些設定。
使用設定檔設定 TLS
您可以在程序步驟 2 中將設定檔傳送給上述程序的替代方案。如要設定選用的 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 金鑰庫。您可以使用標準 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 的電子郵件地址。
如要設定負載平衡器,請確保在轉送至 Edge UI 的要求中設定下列標頭:
X-Forwarded-Proto: https
如要設定 Edge UI,請按照下列步驟操作:
- 在編輯器中開啟
/opt/apigee/customer/application/ui.properties
檔案。如果檔案不存在,請建立檔案:vi /opt/apigee/customer/application/ui.properties
- 在
ui.properties
中設定下列屬性:conf/application.conf+trustxforwarded=true
- 將變更儲存至
ui.properties
。 - 重新啟動 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=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」一文所述:
- 在編輯器中開啟設定檔。
- 如要停用單一 TLS 通訊協定 (例如 TLSv1.0),請在設定檔中加入下列內容:
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1"
如要停用多個通訊協定 (例如 TLSv1.0 和 TLSv1.1),請在設定檔中新增以下內容:
TLS_CONFIGURE=y TLS_DISABLED_ALGO="tlsv1, tlsv1.1"
- 將對設定檔所做的變更儲存下來。
- 執行下列指令來設定 TLS:
/opt/apigee/apigee-service/bin/apigee-service edge-ui configure-ssl -f configFile
其中 configFile 是設定檔的完整路徑。
- 重新啟動 Edge UI:
/opt/apigee/apigee-service/bin/apigee-service edge-ui restart
使用安全 Cookie
Apigee Edge for Private Cloud 支援將 secure
標記新增至 Set-Cookie
標頭,以便回應 Edge UI。如有這個標記,Cookie 就只能透過已啟用 TLS 的管道傳送。如果沒有,則 Cookie 可以透過任何管道傳送,無論是否安全。
沒有 secure
旗標的 Cookie 可能會讓攻擊者擷取及重複使用 Cookie,或劫持有效的工作階段。因此,最佳做法是啟用這項設定。
如要為 Edge UI Cookie 設定 secure
旗標:
- 在文字編輯器中開啟以下檔案:
/opt/apigee/customer/application/ui.properties
如果檔案不存在,請建立一個。
- 在
ui.properties
檔案中將conf_application_session.secure
屬性設為true
,如以下範例所示:conf_application_session.secure=true
- 儲存變更。
- 使用
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