Abilitare TLS sui Delivery Controller

Per abilitare TLS su un delivery controller™, è necessario:

Richiesta e installazione di un certificato

Per utilizzare TLS, è necessario installare un certificato il cui nome alternativo includa l’FQDN del DDC. È necessario creare un certificato adatto. Questa operazione può essere eseguita utilizzando una Microsoft Certificate Authority o altre autorità di certificazione interne o esterne.

Creare un certificato utilizzando una Microsoft Certificate Authority

Se la Microsoft Certificate Authority è integrata in un dominio Active Directory o nella foresta attendibile a cui sono uniti i Delivery Controller, è possibile acquisire un certificato dalla procedura guidata di registrazione certificati dello snap-in Certificati di MMC. La Microsoft Certificate Authority deve avere un modello di certificato pubblicato adatto all’uso da parte dei server web. Se si utilizza un Citrix Gateway o un server StoreFront™ su un dominio diverso, è necessario esportare il certificato dell’autorità di certificazione radice e importarlo in Citrix Gateway e StoreFront.

  1. Sul Delivery Controller, aprire la console MMC e aggiungere lo snap-in Certificati. Quando richiesto, selezionare Account computer.

  2. Espandere Personale > Certificati, quindi utilizzare il comando del menu contestuale Tutte le attività > Richiedi nuovo certificato.

    Snap-in Certificati di MMC

  3. Fare clic su Avanti per iniziare, e su Avanti per confermare che si sta acquisendo il certificato dalla registrazione di Active Directory.

  4. Selezionare un modello adatto, ad esempio Server Web esportabile. Se il modello è stato configurato per fornire automaticamente i valori per l’oggetto, è possibile fare clic su Registra senza fornire ulteriori dettagli.

    Finestra di dialogo Richiedi certificati

  5. Per fornire maggiori dettagli per il modello di certificato, fare clic sul pulsante freccia Dettagli e configurare quanto segue:

    Nome soggetto: selezionare Nome comune e aggiungere il FQDN del Delivery Controller.

    Nome alternativo: selezionare DNS e aggiungere il FQDN del Delivery Controller.

    Proprietà del certificato

  6. Premere OK.

  7. Premere Registra per creare e installare il certificato

Installare un file di certificato esistente

Se si dispone di un certificato esistente come file, è possibile installarlo:

  1. Sul Delivery Controller, aprire la console MMC e aggiungere lo snap-in Certificati. Quando richiesto, selezionare Account computer.

  2. Espandere Personale > Certificati, quindi utilizzare il comando del menu contestuale Tutte le attività > Importa.

  3. Cercare il file del certificato.

Configurazione della porta del listener SSL/TLS

Se il componente Windows IIS è installato sullo stesso server, che viene installato come parte di Web Studio e Director, è possibile configurare TLS utilizzando IIS. Per maggiori informazioni, vedere Abilitare TLS su Web Studio e Director. Altrimenti, per configurare il certificato utilizzando PowerShell:

  1. Per verificare se è presente un certificato esistente associato, aprire un prompt dei comandi ed eseguire netsh http show sslcert:

    netsh http show sslcert
    <!--NeedCopy-->
    
  2. Se esiste un binding esistente, eliminarlo.

    netsh http delete sslcert ipport=0.0.0.0:443
    <!--NeedCopy-->
    

    Sostituire 0.0.0.0:443 con un indirizzo IP e una porta specifici se ne era stato specificato uno nel binding esistente.

  3. Trovare l’identificazione personale (thumbprint) del certificato installato in precedenza. Per visualizzare l’identificazione personale, aprire Gestisci certificati computer, individuare il certificato, aprirlo e andare alla scheda Dettagli.

    Screenshot delle proprietà del certificato che mostra l'identificazione personale

    In alternativa, è possibile utilizzare PowerShell. Ad esempio, lo script seguente cerca un certificato il cui nome comune corrisponde al nome host del server e stampa l’identificazione personale:

    $HostName = ([System.Net.Dns]::GetHostByName(($env:computerName))).Hostname
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -match ("CN=" + $HostName)}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $($HostName): $($Thumbprint)" -Foreground Yellow
    <!--NeedCopy-->
    

    Se il nome comune del certificato non corrisponde ai nomi host, l’operazione avrà esito negativo. Se sono presenti più certificati per il nome host, verranno restituiti più thumbprint concatenati e sarà necessario scegliere il thumbprint appropriato.

    L’esempio seguente cerca un certificato per nome descrittivo:

    $friendlyName = "My certificate name"
    $Thumbprint = (Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.FriendlyName -eq $friendlyNam}).Thumbprint -join ';'
    Write-Host -Object "Certificate Thumbprint for $friendlyName: $($Thumbprint)" -Foreground Yellow
    <!--NeedCopy-->
    

    Se sono presenti più certificati con il nome descrittivo specificato, verranno restituiti più thumbprint concatenati e sarà necessario scegliere il thumbprint appropriato.

  4. Per associare il certificato alla porta, utilizzare il comando netsh http add sslcert:

    netsh http add sslcert ipport=[IP address]:443 certhash=[certificate hash] appid=[application GUID] disablelegacytls=enable
    <!--NeedCopy-->
    
    • ipport: L’indirizzo IP e la porta. L’utilizzo di 0.0.0.0:443 lo applica a tutti gli indirizzi IP. È possibile invece specificare un indirizzo IP specifico.

    • certhash: L’identificazione personale del certificato identificato nel passaggio precedente.

    • appid: Il GUID del servizio Citrix Broker.

      Nota:

      Quando si rinnova un certificato o si esegue un nuovo binding, utilizzare lo specifico appid associato al servizio Broker anziché un GUID arbitrario.

      Per trovare il appid corretto per il servizio Citrix Broker:

      1. Aprire una finestra di comando PowerShell come amministratore ed eseguire il seguente comando:

         Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker"
         <!--NeedCopy-->
        
      2. Individuare l’IdentifyingNumber (GUID) per il Citrix Broker Service nell’output (ad esempio, {D333C884-187F-447C-8C67-463F33989C8F}). Utilizzare questo GUID per il parametro appid.

    • disablelegacytls=enable: Disabilita le versioni legacy di TLS. Questo parametro è disponibile su Windows 2022 e versioni successive. Su Windows 2022 disabilita TLS 1.0 e 1.1. Su Windows 2025 questo non è necessario poiché TLS 1.0 e 1.1 sono disabilitati per impostazione predefinita.

    Ad esempio, eseguire il seguente comando per associare il certificato con l’identificazione personale bc96f958848639fd101a793b87915d5f2829b0b6 alla porta 443 su tutti gli indirizzi IP:

    netsh http add sslcert ipport=0.0.0.0:443 certhash=bc96f958848639fd101a793b87915d5f2829b0b6 appid={91fe7386-e0c2-471b-a252-1e0a805febac} disablelegacytls=enable
    <!--NeedCopy-->
    

