Skip to main content
Perform the following tasks to install and configure the CertAgent and verify that it works properly:
  1. Install and configure CertAgent.
  2. Verify the installation.
  3. Access CertAgent sites.
  4. Ensure proper communication.

Install and configure CertAgent

Perform the following tasks to install and configure CertAgent:
  1. Unpack the software distribution.
  2. Set the LD_LIBRARY_PATH environment variable and run the CertAgent installer.
  3. Run the post-installation step.

Unpack the software distribution

The CertAgent package for Linux platforms consists of a zip archive that you can unzip (with directory structure preserved) into any convenient directory on your server hard drive.

Set the environment variable and install

Perform the following steps to set the LD_LIBRARY_PATH environment variable and run the CertAgent installer:
1
In a terminal, go to the certagent<version>-install directory. This directory should contain the install.sh file.
2
The CertAgent installer requires the location of the Futurex PKCS #11 (FXPKCS11) directory to be specified in the LD_LIBRARY_PATH environment variable. Run the following command to set the LD_LIBRARY_PATH variable and run the CertAgent installer in the same command:
The path to the FXPKCS11 library needs to be specific to where it is installed on your system.
Shell
[centos@centos6 certagent.7.0.8-install]$ sudo env LD_LIBRARY_PATH=/usr/local/bin/fxpkcs11 ./install.sh
The output should be similar to the following:
Shell
******************************************************************************
CertAgent Installation 7.0.8
Copyright(c) 2020 Information Security Corp. All rights reserved.
******************************************************************************

You are going to install CertAgent 7.0.8.
An HSM is required to be installed. Credentials will be
generated on the HSM during the installation.

The following information is required during the installation process:
- 64-bit Java 8, 11, or above installation directory
- 64-bit HSM library, label, and PIN
- if an existing Oracle, PostgreSQL, or HyperSQL database will be used, 
the location of the JDBC driver, access URL, user name and password for
the Oracle, PostgreSQL, or HyperSQL database; otherwise, an HyperSQL
database will be installed and requires a listening port
- system hostname or IP address
- TLS port for the administrator site
- TLS port for the public site

The following directories must be specified in the LD_LIBRARY_PATH variable:
- the 64-bit HSM libraries
- the Oracle Instant Client libraries (if OCI driver will be used)

LD_LIBRARY_PATH is currently set to:
/usr/local/bin/fxpkcs11

Are the required directories specified in the
LD_LIBRARY_PATH? [yes]:
3
Hit Enter to confirm that the required directories are specified in the LD_LIBRARY_PATH variable.
4
Next, you must scroll through the license agreement and then accept it.The first prompt after the license agreement is particularly important. It should look similar to the following example:
Shell
******************************************************************************
Specifying CertAgent installation type...
******************************************************************************

1) NIAP-compliance:
- Require Java 8
- Install Tomcat 8.5.50
- Create a HyperSQL database server or use an existing PostgreSQL database
- Generate HSM-based TLS credential

2) Non-NIAP-compliance:
- Require Java 8, 11, or above
- Install Tomcat 8.5.50
- Create a HyperSQL database or use an existing PostgreSQL, Oracle, 
 or HyperSQL database
- Generate software-based TLS credential

Answer [1]: 
Ensure that the first option is selected here because you want Tomcat and HyperSQL database server to be installed automatically, and we want to generate TLS credentials by using the CryptoHub .
For all prompts not specifically mentioned here, select the default value.
5
At the following prompt, be sure to select option number one.
Shell
******************************************************************************
Specifying database...
******************************************************************************
Which database are you going to use?

1) I don't have one. Install and configure a HyperSQL 2.4.0 database for me

2) An existing PostgreSQL database

