Diffie-Hellman parameters generation and achieving PFS with DHE

The Diffie-Hellman (DH) key exchange is a way for two parties involved in an SSL transaction to agree upon a shared secret over an insecure channel. These parties have no prior knowledge about each other. This secret can be converted into cryptographic keying material for symmetric key cipher algorithms that require such a key exchange.

This feature is disabled by default. Configured the feature to support ciphers that use DH as the key exchange algorithm.


Generating 2048-bit DH parameters might take a long time (up to 30 minutes).

Generate DH parameters by using the CLI

At the command prompt, type the following command:

create ssl dhparam <dhFile> [<bits>] [-gen (2 | 5)]


create ssl dhparam Key-DH-1 512 -gen 2

Generate DH parameters by using the GUI

Navigate to Traffic Management > SSL and, in the Tools group, select Create Diffie-Hellman (DH) key, and Configure SSL DH Param.


For information about DH parameters, see Diffie-Hellman parameters.

Achieve perfect forward secrecy with DHE

Generating DH parameters is a CPU-intensive operation. In earlier releases, parameter generation, on a VPX appliance, took a long time because it was done in the software. Parameter generation is optimized by setting the dhKeyExpSizeLimit parameter. You can set this parameter for an SSL virtual server or an SSL profile and then bind the profile to a virtual server.

You can maintain perfect forward secrecy (PFS) on Citrix ADC MPX appliances by setting DH count equal to zero. As a result, DH parameters are generated for each transaction (minimum DHcount is 0) on Citrix ADC MPX appliances. Thee parameters are generated without a significant drop in performance, because the operation is optimized. Earlier, the minimum DH count allowed was 500. That is, you could not regenerate the key for up to 500 transactions.

On a Citrix ADC VPX appliance, you can generate DH parameters for every 500 transaction at the minimum (DHcount = 500). If you set DHcount equal to 0, then the DH parameters are not regenerated.


You cannot achieve PFS in VPX today with DH ciphers.

Optimize DH parameters generation by using the CLI

At the command prompt, type commands 1 and 2, or type command 3:

1.  add ssl profile <name> [-sslProfileType ( BackEnd | FrontEnd )] [-dhCount <positive_integer>] [-dh ( ENABLED | DISABLED) -dhFile <string>] [-dhKeyExpSizeLimit ( ENABLED | DISABLED)]
2.  set ssl vserver <vServerName> [-sslProfile <string>]
3.  set ssl vserver <vServerName> [-dh ( ENABLED | DISABLED) -dhFile <string>] [-dhCount <positive_integer>] [-dhKeyExpSizeLimit ( ENABLED | DISABLED )]

Optimize DH parameters generation by using the GUI

  1. Navigate to Traffic Management > Load Balancing > Virtual Servers, and open a virtual server.
  2. In the SSL Parameters section, select Enable DH Key Expire Size Limit.
Diffie-Hellman parameters generation and achieving PFS with DHE