This section starts with general KMES configurations that enable Apache to integrate with the KMES to store the private key used for HTTPS connections. The second half of this section covers the steps to configure TLS communication between the KMES Series 3 and the Futurex PKCS #11 library that Apache uses to communicate with the KMES.Documentation Index
Fetch the complete documentation index at: https://docs.futurex.com/llms.txt
Use this file to discover all available pages before exploring further.
Create a role and identity
Perform the following steps to create a new role and identity for Apache on the device and assign the role to the identity that the Futurex PKCS #11 library uses to connect to the KMES:In the Role Editor window, specify a name for the role, select the Hardened checkbox, and set the number of logins required to 1.
On the Permissions tab, select the following permissions:
| Category | Permissions |
|---|---|
| Certificate Authority | Add, Export |
| Cryptographic Operations | Sign |
| Keys | Add |
Go to the Identity Management> Identities menu, then right-click the pane background and select Add > Client Application.
In the Configure Credential window, set the credential type to Password, enter a password for the credential, and select [ OK ].
The new Password credential now displays with the API Key credential that exists by default.
Enable the Host API commands
Because the Futurex PKCS #11 library connects to the Host API port on the KMES, you must determine which Host API commands are eligible for execution by the FXPKCS11 library. To enable the commands required for the Apache HTTP Server Operation, perform the following steps:Go to Administration > Configuration > Host API Options and enable the following commands:
| Command | Description and additional modifiers |
|---|---|
| ATKG | Manipulate HSM trusted asymmetric key group
|
| ECHO | Communication Test/Retrieve Version |
| RAFA | Filter Issuance Policy |
| RAND | Generate Random Number |
| RKCK | Create HSM Trusted Key |
| RKCP | Get Command Permissions |
| RKCS | Create Symmetric HSM Trusted Key Group |
| RKGP | Export Asymmetric HSM Trusted Key |
| RKGS | Generate Signature |
| RKLN | Lookup Objects |
| RKLO | Login User |
| RKPK | Pop Generated Key |
| TIME | Set Time |
Configure TLS communication
To configure TLS communication between the KMES and PKCS #11 library, you need to perform the following tasks:- Create a Certificate Authority
- Create a CSR pair for the System/Host API connection pair
- Sign the System/Host API CSR
- Export the TLS Root CA certificate
- Export the signed System/Host API TLS certificate
- Load the exported TLS certificates into the System/Host API connection pair
- Generate a TLS private key and certificate signing request for the Futurex PKCS #11 library by using OpenSSL
- Sign the Certificate Signing Request (CSR) for the FXPKCS11 Library
- Export the signed FXPKCS11 TLS certificate
Create a Certificate Authority
In the Certificate Authority dialog, enter a name for the certificate container, leave all other fields set to the default values, and select [ OK ].
Right-click the certificate container that you created and select Add Certificate > New Certificate.
On the Subject DN tab, select the Classic preset and set a Common Name for the certificate, such as
System TLS CA Root.Generate a CSR
Perform the following steps to generate a CSR for the System/Host API connection pair:Under the System/Host API connection pair, uncheck the Use Futurex Certificates checkbox and select [ Edit ] next to the PKI keys in the User Certificates section.
When the SSL will not be functional until new certificates are imported warning displays, select [ Yes ] to continue.
When you see that a PKI Key Pair is loaded in the Application Public Keys dialog, select [ Request ].
Sign the CSR
Perform the following steps to sign the System/Host API CSR:Right-click the System TLS CA Root certificate created previously and select Add Certificate >
From Request.
Export the certificate
Perform the following steps to export the TLS Root CA certificate:In the file browser, navigate to the location where you want to save the TLS root CA certificate. Specify a name for the file and select [ Open ].
Export the TLS certificate
Perform the following steps to export the signed System/Host API TLS certificate:In the file browser, go to the location where you want to save the signed System/Host API TLS certificate. Specify a name for the file and select [ Open ].
Load the exported certificates
Perform the following steps to load the exported TLS certificates into the System/Host API connection pair:In the file browser, select the TLS Root CA certificate and the signed System/Host API TLS certificate, and select [ Open ].
The certificate chain appears in the Verified section.
Select [ OK ] to save the changes.
In the Network Options window, the System/Host API connection pair now shows Signed loaded next to Certificates in the User Certificates section
Generate a private key and CSR
Execute the following commands from a terminal application with OpenSSL to generate a TLS private key and certificate signing request (CSR) for the Futurex PKCS #11 library:Open a terminal and run the following command to generate a TLS private key for the FXPKCS11 library:
Shell
Run the following command to generate a CSR for the FXPKCS11 library:It prompts you to enter certificate information. The CSR outputs to a file named
Shell
fxpkcs11_tls_cert_req.pem in the same directory where you ran the command.Sign the CSR
Perform the following steps to sign the CSR for the FXPKCS11 Library:In the file browser, locate and select the FXPKCS11 CSR. Certificate information populates in the Create X.509 From CSR window.
On the Subject DN tab, change the preset drop-down option to Classic, and set a Common Name for the certificate, such as
FXPKCS11.Export the signed certificate
Perform the following steps to export the signed FXPKCS11 TLS certificate:In the file browser, go to the location where you want to save the FXPKCS11 TLS certificate. Specify a name for the file and select [ Open ].
Select [ OK ].
A Message box says that the PEM file was successfully written to the location that you specified.

