NetScaler 10.5 SSL Offload and Acceleration
NetScaler 10.5 SSL Offload and Acceleration
NetScaler 10.5 SSL Offload and Acceleration
Contents
Configuring Services........................................................................
12
15
18
22
Configuring an SSL Virtual Server for Secure Hosting of Multiple Sites ............
25
28
32
34
38
42
43
48
50
56
57
60
62
65
66
71
74
76
77
79
81
85
87
90
91
92
93
94
101
103
104
106
107
108
110
112
114
116
118
Configuring Close-Notify...................................................................
121
124
127
130
136
138
141
146
147
151
152
155
157
159
163
167
169
171
172
173
175
Configuring SSL Acceleration with HTTP on the Front End and SSL on the Back
End ............................................................................................
179
180
181
182
183
184
186
190
FIPS .................................................................................................
196
197
201
202
204
206
209
213
218
221
222
223
Prerequisites ................................................................................
225
226
229
230
235
238
Limitations...................................................................................
248
Appendix .....................................................................................
249
Troubleshooting ..................................................................................
251
252
253
show ns feature
Example
1)
2)
3)
.
.
.
9)
SSL Offloading
.
.
.
24) NetScaler Push
Done
Acronym
------WL
SP
LB
SSL
push
Status
-----OFF
ON
ON
ON
OFF
show ns feature
No parameters provided in this topic or the command has no parameters. View
description(s) in command reference Top
Configuring Services
On the NetScaler appliance, a service represents a physical server or an application on a
physical server. Once configured, services are in the disabled state until the appliance can
reach the physical server on the network and monitor its status.
Example
Done
Configuring Services
10
Configuring Services
show service
No parameters provided in this topic or the command has no parameters. View
description(s) in command reference Top
11
Example
12
show lb vserver
name
13
14
Example
15
Weight: 1
16
show lb vserver
name
Name of the virtual server. If no name is provided, statistical data of all configured
virtual servers is displayed.
View description(s) in command reference Top
unbind lb vserver
name
Name for the virtual server. Must begin with an ASCII alphanumeric or underscore (_)
character, and must contain only ASCII alphanumeric, underscore, hash (#), period (.),
space, colon (:), at sign (@), equal sign (=), and hyphen (-) characters. Can be changed
after the virtual server is created.
CLI Users: If the name includes one or more spaces, enclose the name in double or single
quotation marks (for example, "my vserver" or 'my vserver').
serviceName
Name of the service.
View description(s) in command reference Top
17
MD5
SHA-1
SHA-224
SHA-256
SHA-384
SHA-512
18
4096-bit client certificate (if client authentication is enabled on the virtual server)
2048-bit client certificate (if client authentication is enabled on the virtual server)
Example
> add ssl certKey sslckey -cert server_cert.pem -key server_key.pem -password ssl -expiryMonitor ENABLED Done
Note: For FIPS appliances, replace -key with -fipskey
> show ssl certKey sslckey
Name: sslckey
Status: Valid, Days to expiration:8418
Version: 3
Serial Number: 01
Signature Algorithm: md5WithRSAEncryption
Issuer: C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.root.com
Validity
Not Before: Jul 15 02:25:01 2005 GMT
Not After : Nov 30 02:25:01 2032 GMT
Subject: C=US,ST=SJ,L=SJ,O=NS,OU=NSSSL,CN=www.server.com
Public Key Algorithm: rsaEncryption
Public Key size: 1024
Done
19
20
21
Example
22
23
24
Example
25
26
27
28
Example
The following example is for an end-to-end DTLS configuration:
>
>
>
>
>
>
>
29
Server Certificate
1 configured cipher:
1)
30
SSLv2
SSLv3
TLSv1
TLSv1.1
TLSv1.2
SSLv2Redirect
SSLv2URL
SNI
Secure renegotiation
31
DTLS Profile
A DTLS profile with the default settings is automatically bound to a DTLS virtual server.
However, you can create a new DTLS profile with specific settings to suit your requirement.
Example
> add dtlsProfile dtls1 -helloVerifyRequest ENABLED -maxretryTime 4
Done
> show dtlsProfile dtls1
1)
Name: dtls1
PMTU Discovery: DISABLED
Max Record Size: 1460 bytes
Max Retry Time: 4 sec
Hello Verify Request: ENABLED
Terminate Session: DISABLED
Max Packet Count: 120 bytes
Done
32
DTLS Profile
after the profile is created.
View description(s) in command reference Top
33
Imports from both HTTP and HTTPS servers are supported. However, the import fails if the
file is on an HTTPS server that requires client certificate authentication for access.
Note: The import command is not stored in the configuration (ns.conf) file, because
reimporting the file after a restart might cause an error.
Example
import ssl certfile my-certfile http://www.example.com/file_1
> show ssl certfile
Name : my-certfile
URL : http://www.example.com/file_1
To remove a certificate file, use the rm ssl certFile command, which accepts only the
<name> argument.
34
Example
import ssl keyfile my-keyfile http://www.example.com/key_file
> show ssl keyfile
Name : my-keyfile
URL : http://www.example.com/key_file
To remove a key file, use the rm ssl keyFile command, which accepts only the <name>
argument.
Example
import ssl crlfile my-crlfile http://www.example.com/crl_file
> show ssl crlfile
Name : my-crlfile
URL : http://www.example.com/crl_file
To remove a CRL file, use the rm ssl crlFile command, which accepts only the <name>
argument.
Example
import ssl dhfile my-dhfile http://www.example.com/dh_file
> show ssl dhfile
Name : my-dhfile
URL : http://www.example.com/dh_file
To remove a DH file, use the rm ssl dhFile command, which accepts only the <name>
argument.
35
36
37
SSL Profiles
You can use an SSL profile to specify how a NetScaler ADC processes SSL traffic. The profile
is a collection of SSL parameter settings for SSL entities, such as virtual servers, services,
and service groups, and offers ease of configuration and flexibility. You are not limited to
configuring only one set of global parameters. You can create multiple sets (profiles) of
global parameters and assign different sets to different SSL entities. SSL profiles are
classified into two categories:
Front end profiles, containing parameters applicable to the front-end entity. That is,
they apply to the entity that receives requests from a client.
Backend profiles, containing parameters applicable to the back-end entity. That is,
they apply to the entity that sends client requests to a server.
Unlike a TCP or HTTP profile, an SSL profile is optional. Therefore, there is no default SSL
profile. The same profile can be reused across multiples entities. If an entity does not have
a profile attached, the values set at the global level apply. For dynamically learned
services, current global values apply.
The following table lists the parameters that are part of each profile.
Front end profile
Backend profile
cipherRedirect, cipherURL
denySSLReneg
clearTextPort*
encryptTriggerPktCount
clientAuth, clientCert
nonFipsCiphers
denySSLReneg
pushEncTrigger
pushEncTriggerTimeout
dropReqWithNoHostHeader
pushFlag
encryptTriggerPktCount
quantumSize
eRSA, eRSACount
serverAuth
insertionEncoding
commonName
nonFipsCiphers
sessReuse, sessTimeout
pushEncTrigger
SNIEnable
pushEncTriggerTimeout
ssl3
pushFlag
sslTriggerTimeout
quantumSize
strictCAChecks
redirectPortRewrite
tls1
sendCloseNotify
sessReuse, sessTimeout
SNIEnable
38
SSL Profiles
ssl3
sslRedirect
sslTriggerTimeout
strictCAChecks
tls1, tls11, tls12
* The clearTextPort parameter applies only to an SSL virtual server.
An error message appears if you try to set a parameter that is not part of the profile (for
example, if you try to set the clientAuth parameter in a backend profile).
Some SSL parameters, such as CRL memory size, OCSP cache size, UndefAction Control, and
UndefAction Data, are not part of any of the above profiles, because these parameters are
independent of entities.
An SSL profile supports the following operations:
AddCreates an SSL profile on the NetScaler ADC. Specify whether the profile is front
end or backend. Front end is the default.
UnsetSets the specified parameters to their default values. If you do not specify any
parameters, an error message appears. If you unset a profile on an entity, the profile is
unbound from the entity.
RemoveDeletes a profile. A profile that is being used by any entity cannot be deleted.
Clearing the configuration deletes all the entities. As a result, the profiles are also
deleted.
ShowDisplays all the profiles that are available on the NetScaler ADC . If a profile
name is specified, the details of that profile are displayed. If an entity is specified, the
profiles associated with that entity are displayed.
39
SSL Profiles
Examples
1. Adding a front end (default) profile:
> add sslprofile p1
Done
2. Adding a backend profile:
> add sslprofile p2 -sslprofileType backend -tls1 disabled
Done
3. Enabling settings on a backend profile:
> set sslprofile p2 -serverAuth eNABLED
Done
4. Enabling settings on a frontend profile:
> set sslprofile p1 -clientauth eNABLED -clientcert optional
Done
sh ssl profile p1
1)
Configuration for Front-End SSL profile
Name: p1
DH: DISABLED
Ephemeral RSA: ENABLED
Refresh Count: 0
Session Reuse: ENABLED
Timeout: 120 seconds
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
Client Auth: ENABLED Client Cert Required: Optional
SSL Redirect: DISABLED
SNI: DISABLED
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout:
1 ms
Send Close-Notify: YES
Push flag:
0x0 (Auto)
Deny SSL Renegotiation
NO
SSL quantum size:
8 kB
Strict CA checks:
NO
Encryption trigger timeout
100 mS
Encryption trigger packet count:
45
Subject/Issuer Name Insertion Format: Unicode
Strict Host Header check for SNI enabled SSL sessions:
NO
Done
SSL Profiles
Session Reuse: ENABLED
Timeout: 120 seconds
Non FIPS Ciphers: DISABLED
Cipher Redirect: DISABLED
Client Auth: DISABLED
SSL Redirect: DISABLED
SNI: DISABLED
SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
PUSH encryption trigger timeout:
1 ms
Send Close-Notify: YES
Push flag:
0x0 (Auto)
Deny SSL Renegotiation
NO
SSL quantum size:
8 kB
Strict CA checks:
NO
Encryption trigger timeout
100 mS
Encryption trigger packet count:
45
Subject/Issuer Name Insertion Format: Unicode
Strict Host Header check for SNI enabled SSL sessions:
NO
Done
6. Deleting a profile:
> rm sslprofile p1
Done
7. Binding a profile to a virtual server:
> set ssl vserver v1 -sslprofile p3
Done
8. Unbinding a profile from a virtual server:
>unset ssl vserver v1 -sslprofile
Done
41
Managing Certificates
An SSL certificate, which is an integral part of any SSL transaction, is a digital data form
(X509) that identifies a company (domain) or an individual. The certificate has a public key
component that is visible to any client that wants to initiate a secure transaction with the
server. The corresponding private key, which resides securely on the NetScaler appliance, is
used to complete asymmetric key (or public key) encryption and decryption.
You can obtain an SSL certificate and key in either of the following ways:
42
43
> create ssl certreq csreq1 -keyfile ramp -keyform PEM -countryName IN -stateName Karnataka -localityNam
44
45
46
47
48
dsa -in <PKCS#8 Key Filename> -des3 -out <encrypted Key Filename>
49
Root-CA certificates
Intermediate-CA certificates
End-user certificates
server certificates
client certificates
Before generating a certificate, create a private key and use that to create a certificate
signing request (CSR) on the appliance. Then, instead of sending the CSR out to a CA, use
the NetScaler CA Tools to generate a certificate.
For details on how to create a private key and a CSR, see Obtaining a Certificate from a
Certificate Authority.
50
51
52
53
54
55
56
Note: Intermediate certificate files are created for each intermediate certificate
with the name "<certificatebundlename>.pem_ic<n>" where n is between 1 and 9.
For example, bundle.pem_ic1, where bundle is the name of the certificate set
and ic1 is the first intermediate certificate in the set.
Bundle option is selected.
No more than nine intermediate certificates are present in the file.
The file is parsed and the server certificate, intermediate certificates, and server key (if
present) are identified. First, the server certificate and key are added. Then, the
intermediate certificates are added, in the order in which they were added to the file, and
linked accordingly.
An error is reported if any of the following conditions exist:
57
A certificate file for one of the intermediate certificates already exists on the
appliance.
Intermediate certificates are not in placed in the file in the same order as they are
created.
Example
In the following example, the certificate set (bundle.pem) contains the following files:
> add ssl certKey bundle -cert bundle.pem -key bundle.pem -bundle yes
> show ssl certkey
1) Name: bundle
Cert Path: /nsconfig/ssl/bundle.pem
Format: PEM
Status: Valid, Days to expiration:10415
Certificate Expiry Monitor: DISABLED
2) Name: bundle_ic1
Cert Path: /nsconfig/ssl/bundle.pem_ic1
Format: PEM
Status: Valid, Days to expiration:10415
Certificate Expiry Monitor: DISABLED
3) Name: bundle_ic2
Cert Path: /nsconfig/ssl/bundle.pem_ic2
Format: PEM
Status: Valid, Days to expiration:10415
Certificate Expiry Monitor: DISABLED
4) Name: bundle_ic3
Cert Path: /nsconfig/ssl/bundle.pem_ic3
Format: PEM
Status: Valid, Days to expiration:10415
Certificate Expiry Monitor: DISABLED
Done
58
59
Example
60
61
Examples
There are 3 certificates: c1, c2, and c3. Certificate c1 is signed by c2, c2 is signed by c3,
and c3 is the root CA certificate. The following examples illustrate the output of the show
ssl certchain c1 command in different scenarios.
1. Scenario 1:
62
63
64
65
Example
66
Example
67
Example
68
70
If the server certificate is a normal certificate and not a global site certificate, the
export client and server complete the SSL handshake and uses 40-bit encryption for
data transfer.
If the server certificate is a global site certificate (and if the export client feature is
supported by the browser), the export client automatically upgrades to 128-bit
encryption for data transfer.
If the server certificate is a global site certificate, the server sends its certificate, along
with the accompanying intermediate-CA certificate. The browser first validates the
intermediate-CA certificate by using one of the Root-CA certificates that are normally
included in web browsers. Upon successful validation of the intermediate-CA certificate,
the browser uses the intermediate-CA certificate to validate the server certificate. Once
the server is successfully validated, the browser renegotiates (upgrades) the SSL connection
to 128-bit encryption.
With Microsoft's Server Gated Cryptography (SGC), if the Microsoft IIS server is configured
with an SGC certificate, export clients that receive the certificate renegotiate to
use128-bit encryption.
71
The individual PEM encoded certificate will begin with the header ----- BEGIN
CERTIFICATE----- and end with the trailer -----END CERTIFICATE-----.
2. Use an SFTP client to transfer the server certificate, intermediate-CA certificate, and
server-key to the NetScaler.
3. Use the following OpenSSL command to identify the server certificate and
intermediate-CA certificate from the two separate files.
Note: You can launch the OpenSSL interface from the configuration utility. In the
navigation pane, click SSL. In the details pane, under Tools, click Open SSL interface.
> openssl x509 -in >path of the server certificate file< -text
X509v3 Basic Constraints:
CA:FALSE
Netscape Cert Type:
SSL Server
73
74
75
76
77
78
Example
Serial Number: 00
Revocation Date:Jun 15 10:51:16 2010 GMT
Done
79
80
set ssl crl <crlName> [-refresh ( ENABLED | DISABLED )] [-CAcert <string>] [-url <URL |
-server <ip_addr|ipv6_addr>] [-method HTTP | (LDAP [-baseDN <string>] [-bindDN
<string>] [-scope ( Base | One )] [-password <string>] [-binary ( YES | NO )])] [-port
<port>] [-interval <interval>]
Example
Set CRL crl1 -refresh enabled -method ldap -inform DER -CAcert ca1 -server 10.102.192.192 -port 389 -scope
set ssl crl crl1 -refresh enabled -method http -cacert ca1 -port 80 -time 00:10 -url http://10.102.192.192/crl
> sh crl
1)
81
Name: crl1
Status: Valid,
Days to expiration: 355
CRL Path: /var/netscaler/ssl/crl1
Format: PEM
CAcert: ca1
Refresh: ENABLED
Method: HTTP
URL: http://10.102.192.192/crl/ca1.crl
Port:80
Refresh Time: 00:10
Last Update: Successful, Date:Tue Jul 6 14:38:13 2010
82
83
84
Synchronizing CRLs
The NetScaler appliance uses the most recently distributed CRL to prevent clients with
revoked certificates from accessing secure resources.
If CRLs are updated often, the NetScaler needs an automated mechanism to fetch the latest
CRLs from the repository. You can configure the NetScaler to update CRLs automatically at
a specified refresh interval.
The NetScaler maintains an internal list of CRLs that need to be updated at regular
intervals. At these specified intervals, the appliance scans the list for CRLs that need to be
updated, connects to the remote LDAP server or HTTP server, retrieves the latest CRLs, and
then updates the local CRL list with the new CRLs.
Note: If CRL check is set to mandatory when the CA certificate is bound to the virtual
server, and the initial CRL refresh fails, all client-authentication connections with the
same issuer as the CRL are rejected as REVOKED until the CRL is successfully refreshed.
You can specify the interval at which the CRL refresh should be carried out. You can also
specify the exact time.
85
Synchronizing CRLs
86
The following table lists the results of the possible combinations for a handshake involving a
revoked certificate.
Table 1. Result of a Handshake with a Client Using a Revoked Certificate
Rule for CRL Check
Result of a
Handshake with a
Revoked
Certificate
Optional
Optional
Missing
Success
Optional
Mandatory
Missing
Success
Optional
Mandatory
Present
Failure
Mandatory
Optional
Missing
Success
Mandatory
Mandatory
Missing
Failure
Mandatory
Optional
Present
Success
Mandatory
Mandatory
Present
Failure
Optional/Mandatory
Optional
Expired
Success
Optional/Mandatory
Mandatory
Expired
Failure
Note:
87
In the output of the sh ssl vserver command, OCSP check: optional implies
that a CRL check is also optional. The CRL check settings are displayed in the output of
the sh ssl vserver command only if CRL check is set to mandatory. If CRL check is
set to optional, the CRL check details do not appear.
Example
bind ssl vs v1 -certkeyName ca -CA -crlCheck mandatory
sh ssl vserver
> sh ssl vs v1
Advanced SSL configuration for VServer v1:
DH: DISABLED
Ephemeral RSA: ENABLED Refresh Count: 0
Session Reuse: ENABLED Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: ENABLED Client Cert Required: Mandatory
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
1) CertKey Name: ca CA Certificate CRLCheck: Mandatory CA_Name Sent
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
88
89
90
91
92
93
Example
add ssl ocspResponder ocsp_responder1 -url "http:// www.myCA.org:80/ocsp/" -cache ENABLED -cacheTimeo
bind ssl certKey ca_cert -ocspResponder ocsp_responder1 -priority 1
bind ssl vserver vs1 -certkeyName ca_cert -CA -ocspCheck Mandatory
sh ocspResponder ocsp_responder1
1)Name: ocsp_responder1
URL: http://www.myCA.org:80/ocsp/, IP: 192.128.22.22
Caching: Enabled
Timeout: 30 minutes
Batching: 8 Timeout: 100 mS
HTTP Request Timeout: 100mS
Request Signing Certificate: sign_cert
Response Verification: Full, Certificate: responder_cert
ProducedAt Time Skew: 300 s
Nonce Extension: Enabled
Client Cert Insertion: Enabled
Done
94
95
97
98
99
100
MD5
SHA-1
SHA-224
SHA-256
SHA-384
SHA-512
101
4096-bit CA certificate
102
2048-bit client certificate (if client authentication is enabled on the virtual server)
103
Enabling Client-Certificate-Based
Authentication
By default, client authentication is disabled on the NetScaler appliance, and all SSL
transactions proceed without authenticating the client. You can configure client
authentication to be either optional or mandatory as part of the SSL handshake.
If client authentication is optional, the NetScaler requests the client certificate but
proceeds with the SSL transaction even if the client presents an invalid certificate. If client
authentication is mandatory, the NetScaler terminates the SSL handshake if the SSL client
does not provide a valid certificate.
Caution: Citrix recommends that you define proper access control policies before
changing client-certificate-based authentication check to optional.
Note: Client authentication is configured for individual SSL virtual servers, not globally.
Example
104
1)
1)
1)
105
106
107
Example
> set ssl vserver vs-server -dh ENABLED -dhFile /nsconfig/ssl/ns-server.cert -dhCount 1000
Done
> show ssl vserver vs-server
Advanced SSL configuration for VServer vs-server:
DH: ENABLED
Ephemeral RSA: ENABLED
Refresh Count: 1000
Session Reuse: ENABLED
Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1)
108
109
Example
110
111
Example
112
1)
Server Certificate
1)
113
set ssl vserver <vServerName> -cipherRedirect < ENABLED | DISABLED> -cipherURL <
URL>
Example
114
1)
1)
Server Certificate
115
Example
Server Certificate
116
117
set ssl vserver <vServerName> -ssl2 ( ENABLED | DISABLED ) -ssl3 ( ENABLED | DISABLED
) -tls1 ( ENABLED | DISABLED ) -tls11 ( ENABLED | DISABLED ) -tls12 ( ENABLED |
DISABLED )
Example
1)
1)
118
1 bound certificate:
CertKey Name: mycert Server Certificate
1 configured cipher:
Cipher Name: DEFAULT
Description: Predefined Cipher Alias
120
Configuring Close-Notify
A close-notify is a secure message that indicates the end of SSL data transmission. A
close-notify setting is required at the global level. This setting applies to all virtual servers,
services, and service groups. For information about the global setting, see Configuring
Advanced SSL Settings.
In addition to the global setting, you can set the close-notify parameter at the virtual
server, service, or service group level. You therefore have the flexibility of setting the
parameter for one entity and unsetting it for another entity. However, make sure that you
set this parameter at the global level. Otherwise, the setting at the entity level does not
apply.
121
Configuring Close-Notify
122
Configuring Close-Notify
View description(s) in command reference Top
123
TLS1-ECDHE-RSA-RC4-SHA
TLS1-ECDHE-RSA-DES-CBC3-SHA
TLS1-ECDHE-RSA-AES128-SHA
TLS1-ECDHE-RSA-AES256-SHA
Because of its smaller key size, Elliptic Curve Cryptography (ECC) is especially useful in a
mobile (wireless) environment or an interactive voice response environment, where every
millisecond is important. Smaller key sizes result in power, memory, bandwidth, and
computational cost savings.
The following ECC curves are supported:
P_256
P_384
P_224
P_521
Note:
On the MPX platform, ECC curves 224 and 521 are not supported with the TLS1.2
protocol.
If you upgrade from a build earlier than release 10.1 build 121.10, you must explicitly
bind ECC curves to your existing SSL virtual servers. The curves are bound by default to
any virtual servers that you create after the upgrade.
You can bind an ECC curve to an SSL virtual server or front end service. If you bind an ECC
curve to a back end service, the error Operation not permitted appears. By default all
four curves are bound, in the following order: P_256, P_384,P_224,P_521. To change the
order, you must first unbind all the curves, and then bind them in the desired order.
124
Example
unbind ssl vs v1 eccCurvename ALL
bind ssl vserver v1 -eccCurveName P_224
> sh ssl vserver v1
Advanced SSL configuration for VServer v1:
DH: DISABLED
Ephemeral RSA: ENABLED
Refresh Count: 0
Session Reuse: ENABLED
Timeout: 120 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
ClearText Port: 0
Client Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1.0: ENABLED TLSv1.1: DISABLED TLSv1.2: DISABLED
Push Encryption Trigger: Always
Send Close-Notify: YES
ECC Curve: P_224
1) Cipher Name: DEFAULT
Description: Predefined Cipher Alias
Done
125
126
Configuring a Common Name on an SSL Service or Service Group for Server Certificate Authentication
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1) CertKey Name: cacert
CA Certificate
OCSPCheck: Optional
128
Configuring a Common Name on an SSL Service or Service Group for Server Certificate Authentication
View description(s) in command reference Top
129
Drop requests if the client initiates the handshake for one domain and sends an HTTP
request for another domain.
Example
YES
Merge consecutive packets in which the PSH flag is set into a single SSL record, or
ignore the PSH flag.
Perform timer-based encryption, in which the time-out value is set globally by using the
set ssl parameter -pushEncTriggerTimeout <positive_integer> command.
Example
Refresh Count: 0
135
136
137
Example
138
Example
CA Certificate
139
CRLCheck: Optional
140
Note: The free NetScaler virtual appliance supports only the DH cipher group.
141
Example
Example
142
Example
143
Examples
144
145
146
Example
147
148
149
150
151
Control policy. A control policy uses a control action, such as forcing client
authentication.
Note: In release 10.5 or later, deny SSL renegotiation (denySSLReneg) is set, by
default, to ALL. However, control policies, such as CLIENTAUTH, trigger a
renegotiation handshake. If you use such policies, you must set denySSLReneg to NO.
Data policy. A data policy uses a data action, such as inserting some data into the
request.
The essential components of a policy are an expression and an action. The expression
identifies the requests on which the action is to be performed. SSL policies use the default
expression syntax or the classic expression syntax. For information about expressions and
how to configure them, see .
You can configure a default syntax policy with a built-in action or a user-defined action.
You can configure a policy with a built-in action without creating a separate action.
However, to configure a policy with a user-defined action, first configure the action and
then configure the policy.
You can specify an additional action, called an UNDEF action, to be performed in the event
that applying the expression to a request has an undefined result.
152
153
154
DROPDrop all packets from the client. The connection remains open until the client
closes it.
You can create user-defined data actions. For example, if you enable client authentication,
you can create an SSL action to insert client-certificate data into the request header before
forwarding the request to the web server. For more information about user-defined actions,
see Configuring User-Defined SSL Actions.
If a policy evaluation results in an undefined state, an UNDEF action is performed. For
either a data policy or a control policy, you can specify RESET, DROP, or NOOP as the
UNDEF action. For a control policy, you also have the option of specifying CLIENTAUTH or
NOCLIENTAUTH.
155
156
Example
add ssl policylabel cpl1 -type CONTROL
add ssl policylabel dpl1 -type DATA
bind ssl policylabel cpl1 -policyName ctrlpol -priority 1
bind ssl policylabel dpl1 -policyName datapol -priority 1
157
158
add ssl policy <name> -rule <expression> [-action <string>] [-undefAction <string>]
[-comment <string>]
Example
159
160
161
162
add ssl policy <name> -rule <expression> [-action <string>] [-undefAction <string>]
[-comment <string>]
Example
163
164
165
166
> add ssl action act1 -clientCert ENABLED -certHeader mycert -clientcertissuer ENABLED -certIssuerHeader m
> add ssl policy datapol -rule HTTP.REQ.URL.EQ(\"/testsite/file5.html\") -action act1
> add ssl policy ctrlpol -rule HTTP.REQ.URL.EQ(\"/testsite/file5.html\") -action CLIENTAUTH
> bind ssl vserver ssl_vserver -policyName ctrlpol -priority 1
> bind ssl vserver ssl_vserver -policyName datapol -priority 1
Done
167
Name*
Client Certificate
Certificate Tag
Issuer Tag
* A required parameter
Name*
Expression
Request Action
* A required parameter
168
Example
Priority: 10
169
170
Example
171
172
173
174
Entity
Name
Value
SSL Service
Service-SSL-1
10.102.20.30
Service-SSL-2
10.102.20.31
Vserver-SSL-2
10.102.10.20
Certkey-1
Service-based transparent access, where the service type can be SSL or SSL_TCP.
Note: An SSL_TCP service is used for non-HTTPS services (for example SMTPS and IMAPS).
175
Name
Value
SSL Service
Service-SSL-1
102.20.30
Certkey-1
176
Name
IP Address
Port
Vserver-SSL-Wildcard
443
Certificate - Key
Pair
Certkey-1
177
178
179
Entity
Name
Value
SSL Service
Service-SSL-1
10.102.20.30
Service-SSL-2
10.102.20.31
Vserver-HTTP-1
10.102.10.20
180
181
182
>
>
>
>
>
>
>
>
183
185
Example
186
Configuring SSL Monitoring when Client Authentication is Enabled on the Backend Service
add service svc_k 10.102.145.30 SSL 443
add lb monitor sslmon HTTP -respCode 200 -httpRequest "GET /testsite/file5.html" -secure YES
add ssl certKey ctest -cert client_rsa_1024.pem -key client_rsa_1024.ky
bind ssl service svc_k -certkeyName ctest
bind lb monitor sslmon svc_k
> show service svc_k
svc_k (10.102.145.30:443) - SSL
State: UP
Last state change was at Tue Jan 10 13:12:24 2012
Time since last state change: 0 days, 00:09:37.890
Server Name: 10.102.145.30
Server ID : 0 Monitor Threshold : 0
Max Conn: 0 Max Req: 0 Max Bandwidth: 0 kbits
Use Source IP: NO
Client Keepalive(CKA): NO
Access Down Service: NO
TCP Buffering(TCPB): NO
HTTP Compression(CMP): NO
Idle timeout: Client: 180 sec Server: 360 sec
Client IP: DISABLED
Cacheable: NO
SC: OFF
SP: OFF
Down state flush: ENABLED
Appflow logging: ENABLED
1) Monitor Name: sslmon
State: UP Weight: 1
Probes: 1318 Failed [Total: 738 Current: 0]
Last response: Success - HTTP response code 200 received.
Response Time: 0.799 millisec
Done
>
> show ssl service svc_k
Advanced SSL configuration for Back-end SSL Service svc_k:
DH: DISABLED
Ephemeral RSA: DISABLED
Session Reuse: ENABLED Timeout: 300 seconds
Cipher Redirect: DISABLED
SSLv2 Redirect: DISABLED
Server Auth: DISABLED
SSL Redirect: DISABLED
Non FIPS Ciphers: DISABLED
SNI: DISABLED
SSLv2: DISABLED SSLv3: ENABLED TLSv1: ENABLED
1) CertKey Name: ctest Client Certificate
1) Cipher Name: ALL
Description: Predefined Cipher Alias
Done
187
Configuring SSL Monitoring when Client Authentication is Enabled on the Backend Service
add lb monitor
type
Type of monitor that you want to create.
Possible values: PING, TCP, HTTP, TCP-ECV, HTTP-ECV, UDP-ECV, DNS, FTP, LDNS-PING,
LDNS-TCP, LDNS-DNS, RADIUS, USER, HTTP-INLINE, SIP-UDP, LOAD, FTP-EXTENDED, SMTP,
SNMP, NNTP, MYSQL, MYSQL-ECV, MSSQL-ECV, ORACLE-ECV, LDAP, POP3,
CITRIX-XML-SERVICE, CITRIX-WEB-INTERFACE, DNS-TCP, RTSP, ARP, CITRIX-AG,
CITRIX-AAC-LOGINPAGE, CITRIX-AAC-LAS, CITRIX-XD-DDC, ND6, CITRIX-WI-EXTENDED,
DIAMETER, RADIUS_ACCOUNTING, STOREFRONT, APPC, CITRIX-XNC-ECV, CITRIX-XDM
View description(s) in command reference Top
Configuring SSL Monitoring when Client Authentication is Enabled on the Backend Service
changed after the certificate-key pair is created.
The following requirement applies only to the NetScaler CLI:
If the name includes one or more spaces, enclose the name in double or single quotation
marks (for example, "my cert" or 'my cert').
cert
Name of and, optionally, path to the X509 certificate file that is used to form the
certificate-key pair. The certificate file should be present on the appliance's hard-disk
drive or solid-state drive. Storing a certificate in any location other than the default
might cause inconsistency in a high availability setup. /nsconfig/ssl/ is the default path.
key
Name of and, optionally, path to the private-key file that is used to form the
certificate-key pair. The certificate file should be present on the appliance's hard-disk
drive or solid-state drive. Storing a certificate in any location other than the default
might cause inconsistency in a high availability setup. /nsconfig/ssl/ is the default path.
View description(s) in command reference Top
bind lb monitor
monitorName
Name of the monitor.
serviceName
Name of the service or service group.
View description(s) in command reference Top
189
NetScaler MPX appliances support TLS protocol versions 1.1 and 1.2.
Support for TLS protocol versions 1.1 and 1.2 is not available on a FIPS appliance or on a
NetScaler virtual appliance.
Support for TLS protocol versions 1.1 and 1.2 is available on an SDX appliance, but only
on an instance-by-instance basis. To support TLS protocol versions 1.1 and 1.2 on an
SDX appliance, you must assign at least one SSL chip to the instance when you provision
it.
Protocol
Key
Exchange
Algorithm
Authentication
Algorithm
Encryption
Algorithm
(Key Size)
Message
Authentication
Code (MAC)
Algorithm
SSL3-RC4-MD5
SSLv3
RSA
RSA
RC4(128)
MD5
RSA
RSA
RC4(128)
SHA1
TLSv1
TLSv1.1
TLSv1.2
SSL3-RC4-SHA
SSLv3
TLSv1
TLSv1.1
TLSv1.2
190
SSLv3
RSA
RSA
3DES(168)
SHA1
RSA
RSA
AES(256)
SHA1
RSA
RSA
AES(128)
SHA1
DH
DSS
3DES(168)
SHA1
TLSv1
TLSv1.1
TLSv1.2
TLS1-AES-256-CBC-SHA
SSLv3
TLSv1
TLSv1.1
TLSv1.2
TLS1-AES-128-CBC-SHA
SSLv3
TLSv1
TLSv1.1
TLSv1.2
SSL3-EDH-DSS-DES-CBC3-SHA
SSLv3
TLSv1
TLS1-DHE-DSS-RC4-SHA
TLSv1
DH
DSS
RC4(128)
SHA1
TLS1-DHE-DSS-AES-256-CBC-SHA
SSLv3
DH
DSS
AES(256)
SHA1
DH
DSS
AES(128)
SHA1
DH
RSA
3DES(168)
SHA1
DH
RSA
AES(256)
SHA1
TLSv1
TLS1-DHE-DSS-AES-128-CBC-SHA
SSLv3
TLSv1
SSL3-EDH-RSA-DES-CBC3-SHA
SSLv3
TLSv1
TLSv1.1
TLSv1.2
TLS1-DHE-RSA-AES-256-CBC-SHA
SSLv3
TLSv1
TLSv1.1
TLSv1.2
191
SSLv3
DH
RSA
AES(128)
SHA1
TLSv1
TLSv1.1
TLSv1.2
Table 2. Additional Ciphers Supported by the NetScaler Appliance
Cipher Suite
Protocol
Key
Exchange
Algorithm
Authentication
Algorithm
Encryption
Algorithm
(Key Size)
Message
Authentication
Code (MAC)
Algorithm
SSL3-DES-CBC-SHA
SSLv3
RSA
RSA
DES(56)
SHA1
TLSv1
TLSv1.1
TLS1-EXP1024-RC4-SHA
TLSv1
RSA(1024)
RSA
RC4(56)
SHA1 Export
SSL3-EXP-RC4-MD5
SSLv3
RSA(512)
RSA
RC4(40)
MD5 Export
RSA(512)
RSA
DES(40)
SHA1 Export
RSA(512)
RSA
RC2(40)
MD5 Export
TLSv1
SSL3-EXP-DES-CBC-SHA
SSLv3
TLSv1
SSL3-EXP-RC2-CBC-MD5
SSLv3
TLSv1
SSL2-RC4-MD5
SSLv2
RSA
RSA
RC4(128)
MD5
SSL2-DES-CBC3-MD5
SSLv2
RSA
RSA
3DES(168)
MD5
SSL2-RC2-CBC-MD5
SSLv2
RSA
RSA
RC2(128)
MD5
SSL2-DES-CBC-MD5
SSLv2
RSA
RSA
DES(56)
MD5
SSL2-RC4-64-MD5
SSLv2
RSA
RSA
RC4(64)
MD5
SSL2-EXP-RC4-MD5
SSLv2
RSA(512)
RSA
RC4(40)
MD5 Export
SSL3-EDH-DSS-DES-CBC-SHA
SSLv3
DH
DSS
DES(56)
SHA1
TLSv1
TLS1-EXP1024-DHE-DSS-DES-CBCSHA
TLSv1
DH(1024)
DSS
DES(56)
SHA1 Export
TLS1-EXP1024-DHE-DSS-RC4- SHA
TLSv1
DH(1024)
DSS
RC4(56)
SHA1 Export
SSL3-EXP-EDH-DSS-DES-CBC-SHA
SSLv3
DH(512)
DSS
DES(40)
SHA1 Export
TLSv1
192
SSLv3
DH
RSA
DES(56)
SHA1
DH(512)
RSA
DES(40)
DES(40)
TLSv1
TLSv1.1
SSL3-EXP-EDH-RSA-DES-CBC-SHA
SSLv3
TLSv1
TLS1-EXP1024-RC4-MD5
TLSv1
RSA(1024)
RSA
RC4(56)
MD5 Export
TLS1-EXP1024-RC2-CBC-MD5
TLSv1
RSA(1024)
RSA
RC2(56)
MD5 Export
SSL2-EXP-RC2-CBC-MD5
SSLv2
RSA(512)
RSA
RC2(40)
MD5 Export
SSL3-ADH-RC4-MD5
SSLv3
DH
None
RC4(128)
MD5
DH
None
DES(56)
SHA1
DH
None
3DES(168)
SHA1
DH
None
AES(128)
SHA1
DH
None
AES(256)
SHA1
DH(512)
None
RC4(40)
MD5 Export
DH(512)
None
DES(40)
SHA1 Export
ECC-DHE
RSA
RC4(128)
SHA1
TLSv1
TLSv1.1
SSL3-ADH-DES-CBC-SHA
SSLv3
TLSv1
TLSv1.1
SSL3-ADH-DES-CBC3-SHA
SSLv3
TLSv1
TLSv1.1
TLS1-ADH-AES-128-CBC-SHA
SSLv3
TLSv1
TLSv1.1
TLS1-ADH-AES-256-CBC-SHA
SSLv3
TLSv1
TLSv1.1
SSL3-EXP-ADH-RC4-MD5
SSLv3
TLSv1
SSL3-EXP-ADH-DES-CBC-SHA
SSLv3
TLSv1
TLS1-ECDHE-RSA-RC4-SHA
TLSv1
TLSv1.1
TLSv1.2
193
TLSv1
ECC-DHE
RSA
3DES(168)
SHA1
ECC-DHE
RSA
AES(128)
SHA1
ECC-DHE
RSA
AES(256)
SHA1
TLSv1.1
TLSv1.2
TLS1-ECDHE-RSA-AES128-SHA
TLSv1
TLSv1.1
TLSv1.2
TLS1-ECDHE-RSA-AES256-SHA
TLSv1
TLSv1.1
TLSv1.2
Table 3. Additional Ciphers Supported with TLS Protocol Version 1.2 from Release 10.5 Build
53.9
Cipher Suite
Protocol
Key
Exchange
Algorithm
Authentication
Algorithm
Encryption
Algorithm (Key
Size)
Message
Authenticatio
Code (MAC)
Algorithm
TLS1.2-AES128-GCM-SHA256
TLSv1.2
RSA
RSA
AES-GCM(128)
SHA-256
TLS1.2-AES256-GCM-SHA384
TLSv1.2
RSA
RSA
AES-GCM(256)
SHA-384
TLS1.2-DHE-RSA-AES128-GCM-SHA256
TLSv1.2
DH
RSA
AES-GCM(128)
SHA-256
TLS1.2-DHE-RSA-AES256-GCM-SHA384
TLSv1.2
DH
RSA
AES-GCM(256)
SHA-384
TLS1.2-ECDHE-RSA-AES128-GCM-SHA256
TLSv1.2
ECC-DHE
RSA
AES-GCM(128)
SHA-256
TLS1.2-ECDHE-RSA-AES256-GCM-SHA384
TLSv1.2
ECC-DHE
RSA
AES-GCM(256)
SHA-384
TLS1.2-ECDHE-RSA-AES-128-SHA256
TLSv1.2
ECC-DHE
RSA
AES(128)
SHA-256
TLS1.2-ECDHE-RSA-AES-256-SHA384
TLSv1.2
ECC-DHE
RSA
AES(256)
SHA-384
TLS1.2-AES-256-SHA256
TLSv1.2
RSA
RSA
AES(256)
SHA-256
TLS1.2-AES-128-SHA256
TLSv1.2
RSA
RSA
AES(128)
SHA-256
TLS1.2-DHE-RSA-AES-128-SHA256
TLSv1.2
DH
RSA
AES(128)
SHA-256
TLS1.2-DHE-RSA-AES-256-SHA256
TLSv1.2
DH
RSA
AES(256)
SHA-256
Note: From release 10.5 build 53.9, ECDHE, AES-GCM, and SHA2 ciphers are part of the
default group. ECDHE/DHE cipher suites must be used to achieve perfect forward secrecy
(PFS).
On a NetScaler platform that does not have N3 chips and is configured to negotiate EDH
ciphers by using TLS version 1.0 with a DH key of 2048 bits, the SSL handshake fails in either
of the following scenarios:
194
Client authentication is enabled and the appliance receives a client certificate of 4096
bits.
> sh hardware
Platform: NSMPX-22000 16*CPU+24*IX+12*E1K+2*E1K+4*CVM N3 2200100
Manufactured on: 8/19/2013
CPU: 2900MHZ
Host Id: 1006665862
Serial no: ENUK6298FT
Encoded serial no: ENUK6298FT
Done
195
FIPS
The Federal Information Processing Standard (FIPS), issued by the US National Institute of
Standards and Technologies, specifies the security requirements for a cryptographic module
used in a security system. The NetScaler FIPS appliance complies with the second version of
this standard, FIPS-140-2.
Note: Henceforth, all references to FIPS imply FIPS-140-2.
The FIPS appliance is equipped with a tamper-proof (tamper-evident) cryptographic
moduleand a Cavium CN1620-NFBE3-2.0-G on the MPX 9700/10500/12500/15500 FIPS
appliancesdesigned to comply with the FIPS 140-2 Level-2 specifications. The Critical
Security Parameters (CSPs), primarily the server's private-key, are securely stored and
generated inside the cryptographic module, also referred to as the Hardware Security
Module (HSM). The CSPs are never accessed outside the boundaries of the HSM. Only the
superuser (nsroot) can perform operations on the keys stored inside the HSM.
The following table summarizes the differences between standard NetScaler and NetScaler
FIPS appliances.
Setting
NetScaler appliance
Key storage
Cipher support
All ciphers
Accessing keys
From the hard disk
Not accessible
Configuring a FIPS appliance involves configuring the HSM immediately after completing the
generic configuration process. You then create or import a FIPS key. After creating a FIPS
key, you should export it for backup. You might also need to export a FIPS key so that you
can import it to another appliance. For example, configuring FIPS appliances in a high
availability (HA) setup requires transferring the FIPS key from the primary node to the
secondary node immediately after completing the standard HA setup.
You can upgrade the firmware version on the FIPS card from version 4.6.0 to 4.6.1, and you
can reset an HSM that has been locked to prevent unauthorized logon. Only FIPS approved
ciphers are supported on a NetScaler FIPS appliance.
196
197
show fips
FIPS Card is not configured
Done
reset fips
reboot
Are you sure you want to restart NetScaler (Y/N)? [N]:y
set ssl fips -initHSM Level-2 sopin12345 so12345 user123 -hsmLabel cavium
This command will erase all data on the FIPS card. You must save the configuration
(saveconfig) after executing this command.
Do you want to continue?(Y/N)y
Done
save ns config
reboot
Are you sure you want to restart NetScaler (Y/N)? [N]:y
show fips
FIPS HSM Info:
HSM Label
: NetScaler FIPS
Initialization
: FIPS-140-2 Level-2
HSM Serial Number
: 2.1G1008-IC000021
HSM State
:2
HSM Model
: NITROX XL CN1620-NFBE
Firmware Version
: 1.1
Firmware Release Date : Jun04,2010
Max FIPS Key Memory
Free FIPS Key Memory
Total SRAM Memory
Free SRAM Memory
Total Crypto Cores
Enabled Crypto Cores
Done
198
: 3996
: 3994
: 467348
: 62564
:3
:1
HSM LabelhsmLabel
*A required parameter
7. Click OK.
8. In the details pane, click Save.
9. In the navigation pane, click System.
10. In the details pane, click Reboot.
11. Under FIPS HSM Info, verify that the information displayed for the FIPS HSM that you
just configured is correct.
199
reboot
warm
Restarts the NetScaler software without rebooting the underlying operating system. The
session terminates and you must log on to the appliance after it has restarted.
Note: This argument is required only for nCore appliances. Classic appliances ignore this
argument.
View description(s) in command reference Top
save ns config
No parameters provided in this topic or the command has no parameters. View
description(s) in command reference Top
200
201
Modulus*modulus
Exponent*exponent
*A required parameter
Example
202
203
File Name*key (To put the file in a location other than the default, you can either
specify the complete path or click the Browse button and navigate to a location.)
*A required parameter
204
205
import ssl fipsKey <fipsKeyName> -key <string> -inform SIM -exponent (F4 | 3)
Example
import fipskey Key-FIPS-2 -key Key-FIPS-2.key -inform SIM -exponent F4
show ssl fipskey key-FIPS-2
FIPS Key Name: Key-FIPS-2 Modulus: 2048 Public Exponent: F4 (Hex value 0x10001)
206
Key File Name*To put the file in a location other than the default, you can either
specify the complete path or click Browse and navigate to a location.
Exponent*
*A required parameter
207
208
209
Import Password*
Encoding Format
*A required parameter
2. Navigate to Traffic Management > SSL > FIPS
Key File Name*To put the file in a location other than the default, you can either
specify the complete path or click Browse and navigate to a location.
*A required parameter
210
211
212
213
214
215
216
217
reboot -warm
set ssl fips -initHSM Level-2 <new SO password> <old SO password> <user password>
[-hsmLabel <string>]
save ns config
reboot -warm
Example
reset fips
reboot -warm
set fips -initHSM Level-2 newsopin123 sopin123 userpin123 -hsmLabel NSFIPS
saveconfig
reboot -warm
Note: The SO and User passwords are the default passwords.
218
reboot
warm
Restarts the NetScaler software without rebooting the underlying operating system. The
session terminates and you must log on to the appliance after it has restarted.
Note: This argument is required only for nCore appliances. Classic appliances ignore this
argument.
View description(s) in command reference Top
219
save ns config
No parameters provided in this topic or the command has no parameters. View
description(s) in command reference Top
220
RSA
Cipher algorithms
SSL3-DES-CBC3-SHA
TLS1-AES-256-CBC-SHA
TLS1-AES-128-CBC-SHA
221
222
Architecture Overview
The three entities that are part of a NetScaler-Thales deployment are a Thales nShield
Connect module, a remote file server (RFS), and a NetScaler ADC.
The Thales nShield Connect is a network-attached hardware security module. The RFS is
used to configure the HSM and to store the encrypted key files.
Hardserver, a proprietary daemon provided by Thales, is used for communication between
the client (ADC), the Thales HSM, and the RFS. It uses the IMPATH secure communication
protocol. A gateway daemon, called the Hardserver Gateway, is used to communicate
between the NetScaler packet engine and the Hardserver.
Note: The terms Thales nShield Connect, Thales HSM, and HSM are used interchangeably
in this documentation.
The following figure illustrates the interaction between the different components.
In a typical deployment, the RFS is used to securely store keys generated by the HSM. After
the keys are generated, you can securely transfer them to the ADC and then use the
NetScaler configuration utility or command line to load the keys to the HSM. A virtual
server on the ADC uses Thales to decrypt the client key exchange to complete the SSL
handshake. Thereafter, all the SSL operations are performed on the ADC.
Note: The terms keys and application key tokens are used interchangeably in this
documentation.
The following figure illustrates the packet flow in the SSL handshake with the Thales HSM.
Figure 1. SSL Handshake Packets Flow Diagram with NetScaler Using Thales HSM
223
Architecture Overview
Note: The communication between the ADC and the HSM uses a Thales proprietary
communication protocol, called IMPATH.
224
Prerequisites
Before you can use a Thales nShield Connect with a NetScaler ADC, make sure that the
following prerequisites are met:
A Thales nShield Connect device is installed in the network, ready to use, and
accessible to the NetScaler ADC. That is, the NetScaler IP (NSIP) address is added as an
authorized client on the HSM.
A usable Security World exists. Security World is a unique key management architecture
used by the Thales nShield line of HSMs. It protects and manages keys as application key
tokens, enabling unlimited key capacity, and automatic key backup and recovery. For
more information about creating a Security World, see the nShield Connect Quick Start
Guide from Thales. You can also find the guide in the CD provided with the Thales HSM
module at
CipherTools-linux-dev-xx.xx.xx/document/nShield_Connect_Quick_Start_Guide.pdf.
Note: Softcard or token/OCS protected keys are currently not supported on the
NetScaler ADC.
Licenses are available to support the number of clients that will be connected to the
Thales HSM. The ADC and RFS are clients of the HSM.
A remote file server (RFS) is installed in the network and is accessible to the NetScaler
ADC.
The Thales nShield Connect device, the RFS, and the NetScaler ADC can initiate
connections with each other through port 9004.
225
226
227
228
Add a service.
229
# Amount of data in bytes to encrypt with a session key before session key# renegotiation, or 0 for unlimitied
# datalimit=INT
addr=10.217.2.43
clientperm=unpriv
keyhash=0000000000000000000000000000000000000000
esn=
timelimit=86400
datalimit=8388608
-----
230
231
local_module=0
remote_ip=10.217.2.112
remote_port=9004
remote_esn=BD17-C807-58D9
keyhash=5e30a698f7bab3b2068ca90a9488dc4e6c78d822
timelimit=86400
datalimit=8388608
privileged=0
privileged_use_high_port=0
ntoken_esn=
Note: To remove an HSM that is enrolled on the ADC, type: ./nethsmenroll remove
<NETHSM-IP>
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=
Note: To remove an RFS that is enrolled on the ADC, type: ./rfs_sync remove
Example
./rfs-sync --no-authenticate --setup 10.217.2.6
No current RFS synchronization configuration.
Configuration successfully written; new config details:
Using RFS at 10.217.2.6:9004: not authenticating.
This step adds the following entries after the # local_esn=ESN line in the
rfs_sync_client section of the /var/opt/nfast/kmdata/config/config file.
232
remote_ip=10.217.2.6
remote_port=9004
use_kneti=no
local_esn=
Verify that the local Hardserver is UP and running. (nCipher server running).
Get the state of the configured HSMs, and verify that the values for the n_modules
(number of modules) field and the km info fields are non-zero.
Verify that the HSM is enrolled correctly and is usable (state 0x2 Usable) by the
ADC.
Change directory to /var/opt/nfast/bin, and at the shell prompt, run the following
commands:
root@ns# ./chkserv
root@ns# ./nfkminfo
root@ns# ./sigtest
See Appendix for an example.
234
Note: The generatekey command is supported in strict FIPS 140-2 Level 3 Security
World. An administrator card set (ACS) or an operator card set (OCS) is needed to control
many operations, including the creation of keys and OCSs. When you run the
generatekey command, you are prompted to insert an ACS or OCS card. For more
information about strict FIPS 140-2 Level 3 Security World, see the nShield Connect User
Guide.
The following example uses Level-2 Security World. In the example, the commands are in
boldface type.
Example
237
enable feature lb
238
show ns ip
Example
> add ns ip 192.168.17.253 255.255.248.0 -type SNIP
Done
> show ns ip
Ipaddress
Traffic Domain Type
Mode
Arp
Icmp
Vserver State
---------------------- ------------------ -----1)
192.168.17.251 0
NetScaler IP
Active Enabled Enabled NA
Enabled
2)
192.168.17.252 0
VIP
Active Enabled Enabled Enabled Enabled
3)
192.168.17.253 0
SNIP
Active Enabled Enabled NA
Enabled
Done
To add a SNIP address and verify the configuration by using the configuration utility
Navigate to System > Network > IPs, add an IP address, and select the IP Type as Subnet
IP.
The HSM key name must be the same as the ident that you specified when you
converted an embed key to a simple key format.
239
Add a service
For more information, see Configuring Services.
To configure a service by using the command line
At the command prompt, run the following command:
add service <name> <serverName> <serviceType> <port>
Example
> add service sr1 s1 HTTP 80
To configure a service by using the configuration utility
Navigate to Traffic Management > Load Balancing > Services, and create a service.
241
Example
> show lb vserver v1
v1 (192.168.17.252:443) - SSL Type: ADDRESS
State: UP
Last state change was at Wed Oct 29 03:11:11 2014
Time since last state change: 0 days, 00:01:25.220
Effective State: UP
Client Idle Timeout: 180 sec
Down state flush: ENABLED
Disable Primary Vserver On Down : DISABLED
Appflow logging: ENABLED
No. of Bound Services : 1 (Total)
1 (Active)
Configured Method: LEASTCONNECTION
Current Method: Round Robin, Reason: Bound service's state changed to UP
Mode: IP
Persistence: NONE
Vserver IP and Port insertion: OFF
242
Weight: 1
Server Certificate
1)
243
show ns ip
No parameters provided in this topic or the command has no parameters. View
description(s) in command reference Top
244
add lb vserver
name
Name for the virtual server. Must begin with an ASCII alphanumeric or underscore (_)
character, and must contain only ASCII alphanumeric, underscore, hash (#), period (.),
space, colon (:), at sign (@), equal sign (=), and hyphen (-) characters. Can be changed
after the virtual server is created.
CLI Users: If the name includes one or more spaces, enclose the name in double or single
quotation marks (for example, "my vserver" or 'my vserver').
serviceType
Protocol used by the service (also called the service type).
Possible values: HTTP, FTP, TCP, UDP, SSL, SSL_BRIDGE, SSL_TCP, DTLS, NNTP, DNS,
DHCPRA, ANY, SIP_UDP, DNS_TCP, RTSP, PUSH, SSL_PUSH, RADIUS, RDP, MYSQL, MSSQL,
DIAMETER, SSL_DIAMETER, TFTP, ORACLE
IPAddress
IPv4 or IPv6 address to assign to the virtual server.
port
Port number for the virtual server.
View description(s) in command reference Top
add server
name
Name for the server.
Must begin with an ASCII alphabetic or underscore (_) character, and must contain only
ASCII alphanumeric, underscore, hash (#), period (.), space, colon (:), at (@), equals (=),
and hyphen (-) characters.
Can be changed after the name is created.
IPAddress
245
add service
name
Name for the service. Must begin with an ASCII alphabetic or underscore (_) character,
and must contain only ASCII alphanumeric, underscore, hash (#), period (.), space, colon
(:), at (@), equals (=), and hyphen (-) characters. Cannot be changed after the service
has been created.
serverName
Name of the server that hosts the service.
serviceType
Protocol in which data is exchanged with the service.
Possible values: HTTP, FTP, TCP, UDP, SSL, SSL_BRIDGE, SSL_TCP, DTLS, NNTP, RPCSVR,
DNS, ADNS, SNMP, RTSP, DHCPRA, ANY, SIP_UDP, DNS_TCP, ADNS_TCP, MYSQL, MSSQL,
ORACLE, RADIUS, RDP, DIAMETER, SSL_DIAMETER, TFTP
port
Port number of the service.
View description(s) in command reference Top
bind lb vserver
name
Name for the virtual server. Must begin with an ASCII alphanumeric or underscore (_)
character, and must contain only ASCII alphanumeric, underscore, hash (#), period (.),
space, colon (:), at sign (@), equal sign (=), and hyphen (-) characters. Can be changed
after the virtual server is created.
CLI Users: If the name includes one or more spaces, enclose the name in double or single
quotation marks (for example, "my vserver" or 'my vserver').
serviceName
Name of the service.
View description(s) in command reference Top
246
show lb vserver
name
Name of the virtual server. If no name is provided, statistical data of all configured
virtual servers is displayed.
View description(s) in command reference Top
247
Limitations
TLS protocol versions 1.1 and 1.2 are not supported with the Thales HSM integration.
Note: SSL version 3 (SSLv3) is not supported on an MPX appliance but is supported on
a VPX virtual appliance. A VPX instance provisioned on an SDX appliance supports
SSLv3 only if an SSL chip is not assigned to the instance.
248
If you have added or removed keys after you last saved the configuration, you must
save the configuration before you perform a warm restart. If you do not save the
configuration, there will be a key mismatch between the ADC and the HSM.
You cannot bind a certificate-key pair that is created by using an HSM key to an SSL
service.
You cannot use the NetScaler configuration utility to enroll the ADC as a client of the
HSM or check the status of the HSM from the configuration utility.
You cannot sign OCSP requests by using a certificate-key pair that is created by using an
HSM key.
An error does not appear if the HSM key and certificate do not match. Therefore, while
adding a certificate-key pair, you need to make sure that the HSM key and certificate
match.
Appendix
Example
Note: In the following example, the commands are in boldface type.
root@ns# ./chkserv
nCipher server running
root@ns# ./nfkminfo
World
generation 2
state
0x17a70000 Initialised Usable Recovery PINRecovery !ExistingClient RTC NVRAM FTO !AlwaysUseStr
n_modules 1
hknso
cbec8c0c56c6b5e76b73147ef02d34a661eaa044
hkm
bbb8d4839da5782be4d092735a7535538834dc91 (type Rijndael)
hkmwk
1d572201be533ebc89f30fdd8f3fac6ca3395bf0
hkre
01f21ecf43933ffdd45e74c3883525176c5c439c
hkra
ac8ec5ee6bce00991bd97adce2091d9739b9b452
hkmc
cf1b509abaad91995ed202d8f36613fc99433155
hkp
c20910b2ed1ca62d6a2b0db67052a05f7bbfeb43
hkrtc
bd811020a7c2f8df435a481c3767a89c2e13bc4f
hknv
278b8012e48910d518a9ee91cff57233fb0c9093
hkdsee
12230b0e31e3cec66324c0815f782cfb9249edd5
hkfto
89dd6250b3d6149bcd15606f4553085e2fd6271a
hkmnull
0100000000000000000000000000000000000000
ex.client none
k-out-of-n 1/2
other quora m=1 r=1 p=1 nv=1 rtc=1 dsee=1 fto=1
createtime 2014-02-28 21:05:32
nso timeout 10 min
ciphersuite DLf1024s160mRijndael
Module #1
generation 2
state
0x2 Usable
flags
0x10000 ShareTarget
n_slots 2
esn
BD17-C807-58D9
hkml
70289a6edba00ddc7e3f6d6f5a49edc963e822f2
Module #1 Slot #0 IC 0
generation 1
phystype
SmartCard
slotlistflags 0x2 SupportsAuthentication
state
0x2 Empty
flags
0x0
shareno
0
shares
error
OK
No Cardset
249
Appendix
Module #1 Slot #1 IC 0
generation 1
phystype
SoftToken
slotlistflags 0x0
state
0x2 Empty
flags
0x0
shareno
0
shares
error
OK
No Cardset
No Pre-Loaded Objects
root@ns# ./sigtest
Hardware module #1 speed index 5792 recommended minimum queue 19
Found 1 module; using 19 jobs
Making 1024-bit RSAPrivate key on module #1;
using Mech_RSApPKCS1 and PlainTextType_Bignum.
Generated and exported key from module #1.
Imported keys on module #1
1,
3059 1223.6, 3059 overall
2,
8698 2989.76, 4349 overall
3,
14396 4073.06, 4798.67 overall
4,
20091 4721.83, 5022.75 overall
5,
25799 5116.3, 5159.8 overall
6,
31496 5348.58, 5249.33 overall
7,
37192 5487.55, 5313.14 overall
8,
42780 5527.73, 5347.5 overall
9,
45777 4515.44, 5086.33 overall
10,
51457 4981.26, 5145.7 overall
11,
57151 5266.36, 5195.55 overall
12,
62813 5424.61, 5234.42 overall
13,
68496 5527.97, 5268.92 overall
14,
74182 5591.18, 5298.71 overall
15,
79832 5614.71, 5322.13 overall
16,
85518 5643.23, 5344.88 overall
17,
88412 4543.54, 5200.71 overall
18,
94086 4995.72, 5227 overall
19,
99778 5274.23, 5251.47 overall
20,
105469 5440.94, 5273.45 overall
21,
111133 5530.16, 5292.05 overall
22,
116838 5600.1, 5310.82 overall
23,
122522 5633.66, 5327.04 overall
24,
128175 5641.4, 5340.62 overall
25,
131072 4543.64, 5242.88 overall
26,
136762 5002.18, 5260.08 overall
27,
142415 5262.51, 5274.63 overall
28,
148125 5441.51, 5290.18 overall
29,
153816 5541.3, 5304 overall
30,
159414 5563.98, 5313.8 overall
250
Troubleshooting
If the SSL feature does not work as expected after you have configured it, you can use some
common tools to access NetScaler resources and diagnose the problem.
251
Trace files
In addition to the above resources, you can use the Wireshark application customized for
the NetScaler trace files to expedite troubleshooting.
252
253
Verify that the NetScaler appliance is licensed for SSL Offloading and load balancing.
Verify that SSL Offloading and load balancing features are enabled on the appliance.
Verify that the status of the SSL virtual server is not displayed as DOWN.
Verify that the status of the service bound to the virtual server is not displayed as
DOWN.
Verify that the service is using an appropriate port, preferably port 443.