- Configure StoreFront using the configuration files
- Configure Citrix Receiver for Web sites using the configuration files
This article describes additional configuration tasks that cannot be carried out using the Citrix StoreFront management console.
StoreFront provides the option to digitally sign ICA files so that versions of Citrix Receiver that support this feature can verify that the file originates from a trusted source. When file signing is enabled in StoreFront, the ICA file generated when a user starts an application is signed using a certificate from the personal certificate store of the StoreFront server. ICA files can be signed using any hash algorithm supported by the operating system running on the StoreFront server. The digital signature is ignored by clients that do not support the feature or are not configured for ICA file signing. If the signing process fails, the ICA file is generated without a digital signature and sent to Citrix Receiver, the configuration of which determines whether the unsigned file is accepted.
To be used for ICA file signing with StoreFront, certificates must include the private key and be within the allowed validity period. If the certificate contains a key usage extension, this must allow the key to be used for digital signatures. Where an extended key usage extension is included, it must be set to code signing or server authentication.
For ICA file signing, Citrix recommends using a code signing or SSL signing certificate obtained from a public certification authority or from your organization's private certification authority. If you are unable to obtain a suitable certificate from a certification authority, you can either use an existing SSL certificate, such as a server certificate, or create a new root certification authority certificate and distribute it to users' devices.
ICA file signing is disabled by default in stores. To enable ICA file signing, you edit the store configuration file and execute Windows PowerShell commands. For more information about enabling ICA file signing in Citrix Receiver, see ICA File Signing to protect against application or desktop launches from untrusted servers.
<certificateManager> <certificates> <clear /> <add ... /> ... </certificates> </certificateManager>
<certificateManager> <certificates> <clear /> <add id="certificateid" thumb="certificatethumbprint" /> <add ... /> ... </certificates> </certificateManager>
Where certificateid is a value that helps you to identify the certificate in the store configuration file and certificatethumbprint is the digest (or thumbprint) of the certificate data produced by the hash algorithm.
<icaFileSigning enabled="False" certificateId="" hashAlgorithm="sha1" />
Add-PSSnapin Citrix.DeliveryServices.Framework.Commands $certificate = Get-DSCertificate "certificatethumbprint" Add-DSCertificateKeyReadAccess -certificate $certificates -accountName “IIS APPPOOL\Citrix Delivery Services Resources”
Where certificatethumbprint is the digest of the certificate data produced by the hash algorithm.
By default, requests from StoreFront to a server providing resources for a store time out after 30 seconds. The server is considered unavailable after two unsuccessful communication attempts. To change these settings, you edit the configuration file for the store.
<farmset ... serverCommunicationAttempts="2" communicationTimeout="30" connectionTimeout="6" ... >
If you enable Citrix Receiver for Web site users to change their passwords at any time, local users whose passwords are about to expire are shown a warning when they log on. By default, the notification period for a user is determined by the applicable Windows policy setting. To set a custom notification period for all users, you edit the configuration file for the authentication service.
<explicitBL ... allowUserPasswordChange="Always" showPasswordExpiryWarning="Windows" passwordExpiryWarningPeriod="10" ... >
By default, file type association is enabled in stores so that content is seamlessly redirected to users' subscribed applications when they open local files of the appropriate types. To disable file type association, you edit the store configuration file.
<farmset ... enableFileTypeAssociation="on" ... >
Socket pooling is disabled by default in stores. When socket pooling is enabled, StoreFront maintains a pool of sockets, rather than creating a socket each time one is needed and returning it to the operating system when the connection is closed. Enabling socket pooling enhances performance, particularly for Secure Sockets Layer (SSL) connections. To enable socket pooling, you edit the store configuration file.
<farmset ... pooledSockets="off" ... >
When Citrix Receiver users log on to a store, no title text is displayed on the logon dialog box, by default. You can display the default text “Please log on” or compose your own custom message. To display and customize the title text on the Citrix Receiver logon dialog box, you edit the files for the authentication service.
@* @Heading("ExplicitAuth:AuthenticateHeadingText") *@
Citrix Receiver users see the default title text “Please log on”, or the appropriate localized version of this text, when they log on to stores that use this authentication service.
<data name="AuthenticateHeadingText" xml:space="preserve"> <value>My Company Name</value> </data>
To modify the Citrix Receiver logon dialog box title text for users in other locales, edit the localized files ExplicitAuth.languagecode.resx, where languagecode is the locale identifier.
By default, Citrix Receiver for Windows stores users' passwords when they log on to StoreFront stores. To prevent Citrix Receiver for Windows, but not Citrix Receiver for Windows Enterprise, from caching users' passwords, you edit the files for the authentication service.
@SaveCredential(id: @GetTextValue("saveCredentialsId"), labelKey: "ExplicitFormsCommon:SaveCredentialsLabel", initiallyChecked: ControlValue("SaveCredentials"))
<!-- @SaveCredential(id: @GetTextValue("saveCredentialsId"), labelKey: "ExplicitFormsCommon:SaveCredentialsLabel", initiallyChecked: ControlValue("SaveCredentials")) -->
Citrix Receiver for Windows users must enter their passwords every time they log on to stores that use this authentication service. This setting does not apply to Citrix Receiver for Windows Enterprise.
Using Registry Editor incorrectly can cause serious problems that can require you to reinstall the operating system. Citrix cannot guarantee that problems resulting from incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Make sure you back up the registry before you edit it.
By default, Citrix Receiver for Windows automatically populated the last username entered. To supress population of the username field, edit the registry on the user device:
To improve performance when some of the servers providing resources become unavailable, StoreFront temporarily bypasses servers that fail to respond. While a server is being bypassed, StoreFront ignores that server and does not use it to access resources. Use these parameters to specify the duration of the bypass behavior:
Considerations when specifying allFailedBypassDuration
Setting a larger allFailedBypassDuration reduces the impact of unavailability of a particular Delivery Controller; however, it has the negative effect that resources from this Delivery Controller are unavailable to users for the specified duration after a temporary network outage or server unavailability. Consider the use of larger allFailedBypassDuration values when many Delivery Controllers have been configured for a Store, particularly for nonbusiness-critical Delivery Controllers.
Setting a smaller allFailedBypassDuration increases the availability of resources served by that Delivery Controller but increases the possibility of client-side timeouts if many Delivery Controllers are configured for a store and several of them become unavailable. It is worth keeping the default 0-minute value when not many farms are configured and for business-critical Delivery Controllers.
To change the bypass parameters for a Store
<farm name=”deliverycontrollername” ... allFailedBypassDuration=”0” ... >