通过


验证 Windows 上Microsoft连接缓存的 HTTPS 配置

本文介绍如何使用 WSL (适用于 Linux 的 Windows 子系统) 在 Windows 上运行适用于企业和教育的 Microsoft 连接缓存节点上验证 HTTPS 支持。

测试 HTTP 和 HTTPS 内容下载

在测试之前,需要确定客户端如何连接到连接的缓存服务器。 这是在 CSR 生成期间在证书的使用者可选名称 (SAN) 中配置的相同连接方法。

重要提示

在下面的所有命令中替换 [mcc-connection][test-url]

确定 :[mcc-connection]

  • 如果在 -sanIp CSR 中使用了: 使用 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 连接。

  • 检查 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 和连接的缓存服务器地址的日志条目表示客户端已成功使用 HTTPS。

客户端验证

在客户端设备上执行以下命令, (而不是 Windows 主机) 。

前提: 确保主机通过策略成为目标。 将连接缓存 IP 地址 (“DOCacheHost”策略) 的值更新为与其环境相关的任何内容:

   $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 从连接的缓存请求 Teams 应用下载:

          Add-AppxPackage "https://statics.teams.cdn.office.net/production-windows-x64/enterprise/webview2/lkg/MSTeams-x64.msix"
    

    或者

        Add-AppxPackage "https://installer.teams.static.microsoft/production-windows-x64/25177.2002.3761.5185/MSTeams-x64.msix"
    

    预期结果: 下载完成且没有错误,应比典型的 Internet 下载更快。

  • 检查内容是否实际上正在缓存 (而不仅仅是回退到 CDN) :

        Get-DeliveryOptimizationStatus | Select-Object DownloadMode, TotalBytesDownloaded, BytesFromCacheServer
    

    预期结果:BytesFromCacheServer 应大于 0,指示缓存成功。

疑难解答

如果在验证过程中遇到以下任何常见错误,请使用以下故障排除方法:

重要提示

在下面的所有命令中替换 [mcc-connection][test-url]

确定 :[mcc-connection]

  • 如果在 -sanIp CSR 中使用了: 使用 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

快速测试:

   curl.exe -v -k -o NUL "https://[mcc-connection]/[test-url]"

如果测试成功: 证书存在验证问题。 验证:

  • SAN 配置与连接方法匹配
  • CA 根证书安装在客户端的受信任存储中

如果测试失败: 请参阅下面的 连接错误

证书吊销错误

症状: HTTPS 响应缓慢或超时

快速测试:

   curl.exe -v --ssl-no-revoke -o NUL "https://[mcc-connection]/[test-url]"

如果测试成功: 无法访问分发点的 CA 证书吊销列表 (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 检查。

资源