SSL 組態
啟用 SSL
您可以編輯 CycleCloud 安裝目錄中找到的 cycle_server.properties 檔案來啟用 SSL。 使用文字編輯器開啟 cycle_server.properties 檔案,並適當地設定下列值:
# True if SSL is enabled
webServerEnableHttps=true
webServerRedirectHttp=true
重要
請注意,編輯 cycle_server.properties 檔案時,請務必先在檔案中尋找既有的索引鍵值定義。 如果有多個定義,最後一個 就會生效。
CycleCloud 的預設 SSL 埠是埠 8443。 如果您想要在其他埠上執行加密的 Web 通訊,您可以將 webServerSslPort
屬性變更為新的埠值。 請確保 webServerSslPort
與 webServerPort
的值 不衝突。
編輯 cycle_server.properties 檔案之後,您必須重新啟動 CycleCloud,才能啟用加密通信通道:
/opt/cycle_server/cycle_server restart
假設您在設定 CycleCloud 時未變更 CycleCloud 的 SSL 埠以進行加密通訊,您現在可以移至 http://<my CycleCloud address>:8443/
以確認 SSL 連線。
注意
如果 HTTPS URL 無法運作,請檢查 <CycleCloud Home>/logs/catalina.err 和 <CycleCloud Home>/logs/cycle_server.log,以取得可能指出加密通道為何沒有回應的錯誤訊息。
Self-Generated 憑證
如果您沒有來自 VeriSign 等證書頒發機構單位的憑證,您可以使用 Azure CycleCloud 所提供的自動產生的自我簽署憑證。 這是一種快速的方式,不收費地開始使用 SSL,但大部分的網頁瀏覽器會顯示警告,指出受信任的授權單位尚未驗證用來加密通道的憑證。 在某些情況下,例如安全網路上的內部 CycleCloud 部署,這是可接受的。 用戶必須在瀏覽器新增例外狀況才能檢視網站,但內容和會話將會如預期般加密。
警告
Azure CycleCloud 自我簽署憑證具有縮短的保質期。 到期時,瀏覽器會重新發出有關 SSL 憑證不受信任的警告。 用戶必須明確接受他們才能檢視 Web 控制台。
使用 Let's Encrypt
CycleCloud 支援來自 Let's Encrypt的憑證。 若要使用 Let's Encrypt with CycleCloud,您必須:
- 在埠 443 上啟用 SSL
- 確保 CycleCloud 可以透過外部網域名稱在埠 443 上可公開存取。
您可以使用設定頁面上的 [SSL] 選項,或從 CycleCloud 計算機執行 cycle_server keystore automatic DOMAIN_NAME
,來啟用 [讓我們加密支援]。
使用 CA-Generated 憑證
使用由 CA 生成的憑證,可以讓您在存取 CycleCloud 的安裝時,不會顯示信任憑證錯誤。 若要啟動進程,請先執行:
./cycle_server keystore create_request <FQDN>
系統會要求您提供網域名稱,這是已簽署憑證上的「一般名稱」欄位。 這會為指定的網域產生新的自我簽署憑證,並寫入cycle_server.csr檔案。 您必須將 CSR 提供給憑證機構,憑證機構會提供最終簽署的證書(下稱 server.crt)。 您還需要新憑證與根憑證之間鏈結中使用的根憑證和任何中繼憑證。 CA 應該為您提供這些。 如果它們已將它們組合成單一憑證檔案,您可以使用下列命令匯入它們:
./cycle_server keystore import server.crt
如果他們提供多個憑證檔案,您應該一次將它們全部匯入,並將名稱附加至相同的命令,並以空格分隔:
./cycle_server keystore import server.crt ca_cert_chain.crt
匯入現有的憑證
如果您先前已建立 CA 或自我簽署憑證,您可以更新 CycleCloud 以搭配下列命令使用:
./cycle_server keystore update server.crt
如果您想要匯入 PFX 檔案,您可以在 CycleCloud 7.9.7 或更新版本中使用下列命令來執行此動作:
./cycle_server keystore import_pfx server.pfx --pass PASSWORD
請注意,PFX 檔案只能包含一個項目。 此外,即使沒有密碼,仍需要 -pass 自變數(在此情況下使用 --pass ''
)。
最後,如果您在這些命令之外對密鑰存放區進行變更,您可以在 CycleCloud 7.9.7 或更新版本中立即重載密鑰存放區:
./cycle_server keystore reconfig
金鑰存放區實作詳細數據
CycleCloud 的憑證會儲存在 /opt/cycle_server/config/private/keystore
中,以及作業所需的其他憑證。 以下是儲存在金鑰存放區中的項目非完整清單:
別名 | 目的 |
---|---|
身份 | 儲存使用者面向 Web 介面的憑證鏈結(埠 443 或 8443) |
叢集身份 | 保留節點連線到 CycleCloud 的憑證鏈結(埠 9443) |
根 | 保存用來簽署所有本地憑證的憑證,包括叢集身份 |
您可以使用 Java 的金鑰存放區檔案來檢查金鑰存放區。 例如,下列命令會列出金鑰存放區中的所有項目:
keytool -list -keystore /opt/cycle_server/config/private/keystore -storepass changeit
上述 cycle_server
命令會更新 identity
別名。 不支援更新其他項目,包括 cluster-identity
或 root
憑證,不 支援。
您可以直接修改金鑰存放區,但不建議這麼做。 一般而言,變更會要求 CycleServer 重新啟動才會生效。
警告
變更金鑰存放區的內容可能會導致叢集無法運作! 一律先進行備份再修改。
金鑰存放區的密碼 changeit
,目前無法變更。 不過,檔案只能由 cycle_server
用戶讀取和寫入。
TLS 1.0 和 1.1 的回溯相容性
根據預設,CycleServer 會設定為只使用 TLS 1.2 通訊協定。 如果您需要為較舊的 Web 用戶端提供 TLS 1.0 或 1.1 通訊協定,您可以選擇啟用回溯相容性。
使用文字編輯器開啟 cycle_server.properties,並尋找 sslEnabledProtocols
屬性:
sslEnabledProtocols="TLSv1.2"
將屬性變更為 +
分隔的通訊協定清單,以支援您想要的協定。
sslEnabledProtocols="TLSv1.0+TLSv1.1+TLSv1.2"
關閉未加密的通訊
上述設定允許進行未加密的 (HTTP) 連線,但會重新導向至 HTTPS 以取得安全性。
您可能會想要防止未加密存取您的 CycleCloud 的安裝。 若要關閉未加密的通訊,請在文本編輯器中開啟您的 cycle_server.properties 檔案。 尋找 webServerEnableHttp
屬性,並將其變更為:
# HTTP
webServerEnableHttp=false
儲存變更並重新啟動 CycleCloud。 CycleCloud 的 HTTP 存取將會停用。