Answer [1]:
6
The installer eventually prompts for the location of the FXPKCS11 library, so provide the full path to the libfxpkcs11.so file.
If using an older version of CertAgent (such as CertAgent 6), it asks for the HSM label. Leave the field blank and proceed with the rest of the installation.
Shell
******************************************************************************
* Specifying HSM info...
******************************************************************************
A CA account (account name: ca7) and an initial set of credentials will be
automatically generated.
System, root CA, and TLS credentials will be generated on the chosen HSM.

64-bit HSM library: /usr/local/bin/fxpkcs11/libfxpkcs11.so
7
The next prompt display something similar to the following example:
Shell
One partition found: 
Label: 10.0.5.223:9100; Slot: 0
Use this partition? [yes]: 
HSM PIN (no echo of input):
Confirm that you want to use the partition that it found,and enter the CryptoHub identity password configured inside the **<CRYPTO-OPR-PASS> ** tag in the fxpkcs11.cfg file.
8
Next, CertAgent creates several different keys and certificates on the CryptoHub.
You can use the default values for all prompts.
9
When prompted to enter passwords for several different items, for each instance, specify a password of your choosing.
10
If the CertAgent installation completes successfully, you see output similar to the following:
Shell
******************************************************************************
Summary
******************************************************************************
CertAgent has been installed.
Installation directory: /usr/local/certagent7

CertAgent service (isc-certagent7) has been installed.
CertAgent restarts automatically upon system startup.

HSQLDB service (isc-certagent7-hsqldb) has been installed.
HSQLDB server restarts automatically upon system startup.

Entering System PIN
===================
An administrator must enter the PIN of the HSM in which the system
credential resided on each time the system is booted.
Run the following command, enter the HSM PIN and press ENTER:
/usr/local/certagent7/certagent.sh setpin

Importing Authorized Users
==========================
Please import the administrator, auditor, and CA operations staff PKCS#12 files:
/usr/local/certagent7/keystore/ca-admin.p12
/usr/local/certagent7/keystore/ca-auditor.p12
/usr/local/certagent7/keystore/ca-operations-staff.p12
and the root certificate file: 
/usr/local/certagent7/keystore/ca-root.der
into your browser's certificate and trust stores and use
these keys to authenticate yourself to the webserver.
NOTE: AES-256 is used to encrypt your private key during the
installation, the PKCS#12 files generated by the installer
can only be imported to compatible browsers (e.g., Firefox 56+)

Accessing CertAgent Sites
==========================
The following URLs may be used to access CertAgent using
Internet Explorer or other supported browsers.

Admin access:
https://centos6.linuxvmimages.local:8443/certagentadmin/admin/login.jsp
CA Account access:
https://centos6.linuxvmimages.local:8443/certagentadmin/ca/login.jsp
Public access:
https://centos6.linuxvmimages.local:443/certagent/main.jsp
-----------------------------------------------------------------------------
The above information has been saved to install.log.

Please run the '/usr/local/certagent7/certagent.sh setpin' command to set the system PIN.
EXIT

Run the post-installation

Run the following command to set the system PIN:
Shell
[centos@centos6 certagent.7.0.8-install]$ sudo /usr/local/certagent7/certagent.sh setpin
Setting system PIN...
Enter CertAgent system PIN (no echo of input):           
01/21/21 14:57:05 EST: System PIN set successfully

Verify the installation

