Citrix Virtual Apps and Desktops

Abilita TLS sui Delivery Controller

Per impostazione predefinita, sono abilitati sia HTTP che HTTPS. HTTPS utilizza un certificato autofirmato che utilizza l’FQDN del server come nome comune, non considerato attendibile da StoreFront o dai browser web.

Per abilitare TLS su un delivery controller, è necessario:

Richiesta e installazione di un certificato

Per utilizzare TLS, è necessario installare un certificato il cui nome comune o nome alternativo del soggetto corrisponda all’FQDN del server. Se si utilizza un bilanciatore del carico davanti ai delivery controller, includere sia il nome di dominio completo (FQDN) del server sia quello del bilanciatore del carico come nomi alternativi del soggetto. Per ulteriori informazioni, vedere Certificati. Per consentire a StoreFront di connettersi al delivery controller, è necessario utilizzare un algoritmo di firma digitale RSA. StoreFront non supporta i certificati che utilizzano l’algoritmo ECDSA.

Configurazione della porta di ascolto SSL/TLS

Se il componente IIS Windows è installato sullo stesso server, installato come parte di Web Studio e Director, è possibile configurare TLS tramite IIS. Per ulteriori informazioni, vedere Abilitare TLS su Web Studio e Director. In caso contrario, per configurare il certificato tramite PowerShell:

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

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

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

    Sostituzione di 0.0.0.0:443 con un indirizzo IP e una porta specifici, se ne era stato specificato uno nell’associazione esistente.

  3. Trova l’impronta digitale del certificato installato in precedenza. Per visualizzare l’impronta digitale, apri Gestisci certificati computer, individua il certificato, aprilo e vai alla scheda Dettagli .

    Screenshot delle proprietà del certificato che mostra l'impronta digitale

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

      $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 fallirà. Se sono presenti più certificati per il nome host, vengono restituite più impronte digitali concatenate insieme ed è necessario scegliere l’impronta digitale appropriata.

    L’esempio seguente cerca un certificato in base al 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, vengono restituite più impronte digitali concatenate tra loro ed è necessario scegliere l’impronta digitale appropriata.

  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 specifica l’indirizzo IP e la porta. Utilizzando 0.0.0.0:443 questo si applica a tutti gli indirizzi IP. In alternativa è possibile specificare un indirizzo IP specifico.

    • appid - un GUID arbitrario utilizzato per identificare l’applicazione che ha aggiunto il binding. Puoi usare qualsiasi GUID valido, ad esempio {91fe7386-e0c2-471b-a252-1e0a805febac}.

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

    Ad esempio, eseguire il seguente comando per associare il certificato con impronta digitale 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, dovresti configurare tutte le distribuzioni StoreFront e Netscaler Gateway per utilizzare HTTPS anziché HTTP per connettersi al delivery controller.

Configurare l’API OData del servizio Monitor per HTTPS

Il servizio di monitoraggio fornisce API OData v3 e v4 per consentire alle applicazioni Citrix e di terze parti di interrogare i dati. Il direttore si connette al servizio di monitoraggio tramite l’API OData V3. Per configurare le API OData del monitor per HTTPS, completare i seguenti passaggi:

  1. Eseguire il seguente comando PowerShell:

      $serviceGroup = Get-ConfigRegisteredServiceInstance -ServiceType Monitor | Select -First 1 ServiceGroupUid
      Remove-ConfigServiceGroup -ServiceGroupUid $serviceGroup.ServiceGroupUid
      & 'C:\Program Files\Citrix\Monitor\Service\citrix.monitor.exe' -ConfigureFirewall -RequireODataTls OdataPort 443 -RequireODataSdkTls OdataSdkPort 443
      get-MonitorServiceInstance | register-ConfigServiceInstance
      Get-ConfigRegisteredServiceInstance -ServiceType Config | Reset-MonitorServiceGroupMembership
    <!--NeedCopy-->
    
  2. Aprire il file C:\Programmi\Citrix\Monitor\Service\Citrix.Monitor.exe.Config con un editor di testo. Trova l’elemento <add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" /> e cambialo in <add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.

Configurare le suite di cifratura

L’elenco dell’ordine delle suite crittografiche deve includere le suite crittografiche TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 (o entrambe); e queste suite crittografiche devono precedere tutte le suite crittografiche TLS_DHE_ .

  1. Utilizzando l’Editor Criteri di gruppo di Microsoft, vai a Configurazione computer > Modelli amministrativi > Rete > Impostazioni di configurazione SSL.
  2. Modifica la policy “Ordine suite crittografica SSL”. Per impostazione predefinita, questa policy è impostata su “Non configurato”. Impostare questo criterio su Abilitato.
  3. Disporre le suite nell’ordine corretto; rimuovere tutte le suite di cifratura che non si desidera utilizzare.

Assicurarsi che TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384o TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 preceda qualsiasi suite di cifratura TLS_DHE_ .

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

Applica solo il traffico HTTPS

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

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

Esiste un valore DWORD del registro corrispondente XmlServicesEnableSsl che puoi creare per ignorare il traffico HTTPS. Assicurarsi che non sia impostato su 0.

Cambia le porte HTTP o HTTPS

Per impostazione predefinita, il servizio XML sul controller ascolta sulla porta 80 per il traffico HTTP e sulla porta 443 per il traffico HTTPS. Sebbene sia possibile utilizzare porte non predefinite, occorre tenere presente i rischi per la sicurezza derivanti dall’esposizione di un controller a reti non attendibili. È preferibile implementare un server StoreFront autonomo piuttosto che modificare le 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>
<!--NeedCopy-->

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 di PowerShell:

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