Convalidare la configurazione HTTPS per Microsoft Connected Cache in Linux

Questo articolo fornisce istruzioni su come convalidare il supporto HTTPS in Microsoft Connected Cache per aziende e istruzione nodi in esecuzione in Linux.

Testare i download di contenuto HTTP e HTTPS

Prima di eseguire il test, è necessario identificare il modo in cui i client si connettono al server di Cache connessa. Questo è lo stesso metodo di connessione configurato nel nome alternativo soggetto (SAN) del certificato durante la generazione csr.

Importante

Sostituire [mcc-connection] e [test-url] in tutti i comandi seguenti

Per determinare :[mcc-connection]

  • Se è stato usato -sanIp nel csr: usare l'indirizzo IP (ad esempio: 192.168.1.100)
  • Se è stato usato -sanDns nel csr: usare il nome host (esempio: mcc-server.contoso.com)

[test-url]è il percorso completo di un test Intune'applicazione Win32:ee344de8-d177-4720-86c1-a076581766f9/070a8fd4-79a7-42c8-b7c8-9883253bb01a/c7b1b825-88b2-4e66-9b15-ff5fe0374bc6.appxbundle.bin

I comandi curl seguenti testano il recupero del contenuto HTTP e HTTPS:

  • Test HTTPS:

    curl -v -o /dev/null "https://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"
    

    Output con esito positivo previsto:

    * 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]
    
  • Test HTTP:

    curl -v -o /dev/null "http://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"
    

    Output con esito positivo previsto:

    * Connected to [your-server] ([ip-address]) port 80 (#0)
    < HTTP/1.1 200 OK
    < Content-Length: [file-size]
    

Convalida sul lato servizio

Eseguire i test seguenti nel computer host Linux:

  • Testare la connettività con wget:

    wget --server-response --spider --header="host: swda01-mscdn.manage.microsoft.com" "https://[mcc-connection]/[test-url]"
    

    Risultato previsto:HTTP/1.1 200 OK indica l'esito positivo della connessione HTTPS.

  • Verificare i dettagli del certificato:

    echo | openssl s_client -connect [mcc-connection]:443 -servername [mcc-connection] 2>/dev/null | openssl x509 -text -noout
    

    Risultato previsto: I dettagli del certificato, inclusi l'oggetto, l'autorità di certificazione e i valori SAN, devono corrispondere alla configurazione.

  • Controllare lo stato e i log del contenitore:

    # Check if the Connected Cache container is running
    sudo docker ps | grep mcc
    
    # View recent container logs for HTTPS activity
    sudo docker logs --tail 50 $(sudo docker ps -q --filter ancestor=mcr.microsoft.com/mcc/linux)
    

    Risultato previsto: Il contenitore deve essere in stato "Up" e i log devono mostrare l'attività TLS/SSL senza errori.

  • Test dell'handshake SSL/TLS:

    Testare l'handshake SSL/TLS senza convalidare il certificato:

        # Basic connection test
        openssl s_client -connect [mcc-server]:443
    
        # Test with SNI (Server Name Indication)
        openssl s_client -connect [mcc-server]:443 -servername [hostname]
    
        # View certificate details during connection
        echo | openssl s_client -connect [mcc-server]:443 2>/dev/null | openssl x509 -noout -text
    

Convalida sul lato client

Eseguire i comandi seguenti in un dispositivo client (non nel computer host Linux).

Prerequisito: Assicurarsi che l'host sia destinato tramite criteri. Aggiornare l'indirizzo IP della cache connessa (il valore per il criterio "DOCacheHost") a qualsiasi elemento rilevante per l'ambiente:

$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
  • Richiedere il download dell'app Teams dalla cache connessa tramite HTTPS:

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

    Risultato previsto: Il download viene completato senza errori e deve essere più veloce dei download Internet tipici.

  • Verificare che il contenuto sia effettivamente memorizzato nella cache (non solo il ritorno alla rete CDN):

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

    Risultato previsto:BytesFromCacheServer deve essere maggiore di 0, a indicare che la memorizzazione nella cache è riuscita.

  • Se la cache connessa Linux client Windows server, testare quanto segue da tali computer:

    # Test TCP connection
    Test-NetConnection -ComputerName [mcc-server] -Port 443
    
    # Test HTTPS connection
    Invoke-WebRequest -Uri "https://[mcc-server]/" -UseBasicParsing
    
    # View certificate details
    $cert = [System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
    Invoke-WebRequest -Uri "https://[mcc-server]/"
    
  • Verificare se la porta 443 è accessibile:

        # Using telnet
        telnet [mcc-server-ip] 443
    
        # Using nc (netcat)
        nc -zv [mcc-server-ip] 443
    
        # Using nmap (if installed)
        nmap -p 443 [mcc-server-ip]
    

Risoluzione dei problemi

Se un passaggio di convalida non riesce, usare i test seguenti per isolare la causa. Ogni test ignora una parte del processo di connessione. Se il test ha esito positivo, si sa che la parte ignorata è il problema.

Importante

Sostituire [mcc-connection] e [test-url] in tutti i comandi seguenti

Per determinare :[mcc-connection]

  • Se è stato usato -sanIp nel csr: usare l'indirizzo IP (ad esempio: 192.168.1.100)
  • Se è stato usato -sanDns nel csr: usare il nome host (esempio: mcc-server.contoso.com)

[test-url]è il percorso completo di un test Intune'applicazione Win32:ee344de8-d177-4720-86c1-a076581766f9/070a8fd4-79a7-42c8-b7c8-9883253bb01a/c7b1b825-88b2-4e66-9b15-ff5fe0374bc6.appxbundle.bin

Errori di convalida del certificato

Sintomi:SSL certificate problem, certificate subject name does not match

Test di diagnostica: Il comando seguente usa il flag per ignorare completamente la -k convalida del certificato. Questo indica a curl di connettersi senza verificare il certificato del server. In questo modo, è possibile determinare qual è il problema: il certificato o qualcos'altro.

curl -v -k -o /dev/null "https://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"

Se il test ha esito positivo: Il server e la rete funzionano correttamente. Il problema riguarda il certificato stesso. Verificare che:

  • La configurazione SAN corrisponde al metodo di connessione (indirizzo IP o nome host)
  • Il certificato radice ca è installato nell'archivio attendibile del client

Se il test non riesce: Il problema non è il certificato. Vedere Gli errori di connessione riportati di seguito.

Errori di revoca del certificato

Sintomi: Risposte o timeout HTTPS lenti

Test di diagnostica: Il comando seguente usa il flag per ignorare il --ssl-no-revoke controllo dell'elenco di revoche di certificati ( CRL). In genere, il client contatta il punto di distribuzione CRL della CA per verificare che il certificato non sia stato revocato. Se l'endpoint non è raggiungibile, causa lentezza o timeout.

curl -v --ssl-no-revoke -o /dev/null "https://[mcc-connection]/[test-url]" --include -H "host:swda01-mscdn.manage.microsoft.com"

Se il test ha esito positivo: La connessione funziona quando il controllo di revoca viene ignorato, confermando che il client non riesce a raggiungere il punto di distribuzione CRL. Verificare che il firewall consenta l'accesso agli URL CRL elencati nel certificato.

Se il test non riesce: Il problema non è il controllo delle revoche. Vedere Gli errori di connessione riportati di seguito.

Errori di connessione

Sintomi:Connection refused, Could not resolve host

Se non è possibile connettersi affatto (anziché connettersi ma visualizzare errori di certificato), il problema è in genere correlato alla rete o al firewall.

Per gli errori di connessione HTTPS:

  • Verificare che le regole del firewall siano configurate correttamente

  • Verificare che nessun altro servizio usi la porta 443:

    sudo ss -tulpn | grep :443
    
  • Verificare che il contenitore Della cache connessa sia in esecuzione:

    sudo docker ps | grep mcc
    

Per gli errori di connessione HTTP: Verificare che il servizio Cache connessa sia in esecuzione e che la porta 80 sia accessibile

sudo ss -tulpn | grep :80

Per i problemi di risoluzione DNS: Verificare la risoluzione dei nomi host e la connettività di rete

nslookup [mcc-connection]
# OR
dig [mcc-connection]

Interferenza del proxy aziendale

Sintomi: La convalida del certificato non riesce nonostante la configurazione corretta.

Soluzione: Assicurarsi che il proxy aziendale non intercetti il traffico HTTPS verso il server di Cache connessa. Provare a disabilitare l'ispezione TLS per il traffico interno della cache connessa.

Risorse aggiuntive