This section verifies that CertAgent is communicating correctly with the CryptoHub.
1
After the installation completes, you can log in to the CryptoHub web UI to verify that the keys have successfully been generated.
2
You can use the Futurex Command Line Interface (FXCLI) to validate that the CertAgent keys and certificates were generated and stored on the CryptoHub. After you connect and log in, run the keytable list command.
The following example removes the externalData and pkcs11Attributes fields and associated values to shorten the command output.
FXCLI
  $ keytable list
  result:
   status: success
   statusCode: 0
  slots:
   -
       slot: 0
       type: "key"
       name: ""
       kcv: "BFE0"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Decrypt,Sign,Verify,Wrap,Unwrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: false
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true   
   -
       slot: 1
       type: "key"
       name: ""
       kcv: "7C0E"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Verify,Wrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true        
   -
       slot: 2
       type: "certificate"
       name: "/C=US/O=ISC/CN=CertAgent 7.0.8 Root CA 0DB4/CN=CertAgent 7.0.8 System Key 0DB4"
       fingerprint: "27262907210242616B91281FC6405DD82EE91B35"
       algorithm: RSA
       bits: 3072
       usage: Sign,Verify,Wrap,Unwrap
       startValidity: "2021-01-21 19:54:44"
       endValidity: "2026-01-21 19:54:44"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: false
       modifiable: true
   -
       slot: 3
       type: "key"
       name: ""
       kcv: "6840"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Decrypt,Sign,Verify,Wrap,Unwrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: false
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true       
   -
       slot: 4
       type: "key"
       name: ""
       kcv: "7BDA"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Verify,Wrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true        
   -
       slot: 5
       type: "certificate"
       name: "/C=US/O=ISC/CN=CertAgent 7.0.8 Root CA 0DB4/CN=CertAgent 7.0.8 Root CA 0DB4"
       fingerprint: "D7AE7F335BCD02CC3D1433BF60F66113FBB4339E"
       algorithm: RSA
       bits: 3072
       usage: Sign,Verify
       startValidity: "2021-01-21 19:54:46"
       endValidity: "2026-01-21 19:54:46"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: false
       modifiable: true
   -
       slot: 6
       type: "key"
       name: ""
       kcv: "F1FB"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Decrypt,Sign,Verify,Wrap,Unwrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: false
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true
   -
       slot: 7
       type: "key"
       name: ""
       kcv: "2CBF"
       algorithm: RSA
       bits: 3072
       usage: Encrypt,Verify,Wrap
       startValidity: "1971-01-01 00:00:00"
       endValidity: "2999-01-01 00:00:00"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: true
       modifiable: true
   -
       slot: 8
       type: "certificate"
       name: "/C=US/O=ISC/CN=CertAgent 7.0.8 Root CA 0DB4/CN=centos6.linuxvmimages.local"
       fingerprint: "29E36582281B7029E468E8FA6E4139077996851B"
       algorithm: RSA
       bits: 3072
       usage: Sign,Verify,Wrap,Unwrap
       startValidity: "2021-01-21 19:54:47"
       endValidity: "2026-01-21 19:54:46"
       exportable: true
       clearExportable: false
       passwordExportable: false
       requiresAuth: false
       modifiable: true
If all nine keys are present, the installation succeeded.

Access CertAgent sites

The following requires the certificates installed by CertAgent to be added to the trusted list of your web browser.
The following URLs may be used to access CertAgent using Internet Explorer or Firefox. System Administrative Site
  • Admin controls over the system and server. Configuration settings can be done here as well. You must connect with the Admin certificate.
https://127.0.0.1:8443/certagentadmin/admin/login.jspCA Account Site
  • Allows the certificate enrollment, management, CRL, and other settings to be set when connected with the Admin certificate.
  • Allows CSRs to be approved, signed, revoked, and other certificate enrollment tasks to be completed when connected with the Operations certificate.
https://centos6.linuxvmimages.local:8443/certagentadmin/ca/login.jspPublic Site
  • Allows users to enroll, upload, and retrieve certificates to and from the CryptoHub when connected with the Client certificate.
https://centos6.linuxvmimages.local/certagent/main.jsp

Ensure proper communication

Perform the following steps to ensure proper communication between CertAgent and the CryptoHub:
1
Using the Public Site, send a certificate signing request (CSR) by using theEnroll function. Using either Internet Explorer or Firefox, you can generate a key for a certificate to be signed by the CryptoHub.
2
After sending in a CSR, log in to the CA Account Site by using the Operations certificate, find the certificate in the pending section, and issue it. Proper application configuration with the HSM enables you to issue and retrieve the certificate from the web.