本文提供如何在 Windows 主機上運行的適用於企業和教育的 Microsoft 網內快取節點啟用 HTTPS 支援的說明。
設定過程需要在您的主機上產生憑證簽署請求 (CSR) ,並使用企業或公共 PKI 簽署 CSR,然後匯入回主機。
必要條件
在設定 HTTPS 功能前,請確保以下需求已達成:
快取節點採用 GA 軟體版本
- 打開 Azure 入口網站,並導航到存放你快取節點的企業連線快取資源。
- 在 快取節點管理中,找到你想啟用 HTTPS 的快取節點。
- 確認節點是否在 GA 版本——遷移欄中應該會顯示「是」或「不適用」。
- 如果 GA 版本沒有,則在 遷移欄 () 的「No」中選出快取節點,導覽到 部署 標籤,依指示重新部署已連接快取。
取得憑證授權機構 (CA)
你需要存取企業 PKI 或公共 CA。 如果使用企業PKI,請查看貴組織對向CA提交CSR的要求。
文件客戶端連接方法
請注意 FQDN (IP 位址或主機名稱,) 用戶端用來連接你的 Connected Cache 伺服器。 此值將作為主體替代名稱 (SAN) 輸入,用於產生CSR的過程中。
確保 443 埠可用
要建立與 Connected Cache 的 HTTPS 連線,你的主機必須有 443 埠。 執行以下指令來檢查:
netstat -an | findstr :443檢視產出:
- 沒有輸出 ——443 埠沒有被使用。 繼續設定 HTTPS 吧。
-
輸出包含
LISTENING(例如,TCP 0.0.0.0:443 0.0.0.0:0 LISTENING) — 443 埠開啟並監聽有沒有連線。 繼續設定 HTTPS 吧。 -
輸出包含
ESTABLISHED(例如,TCP 192.168.1.10:443 10.0.0.5:52674 ESTABLISHED) — 443 埠正被其他服務積極使用。 在 Connected Cache 使用 443 埠之前,先找出並停止衝突服務。
提示
要識別使用 443 埠的服務,請執行
netstat -ano | findstr :443以尋找程序 ID (最後一欄的 PID) 。 然後用實際的號碼) 替tasklist /fi "pid eq <PID>"換<PID>(來查看程序名稱。 常見使用 443 埠的服務包括 IIS、其他網頁伺服器及 VPN 軟體。 在繼續之前,請先停止或重新設定衝突的服務。驗證企業代理設定
例如,如果您的防火牆或企業代理透過 TLS 檢查) (攔截到 Connected Cache 伺服器的 HTTPS 流量,憑證驗證無論如何設定都會失敗。
欲了解更多任何先修條件,請參閱 HTTPS on Windows 參考頁面。
產生憑證簽署請求 (CSR)
重要
每個快取節點都需要自己的 CSR/憑證 (無法共享) :
- 使用一致的命名方式:mcc-node1.company.com、mcc-node2.company.com 等。
- 記錄哪個憑證屬於哪個節點
- 萬用卡憑證無法使用。 用於 HTTPS 連接連接 Connected Cache 的 CSR/憑證,為了安全起見,會唯一綁定到每個快取節點。
以管理員身份開啟 PowerShell,並前往包含其 PowerShell 腳本的 Connected Cache 資料夾。
執行以下指令以導航至此 Connected Cache 腳本資料夾:
cd (deliveryoptimization-cli mcc-get-scripts-path)設定參數
generateCsr.ps1,並用你指定的值執行腳本。基本語法
.\generateCsr.ps1 [Required Parameters] [Subject Parameters] [SAN Parameters]所需參數
參數 描述 -algo憑證演算法: RSA、EC、ED25519或ED448-keySizeOrCurveRSA 的鑰匙大小: ( 2048、、3072)4096。 對於EC:曲線名稱 (prime256v1,)secp384r1。 ED25519 和 ED448:不需要按鍵尺寸。-csrNameCSR 檔案的名稱 -mccRunTimeAccount就是執行 Connected Cache 軟體的帳號。 這應該是一個 PowerShell 變數,包含你打算指定為 Connected Cache 執行時帳號的帳號的使用者名稱。 例如, $User = "LocalMachineName\Username"針對本地使用者帳號。 如果你使用的是群組管理服務帳號 (gMSA) ,格式應該是"Domain\Username$"。-mccLocalAccountCredential一個用於 Connected Cache 執行時帳號的 PowerShell 憑證物件。 這只有在使用本地使用者帳號、網域使用者帳號或服務帳號時才需要。 此指令 $myLocalAccountCredential = Get-Credential可用來排隊存取憑證的圖形介面。注意
此
-mccRunTimeAccount參數可在 Connected Cache Windows 應用程式 v1.0.26.0 及更新版本中取得。 如果你使用的是早期的 v1.0.24.0 應用程式,請用於-RunTimeAccountName本地使用者、網域使用者和服務帳號,或-RunTimeAccount是 gMSA) (群組管理服務帳號。受試者參數
參數 必要 描述 範例 -subjectCommonName是 證書的通用名稱 "localhost","example.com"-subjectCountry否 兩字母國家代碼 "US","CA","GB"-subjectState否 州或省 "WA","TX","Ontario"-subjectOrg否 組織名稱 "MyCompany","ACME Corp"警告
SAN 設定對於憑證驗證至關重要。 你的憑證必須完全符合客戶端連接到你已連接快取的方式,否則客戶端會繞過快取節點。
例如,如果你的客戶端透過 IP 位址
192.168.1.100連線,但你的憑證只有-sanDns "server.local",憑證驗證就會失敗。主詞替代名稱 (至少一個必填)
參數 描述 範例 -sanDnsDNS 名稱 (逗號分隔) "localhost,example.com,api.example.com"-sanIpIP 位址 (逗號分隔) "127.0.0.1,192.168.1.100"-sanUriURI (逗號分隔) "https://example.com,http://localhost"-sanEmailEmail 處理逗號分隔 () "admin@example.com,user@domain.com"-sanRid註冊ID (逗號分隔) -sanDirName目錄名稱 (逗號分隔) -sanOtherName其他名稱 (逗號分隔) 欲了解更多 CSR 腳本參數的情境範例,請參閱 HTTPS on Windows 參考資料
驗證CSR產生流程已成功完成。
如果遇到錯誤,請在腳本輸出中指定的資料夾中找到時間
GenerateCsr.log戳記的檔案。 尋找以「Check logs for detailed error information:」開頭的輸出行,目錄以 (...\Certificates\logs) 結尾。- 檔案格式: GenerateCsr_YYYYMMDD-HHMMSS.log
- 範例: GenerateCsr_20251201_143022.log 是一個於 2025 年 12 月 1 日下午 2:30:22 建立的檔案
在主機的 憑證資料夾 中找到產生的 CSR 檔案,必要時轉移
憑證資料夾的位置會在腳本輸出中指定,開頭為「CSR file created at: ...」。 目錄以 (...\Certificates\certs) 結尾。
簽署CSR文件
選擇一個憑證授權機構 (加州) 簽署CSR。
重要
CA 簽章必須與客戶端受信任根儲存庫中的根憑證相符。
企業 PKI:大多數客戶使用組織內部的 PKI 基礎設施來簽署 CSR。 請向你的 IT 或資安團隊查詢,了解你組織向內部 CA 提交 CSR 的流程。
公共 CA:如果你沒有企業 PKI,可以使用公共 CA。 以下資源可以幫助你開始:
將CSR提交給你選擇的CA,並保存已簽署的證書。
你簽署的憑證必須是 .crt 格式,並使用 X.509 編碼。 如果你的 CA 有提供其他格式,請參考 HTTPS on Windows 的參考資料 ,了解如何轉換成 .crt 格式。
注意
Connected Cache 目前不支援密碼保護格式 (.pfx、.p12、.p7b) 。 這些支援將很快加入,作為我們憑證自動化路線圖的一部分。
確認簽署憑證的格式正確。
確認PEM編碼:
Get-Content "xxxx.crt" | Select-String "BEGIN CERTIFICATE"預期成功產出:
-----BEGIN CERTIFICATE-----把你簽署的憑證移到 Windows 主機上的 Certificates 資料夾 。
這會是你最初找到CSR產生的資料夾: (...\Certificates\certs) 。
注意
不要分享私鑰,Connected Cache 只需要簽署憑證。
匯入簽署的 TLS 憑證
以管理員身份開啟 PowerShell,並前往包含其 PowerShell 腳本的 Connected Cache 資料夾。
設定參數
importCert.ps1,並用你指定的值執行腳本。基本語法
.\importCert.ps1 [Required Parameters]所需參數
參數 描述 -certName你簽署的 TLS 憑證的完整檔名 (有無 .crt 副檔名) -mccRunTimeAccount就是執行 Connected Cache 軟體的帳號。 這應該是一個 PowerShell 變數,包含你打算指定為 Connected Cache 執行時帳號的帳號的使用者名稱。 例如, $User = "LocalMachineName\Username"針對本地使用者帳號。 如果你使用的是群組管理服務帳號 (gMSA) ,格式應該是"Domain\Username$"。-mccLocalAccountCredential一個用於 Connected Cache 執行時帳號的 PowerShell 憑證物件。 這只有在使用本地使用者帳號、網域使用者帳號或服務帳號時才需要。 例如, $myLocalAccountCredential = Get-Credential。注意
此
-mccRunTimeAccount參數可在 Connected Cache Windows 應用程式 v1.0.26.0 及更新版本中取得。 如果你使用的是早期的 v1.0.24.0 應用程式,請用於-RunTimeAccountName本地使用者、網域使用者和服務帳號,或-RunTimeAccount是 gMSA) (群組管理服務帳號。注意
v1.0.24.0 連接快取 Windows 應用程式不支援在 Windows Server 2022 或 Windows Server 2025 上以 gMSA 執行時帳號執行
importCert.ps1。 在這些環境中,請使用 v1.0.26.0 或更新版本的應用程式來執行此腳本。範例
.\importCert.ps1 ` -mccRunTimeAccount $myLocalAccountCredential.Username ` -mccLocalAccountCredential $myLocalAccountCredential ` -certName "myTlsCert.crt"確認匯入流程已成功完成。
如果遇到錯誤,請在腳本輸出中指定的資料夾中找到時間
ImportCert.log戳記的檔案。 找那個以「你可以在這裡找到日誌:...」開頭的輸出線- 檔案格式: ImportCert_YYYYMMDD-HHMMSS.log
- 範例: ImportCert_20251201_143022.log 是一個於 2025 年 12 月 1 日下午 2:30:22 建立的檔案
透過執行
ShowCertDetails.ps1腳本確認匯入的憑證是正確的。注意
此
ShowCertDetails.ps1腳本自 Windows 部署應用程式 v1.0.26 起提供。.\ShowCertDetails.ps1此腳本會顯示目前匯入快取節點的 TLS 憑證的印本與到期日。
確保連接快取能透過 443 埠對外部用戶端存取。
注意
在設定埠轉發前,請再次確認 443 埠是否可用:
netstat -an | findstr :443前方埠 443 流量
請使用以下指令將 Windows 主機的流量橋接到 Connected Cache 容器:
$ipFilePath = Join-Path ([System.Environment]::GetEnvironmentVariable("MCC_INSTALLATION_FOLDER", "Machine")) "wslIp.txt" $ipAddress = (Get-Content $ipFilePath | Select-Object -First 1).Trim() netsh interface portproxy add v4tov4 listenport=443 listenaddress=0.0.0.0 connectport=443 connectaddress=$ipAddress這會建立一個埠代理,使得 443 埠的進出流量會被導向容器的內部 IP。
在防火牆中開啟 443 埠
即使有埠轉發功能,Windows 防火牆仍可能阻擋 443 埠的進出流量。 請使用以下指令,確保 HTTPS 流量能自由流出您的 Connected Cache。
[void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Inbound -Action Allow -Protocol TCP -LocalPort "443") [void](New-NetFirewallRule -DisplayName "WSL2 Port Bridge (HTTPS)" -Direction Outbound -Action Allow -Protocol TCP -LocalPort "443")
關於如何進一步驗證憑證匯入的說明,請參閱 HTTPS on Windows 驗證頁面。
關閉 HTTPS 支援
如果你需要將已連接快取恢復為僅限 HTTP 通訊,請依照以下步驟操作。 這個過程不會刪除憑證資料夾中的任何東西,包括 CSR 檔案、憑證和日誌。
以管理員身份開啟 PowerShell,然後進入 PowerShell scripts 資料夾。
設定參數
disableTls.ps1,並用你指定的值執行腳本。基本語法
.\disableTls.ps1 [Required Parameters]所需參數
參數 描述 -mccRunTimeAccount就是執行 Connected Cache 軟體的帳號。 這應該是一個 PowerShell 變數,包含你打算指定為 Connected Cache 執行時帳號的帳號的使用者名稱。 例如, $User = "LocalMachineName\Username"針對本地使用者帳號。 如果你使用的是群組管理服務帳號 (gMSA) ,格式應該是"Domain\Username$"。-mccLocalAccountCredential一個用於 Connected Cache 執行時帳號的 PowerShell 憑證物件。 這只有在使用本地使用者帳號、網域使用者帳號或服務帳號時才需要。 例如, $myLocalAccountCredential = Get-Credential。注意
此
-mccRunTimeAccount參數可在 Connected Cache Windows 應用程式 v1.0.26.0 及更新版本中取得。 如果你使用的是早期的 v1.0.24.0 應用程式,請用於-RunTimeAccountName本地使用者、網域使用者和服務帳號,或-RunTimeAccount是 gMSA) (群組管理服務帳號。範例
.\disableTls.ps1 ` -mccRunTimeAccount $myLocalAccountCredential.Username ` -mccLocalAccountCredential $myLocalAccountCredential `確認停用程序已成功完成。
停用 HTTPS 後,HTTP 請求應該能正常運作,而 HTTPS 請求則會失敗。 請參閱 HTTPS on Windows 驗證頁面 ,了解如何測試此功能。