本文提供如何在 Windows 上運行並搭配 WSL (Windows 子系統 Linux 版) 的適用於企業和教育的 Microsoft 網內快取節點驗證 HTTPS 支援的說明。
測試 HTTP 與 HTTPS 內容下載
在測試前,你需要先確認用戶端如何連接到你的 Connected Cache 伺服器。 這正是您在 CSR 產生時,憑證主體替代名稱 (SAN) 所設定的連線方式。
重要
在以下所有指令中替換 [mcc-connection] 和[test-url]
要決定你的 [mcc-connection]:
-
如果你在客服中使用
-sanIp: 使用 (IP 位址,例如:192.168.1.100) -
如果你在CSR中使用
-sanDns: 使用主機名稱 (範例:mcc-server.contoso.com)
[test-url]是測試 Intune Win32 應用程式的完整路徑:ee344de8-d177-4720-86c1-a076581766f9/070a8fd4-79a7-42c8-b7c8-9883253bb01a/c7b1b825-88b2-4e66-9b15-ff5fe0374bc6.appxbundle.bin
接著,在你的 Windows 主機上執行以下 curl 指令 (連接快取伺服器) ,以測試 HTTP 和 HTTPS 內容的檢索:
HTTPS 測試
curl.exe -v -o NUL "https://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"預期成功產出:
* Connected to [your-server] ([ip-address]) port 443 (#0) * TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 * Server certificate: [your-certificate-subject] < HTTP/1.1 200 OK < Content-Length: [file-size]HTTP 測試
curl.exe -v -o NUL "http://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"預期成功產出:
* Connected to [your-server] ([ip-address]) port 80 (#0) < HTTP/1.1 200 OK < Content-Length: [file-size]
服務端驗證
請在您的 Windows 主機上執行以下測試:
測試使用 PowerShell 連接性:
Invoke-WebRequest -Uri "https://[mcc-connection]/[test-url]" -Headers @{"host"="swda01-mscdn.manage.microsoft.com"} -Method Head預期結果:
StatusCode: 200表示 HTTPS 連線成功。檢查 Delivery Optimization 日誌是否有 HTTPS 活動:
# Search for HTTPS connections in recent logs Select-String -Path "C:\Windows\Logs\DeliveryOptimization\*.log" -Pattern "https://" | Select-Object -First 5 # Search for your specific Connected Cache server connections Select-String -Path "C:\Windows\Logs\DeliveryOptimization\*.log" -Pattern "[mcc-connection]" | Select-Object -First 5預期結果: 日誌中顯示 HTTPS URL 和你的 Connected Cache 伺服器地址,代表客戶端正在成功使用 HTTPS。
用戶端驗證
請在用戶端裝置執行以下指令 (而非你的 Windows 主機) 。
先決條件: 確保主機透過政策被鎖定。 將「DOCacheHost」政策 () 的已連線快取 IP 位址更新為與其環境相關的值:
$parentKeyPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization"
if (!(Test-Path $parentKeyPath))
{
New-Item -Path $parentKeyPath -ItemType RegistryKey -Force -ErrorAction Stop | Out-Null
}
Set-ItemProperty -Path $parentKeyPath -Name "DOCacheHost" -Value "[mcc-connection]" -ErrorAction Stop
透過 HTTPS 從 Connected Cache 請求下載 Teams 應用程式:
Add-AppxPackage "https://installer.teams.static.microsoft/production-windows-x64/25177.2002.3761.5185/MSTeams-x64.msix"預期結果: 下載完成且不會出錯,應該比一般網路下載還快。
請確認內容是否真的被快取 (而不是直接回退到 CDN) :
Get-DeliveryOptimizationStatus | Select-Object DownloadMode, TotalBytesDownloaded, BytesFromCacheServer預期結果:
BytesFromCacheServer應該大於 0,表示快取成功。
疑難排解
若驗證步驟失敗,請使用以下測試來找出原因。 每次測試都會繞過連線過程中的一部分。 如果測試成功,你就知道被繞過的部分才是問題所在。
重要
在以下所有指令中替換 [mcc-connection] 和[test-url]
要決定你的 [mcc-connection]:
-
如果你在客服中使用
-sanIp: 使用 (IP 位址,例如:192.168.1.100) -
如果你在CSR中使用
-sanDns: 使用主機名稱 (範例:mcc-server.contoso.com)
[test-url]是測試 Intune Win32 應用程式的完整路徑:ee344de8-d177-4720-86c1-a076581766f9/070a8fd4-79a7-42c8-b7c8-9883253bb01a/c7b1b825-88b2-4e66-9b15-ff5fe0374bc6.appxbundle.bin
憑證驗證錯誤
症狀:SSL certificate problemcertificate subject name does not match
診斷測試: 以下指令使用 -k 該旗標來完全跳過憑證驗證。 這會告訴 Curl 在未驗證伺服器憑證的情況下連線。 這樣你就能判斷問題出在哪:是憑證還是其他問題。
curl.exe -v -k -o NUL "https://[mcc-connection]/[test-url]"
如果測試成功: 伺服器和網路運作正常。 問題出在證書本身。 請確認:
- SAN 設定會符合你的連線方式 (IP 位址或主機名稱)
- CA 根憑證安裝在客戶的信任儲存庫中
如果測試失敗: 問題不在證書。 請參見下方 的連線錯誤 。
憑證撤銷錯誤
症狀: HTTPS 回應緩慢或逾時
診斷測試: 以下指令利用該 --ssl-no-revoke 旗標跳過憑證撤銷清單 (CRL) 檢查。 通常,客戶會聯絡你 CA 的 CRL 分發點確認證書是否被撤銷。 如果該終端無法觸及,會導致延遲或逾時。
curl.exe -v --ssl-no-revoke -o NUL "https://[mcc-connection]/[test-url]"
如果測試成功: 當跳過撤銷檢查時,連線仍能正常運作,確認用戶端無法連接到 CRL 分發點。 請確認你的防火牆是否允許存取憑證中列出的 CRL URL。
如果測試失敗: 問題不在於撤銷檢查。 請參見下方 的連線錯誤 。
連線錯誤
症狀:Connection refusedCould not resolve host
如果你完全無法連線, (連線卻) 看到憑證錯誤,問題通常與網路或防火牆有關。
關於 HTTPS 連線錯誤:
請確認防火牆規則和埠轉發設定正確
檢查沒有其他服務使用443埠:
netstat -an | findstr :443
關於 HTTP 連線錯誤: 確認連接快取服務正在執行且埠 80 是否可存取
netstat -an | findstr :80
關於 DNS 解析問題: 驗證主機名稱解析與網路連線
nslookup [mcc-connection]
企業代理權干擾
症狀: 憑證驗證即使設定正確,仍失敗。
解決方案: 確保企業代理不會攔截到你連接快取伺服器的 HTTPS 流量。 考慮關閉內部連接快取流量的 TLS 檢查功能。