Setting up SSL/TLS on CipherTrust Manager and CADP for C
Note
The CipherTrust Manager comes with pre-configured SSL/TLS settings. However, you can also configure the settings according to your organizational needs.
Standard SSL/TLS communication requires a certificate that identifies the server. This certificate is signed by a certificate authority (CA) known to both the server and the client. During the SSL/TLS handshake, the server certificate is passed to the client. The client uses a copy of the CA certificate to validate the server certificate, thus authenticating the server.
Tip
It is recommended that you increase security only after confirming network connectivity. You should establish a TCP connection before enabling SSL/TLS. Otherwise, an unrelated network connection mistake could interfere with your SSL/TLS setup and complicate the troubleshooting process.
While the CA can be a third-party CA or your corporate CA, you will most likely use a local CA on the CipherTrust Manager appliance. If you are not using a local CA, consult your CA documentation for instructions on signing requests and exporting certificates.
To use an SSL/TLS connection to communicate between the CipherTrust Manager appliance (server) and CADP for C (client), first configure the server and then configure the client. The client will be configured for SSL communication during the CADP for C installation, if you enter SSL as the Key Management Server Protocol to use. If you plan to use an external Certificate Authority (CA) within your environment, then you will need to configure the SSL settings for the client manually. During the CADP for C installation, enter the TCP protocol as the Key Management Server Protocol when prompted. Then after the installation, manually configure the client for SSL settings. Refer to Configuring the Client Manually for more information.
This section covers the following topics:
Configuring the Server
This section describes the procedure to configure SSL/TLS for the CipherTrust Manager.
Create a server certificate. (If you are using a cluster, each member must have its own, unique certificate). Refer to Create a Server Certificate:
Activate the server certificate. Refer to Activating the Server Certificate.
Enable the SSL/TLS connection on the Server. Refer to Enabling the SSL/TLS connection on the Server.
Create a Server Certificate
To create a server certificate, do the following:
Create a Local CA. Refer to Creating a Local CA.
Create a CSR on the console. Refer to Creating a CSR on the Console.
Sign a Certificate Request with a Local CA. Refer to Signing a Certificate Request with a Local CA.
Creating a Local CA
To create a local CA:
Log on to the console as an administrator with Certificate Authorities access control.
Click CA.
Under the Local Certificate Authorities section, click New Local CA.
On the New Local CA window, enter the fields as needed.
Click Create Local CA. It is added in the Pending CAs.
From the Pending CAs list, click the local CA that you want to create. A window containing property and value of the CA displays.
You can either self-sign Certificate Signing Request (CSR) or upload a certificate signed by an external CA.
Note
For uploading a certificate signed by an external CA, you must have installed the external CA certificate.
Once the CA is verified, it is listed under the Local Certificate Authorities section.
In the Local Certificate Authorities list, you can view Subject, Serial#, Activation, Expiration, and State.
You can also delete, view certificate details, and download the local certificate.
Note
Only a local CA can sign certificate requests on CipherTrust Manager appliance. If you are using a CA that does not reside on CipherTrust Manager appliance you cannot use the console to sign certificate requests.
Creating a CSR on the Console
To create a certificate signing request (CSR) on the console:
Log on to the console as an administrator with Certificates access control.
Click CA.
Under the CSR Tool section, click Create CSR.
On the Create CSR window, enter the fields as needed (Common Name is mandatory).
Click Create. You'll be prompted with two options: save csr and save private key.
Click save csr to save the CSR in the .pem format.
Note
You must save the Private Key to continue.
Click save private key to save the private key in .pem format.
Note
For generation of public/private key pairs for server certificates only RSA algorithm is supported.
Signing a Certificate Request with a Local CA
To sign a certificate request with a local CA:
Log in to the console as an administrator with Certificates access control.
Navigate to CA > Local Certificate Authorities and click on the local CA from which you want to sign the CSR.
Click Upload and Sign CSR.
Copy the saved CSR in the previous section and paste it on the Upload Externally Generated CSR window. The copied text must include the header (-----BEGIN CERTIFICATE REQUEST-----) and footer (-----END CERTIFICATE REQUEST-----).
From the Certificate Purpose list, select server.
In the Duration in days field, enter the life span of the certificate. Enter minimum 365 days.
Click Issue Certificate.
The newly created certificate is listed under Parent Issuer. This certificate can be used as the server certificate for the NAE Server.
Activating the Server Certificate
To activate the server certificate:
Log on to the Management Console as an administrator.
Navigate to Settings > Interfaces.
For NAE interface, click icon in the Action column.
In the Local CA for Automatic Server Certificate Generation field, select Turn off auto generation from a local CA.
Note
In the Local CA for Automatic Server Certificate Generation field, if you select any CA then just click Update. It will automatically generate a server certificate and make it active.
Expand Upload Certificate.
In the Certificate text box, paste the server certificate, CA certificate, and key in the PEM format or base64 encoded PKCS#12 format.
Note
The list of certificates must be added from server cert to root ca in the ascending order. If there are any intermediate CAs, they can be added. Maintaining this order is important:
<server cert> <ca cert> <key>
Select Format.
Click Upload New Certificate and then click Update.
Enable the SSL/TLS connection on the Server
To enable the SSL/TLS connection on the server:
Log on to the console as an administrator with Certificate Authorities access control.
Navigate to Settings > Interfaces.
Under Interface Configurations, edit NAE interface and select a TLS option in the Mode field. Available options are:
TLS, allow anonymous logins, ignore client cert
TLS, user must supply password, ignore client cert
TLS, allow anonymous logins, verify client cert
TLS, user must supply password, verify client cert
Verify client cert, username taken from client cert, auth request is optional
Verify client cert, password is needed, username in cert must match username in authentication request
Select the checkbox Allow unregistered clients to enable client's communication with the CipherTrust Manager over the interface, if you are using CipherTrust Manager 2.11 or above.
Tip
Without TLS, any secret or message transmitted to and from the CipherTrust Manager through this interface could be compromised.
Configuring the Client
You can configure the client to use SSL for communication with the CipherTrust Manager using the CADP for C installer. If you plan to use an external CA within your environment, or go for advanced SSL settings then you are required to configure the client manually after basic installation using the installer.
Configuring the Client using Installer
You have the option to configure the CADP for C to use SSL for communication with the CipherTrust Manager during the installation of CADP for C. To do so, be sure to enter SSL as the Key Management Server Protocol and other associated information when prompted during the installation process. The following certificates and keys will be generated and updated in the CADP for C properties files (CADP_CAPI.properties
or CADP_PKCS11.properties
depending on which CADP for C library you are using in your environment) during the installation:
Client certificate
Client key (Encrypted by pasphrase)
CA certificate
Encrypted passphrase
Configuring the Client Manually
The Client can also be configured manually after the installation. During the CADP for C installation process, to perform a basic installation, enter TCP for the Key Management Server Protocol when prompted. After the installation is complete, manually configure the client for the SSL settings.
Configuring the client
Generate a client certificate. Refer to Generating a Client Certificate Request with OpenSSL section.
After creating a certificate request using OpenSSL, you can then sign the request with the local CA on the CipherTrust Manager appliance. Once signed, the certificate request becomes a valid certificate. Refer to Signing a Certificate Request and Downloading the Certificate
OR
Consult the CA Documentation for instructions on signing requests and exporting certificates.
Upload the External CA Certificate on the Server. Refer to Uploading an External CA Certificate on the Server
Update the following parameters in the
CADP_PKCS11.properties
orCADP_CAPI.properties
files (depending on which CADP for C library you are using in your environment) as follows:Protocol=ssl CA_File=<location and name of the CA certificate> Cert_File=<location of the client cert>\client.crt Key_File=<path to client key>\clientkey Passphrase=<the passphrase used to unlock the client's key file>
For example:
CA_File=/root/CipherTrust/CADP_for_C/certs/ca-cert.pem Cert_File=/root/CipherTrust/CADP_for_C/certs/client-cert.pem Key_File=/root/CipherTrust/CADP_for_C/certs/client-key.pem
Note
Only absolute file path should be used for the Properties.
Generating a Client Certificate Request with OpenSSL
To generate a client certificate request:
Open the command window.
If you are using OpenSSL, run the following command:
openssl req -out clientreq -newkey rsa:2048 -keyout clientkey
Note
By default, both the certificate request and private key will be created in the working directory. You can generate them in another directory by including a location in the certificate request and key name.
For example, to create them in theC:\client_certs
directory, use the following command:openssl req -out C:\client_certs\clientreq -newkey rsa:2048 - keyout C:\client_certs\clientkey
.The certificate request generation process will then request the following details:
A PEM passphrase to encode the private key: The passphrase that encodes the private key is the first passphrase you provide after issuing the above command. This will be the Passphrase parameter in the
CADP_CAPI.properties
orCADP_PKCS11.properties
file.The distinguished name: The distinguished name is a series of fields whose values are incorporated into the certificate request. These fields include country name, state or province name, locality name, organization name, organizational unit name, common name, and email address.
A challenge password: This challenge password is NOT used in the CipherTrust Manager environment.
An optional company name.
Signing a Certificate Request and Downloading the Certificate
This section describes how to sign a certificate request with a local CA and then download the certificate.
Note
You must download the certificate immediately after it is signed by the CA.
Signing a Certificate Request
To sign a certificate request with a local CA:
Log on to the console as an administrator with Certificate Authorities access controls.
Navigate to CA > Local Certificate Authorities and click the local CA by which you want to sign the CSR.
Click Upload and Sign CSR.
Copy the CSR and paste it on the Upload Externally Generated CSR window. The copied text must include the header (-----BEGIN CERTIFICATE REQUEST-----) and footer (-----END CERTIFICATE REQUEST-----).
From the Certificate Purpose list, select client.
In the Duration in days field, enter the life span of the certificate. Enter minimum 365 days.
Click Issue Certificate. The newly created certificate is listed under Parent Issuer.
Click the image button to save the certificate on your local machine.
Note
You should place the certificate in a secure location and modify access appropriately.
Download a local CA certificate
To download a local CA certificate from CipherTrust Manager appliance:
Log in to the console as an administrator with Certificate Authorities access controls.
Navigate to CA > Local Certificate Authorities and click the download button to download a local CA. You should place the CA certificate in a secure location and modify access appropriately.
Uploading an External CA Certificate on the Server
Since the client certificate was signed by an external CA, you must upload the CA certificate on the CipherTrust Manager appliance.
To upload a CA certificate:
Log in to the console as an administrator with Certificate Authorities access controls.
Navigate to CA > External Certificate Authorities.
In the Upload External Certificate text box, paste all text from the certificate, including header and footer.
Click upload.
Note
Both the server and client certificates should be signed by the same CA to make SSL/TLS work.
The SSL/TLS configuration is now complete on both the server and the client. The server is now ready to communicate with the client.