Abilitare TLS sui Delivery Controller
Per impostazione predefinita, sia HTTP che HTTPS sono abilitati. HTTPS utilizza un certificato autofirmato che usa l’FQDN del server come nome comune, il quale non è considerato attendibile da StoreFront™ o dai browser web.
Per abilitare TLS su un delivery controller™, è necessario:
-
Ottenere, installare e registrare un certificato server su tutti i Delivery Controller. Per i dettagli, vedere Richiesta e installazione di un certificato.
-
Configurare una porta con il certificato TLS. Per i dettagli, vedere Installazione di un certificato.
- Abilitare HTTPS per il servizio di monitoraggio.
-
Applicare il traffico HTTPS disabilitando HTTP. Per maggiori dettagli, vedere Applicare solo il traffico HTTPSApplicare solo il traffico HTTPS.
- Facoltativamente, è possibile modificare le porte che il Controller utilizza per l’ascolto del traffico HTTP e HTTPS. Per maggiori dettagli, vedere Modificare le porte HTTP o HTTPS.
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 load balancer davanti ai delivery controller, includere sia l’FQDN del server che quello del load balancer come Nomi alternativi del soggetto. Per maggiori informazioni, vedere Certificati. Affinché StoreFront si connetta 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 Windows IIS è installato sullo stesso server, 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:
-
Per verificare se è presente un certificato associato esistente, aprire un prompt dei comandi ed eseguire
netsh http show sslcert:netsh http show sslcert <!--NeedCopy--> -
Se esiste un’associazione, eliminarla.
netsh http delete sslcert ipport=0.0.0.0:443 <!--NeedCopy-->Sostituire
0.0.0.0:443con un indirizzo IP e una porta specifici se ne era stato specificato uno nell’associazione esistente. -
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.

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 fallirà. Se ci sono più certificati per il nome host, verranno restituite più identificazioni personali concatenate e sarà necessario scegliere quella appropriata.
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 ci sono più certificati con il nome descrittivo specificato, verranno restituite più identificazioni personali concatenate e sarà necessario scegliere quella appropriata.
-
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’uso di 0.0.0.0:443 lo applica a tutti gli indirizzi IP. È possibile invece specificare un indirizzo IP specifico. -
certhash: L’identificazione personale (thumbprint) 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 il
appidspecifico associato al servizio Broker anziché un GUID arbitrario.Per trovare il
appidcorretto per il servizio Citrix Broker:-
Aprire una finestra dei comandi PowerShell come amministratore ed eseguire il seguente comando:
Get-WmiObject -Class Win32_Product | Select-String -Pattern "broker" <!--NeedCopy--> -
Individuare l’IdentifyingNumber (GUID) per il servizio Citrix Broker nell’output (ad esempio,
{D333C884-187F-447C-8C67-463F33989C8F}). Utilizzare questo GUID per il parametroappid.
-
-
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 in quanto 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
bc96f958848639fd101a793b87915d5f2829b0b6alla porta443su 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, configurare qualsiasi distribuzioni StoreFront e i 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. Director si connette al servizio di monitoraggio utilizzando l’API OData V3. Per configurare le API OData del monitor per HTTPS, completare i seguenti passaggi:
-
Eseguire il seguente 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--> -
Aprire il file
C:\Program Files\Citrix\Monitor\Service\Citrix.Monitor.exe.Configcon un editor di testo. Trovare l’elemento<add key="owin:baseAddress" value="http://localhost/citrix/monitor/odata/v4" />e modificarlo in<add key="owin:baseAddress" value="https://localhost/citrix/monitor/odata/v4" />.
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_.
- Utilizzando l’Editor Criteri di gruppo di Microsoft, accedere a Configurazione computer > Modelli amministrativi > Rete > Impostazioni di configurazione SSL.
- Modificare il criterio “Ordine suite di crittografia SSL”. Per impostazione predefinita, questo criterio è impostato su “Non configurato”. Impostare questo criterio su Abilitato.
- 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.
Imponi solo traffico HTTPS
Si consiglia di configurare il servizio XML in modo che ignori il traffico HTTP.
- Eseguire
regedit - Aprire
HKLM\Software\Citrix\DesktopServer\ - Creare un nuovo valore DWORD con il nome
XmlServicesEnableNonSsle impostarlo su 0. - 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>
<!--NeedCopy-->
Dove:
-
<http-port>è il numero di porta per il traffico HTTP -
<https-port>è il numero di porta per il traffico HTTPS.
Nota:
Dopo aver modificato una porta, Studio potrebbe visualizzare un messaggio sulla compatibilità e l’aggiornamento della licenza. 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-->