Una volta abilitato HTTPS, è necessario configurare tutte le distribuzioni StoreFront e i Netscaler Gateway per utilizzare HTTPS anziché HTTP per connettersi al controller di consegna.

Configurare le suite di crittografia

L’elenco dell’ordine delle suite di crittografia deve includere le suite di crittografia TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (o entrambe); e queste suite di crittografia devono precedere qualsiasi suite di crittografia TLS_DHE_.

  1. Utilizzando l’Editor Criteri di gruppo di Microsoft, accedere a Configurazione computer > Modelli amministrativi > Rete > Impostazioni di configurazione SSL.
  2. Modificare il criterio “Ordine suite di crittografia SSL”. Per impostazione predefinita, questo criterio è impostato su “Non configurato”. Impostare questo criterio su Abilitato.
  3. Disporre le suite nell’ordine corretto; rimuovere le suite di crittografia che non si desidera utilizzare.

Assicurarsi che TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda qualsiasi suite di crittografia TLS_DHE_.

Su Microsoft Learn, vedere anche Configurazione dell’ordine delle suite di crittografia TLS.

Imporre solo traffico HTTPS

Si consiglia di configurare il servizio XML in modo che ignori il traffico HTTP.

  1. Eseguire regedit
  2. Aprire HKLM\Software\Citrix\DesktopServer\
  3. Creare un nuovo valore DWORD con nome XmlServicesEnableNonSsl e impostarlo su 0.
  4. Riavviare il servizio Broker.

Esiste un valore DWORD del Registro di sistema corrispondente XmlServicesEnableSsl che è possibile creare per ignorare il traffico HTTPS. Assicurarsi che non sia impostato su 0.

Modificare le porte HTTP o HTTPS

Per impostazione predefinita, il servizio XML sul Controller è in ascolto sulla porta 80 per il traffico HTTP e sulla porta 443 per il traffico HTTPS. Sebbene sia possibile utilizzare porte non predefinite, è necessario essere consapevoli dei rischi per la sicurezza derivanti dall’esposizione di un Controller a reti non attendibili. La distribuzione di un server StoreFront autonomo è preferibile alla modifica delle impostazioni predefinite.

Per modificare le porte HTTP o HTTPS predefinite utilizzate dal Controller, eseguire il seguente comando da Studio:

BrokerService.exe -StoreFrontPort <http-port> -StoreFrontTlsPort <https-port>

dove <http-port> è il numero di porta per il traffico HTTP e <https-port> è il numero di porta per il traffico HTTPS.

Nota:

Dopo aver modificato una porta, Studio potrebbe visualizzare un messaggio sulla compatibilità della licenza e sull’aggiornamento. Per risolvere il problema, registrare nuovamente le istanze del servizio utilizzando la seguente sequenza di cmdlet PowerShell:

Get-ConfigRegisteredServiceInstance -ServiceType Broker -Binding XML_HTTPS |
Unregister-ConfigRegisteredServiceInstance
Get-BrokerServiceInstance | where Binding -eq "XML_HTTPS" |
Register-ConfigServiceInstance
<!--NeedCopy-->
Abilitare TLS sui Delivery Controller