This section covers general configurations on the KMES Series 3 to enable SignTool to integrate with the KMES by using the Futurex CNG library. Then, it shows you how to configure TLS communication between the System/Host API port on the KMES and the Futurex CNG library.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.
Configure general KMES settings
Perform the following tasks to configure the KMES Series 3 for communication with SignTool:- Create a SignTool role with the required permissions.
- Create a SignTool identity with the correct assigned roles.
- Enable Host API commands.
- Create a signing approval group.
- Export the code signing certificate.
- Export the CA certificate that issued the code signing certificate.
- Apply an issuance policy to the code signing certificate
Create a role
Perform the following steps to create a role for Signtool with the required permissions:On the Info tab, set the Type to Application, set a name for the role, such as
SignTool, and set the Logins Required to 1.On the Permissions tab, enable the following permissions:
| Permission | Subpermission |
|---|---|
| Certificate Authority | Export, Upload |
| Keys | Add |
Create a new identity and assign it to the SignTool role
Perform the following steps to create a new identity and assign it to the SignTool role:Go to Identity Management > Identities, right-click anywhere in the window, and select Add > Client Application.
On the Info tab, set the Storage type to Application and set a name for the identity, such as
SignTool.On the Authentication tab, remove the default API Key mechanism, add the Password authentication mechanism, and configure a password.
Enable the Host API commands
Because the Futurex CNG library connects to the Host API port on the KMES, you must define which Host API commands to enable for the FXCNG library. To enable the Host API commands required for Microsoft Signtool operations, complete the following steps:Go to Administration > Configuration > Host API Options and enable the following commands:
| Command | Description |
|---|---|
| ECHO | Communication Test/Retrieve Version |
| RAFA | Filter Issuance Policy |
| RAGA | Retrieve Issuance Policy |
| RAGO | Retrieve Request (Hash Signing) |
| RAUO | Upload Request (Hash Signing) |
| RAGZ | Retrieve Request (Authenticode) |
| RAUZ | Upload Request (Authenticode) |
| RAGJ | Retrieve Request (Jar Signing) |
| RAUJ | Upload Request (Jar Signing) |
| RKCP | Get Command Permissions |
| RKLN | Lookup Objects |
| RKLO | Login User |
| RKRK | Retrieve Generated Keys |
Create a signing approval group
Perform the following steps to create a signing approval group:Create a code signing certificate
This section describes three different methods that you can use to issue a code signing certificate.Use a CA
Perform the following steps to use a CA on the KMES:In the Certificate Authority window, enter a Name for the certificate container, such as
SignTool. Set the owner field to the SignTool role and select [ OK ].On the V3 Extensions tab, select the Certificate Authority profile and select [ OK ].
The Root CA certificate now displays under the SignTool certificate container.
Use an External CA
For this method, you must import the external CA certificates into an empty certificate container on the KMES. Then, generate a Certificate Signing Request (CSR), which the external CA uses to issue a code signing certificate. Finally, import the code signing certificate into the certificate container on the KMES that contains the external CA certificate.In the Certificate Authority window, enter a Name for the certificate container, such as
SignTool. Set the owner field to the SignTool role and select [ OK ].In the Import Certificates window, select [ Add ] and select the external CA certificates for issuing the code signing certificate.
The CA certificates display in the Verified section of the Import Certificates window.
Select [ OK ] to save.
The external CA certificates should now display in tree form under the SignTool certificate container.
To create a placeholder code signing certificate, from which you can generate a CSR, right-click the lowest level CA certificate in the tree and select Add Certificate > Pending.
On the Subject DN tab of the Create X.509 Certificate window, set a Common Name for the certificate, such as
Code Signing.Select [ OK ].
The code signing placeholder certificate now displays under the external CA certificates.
On the Subject DN tab of the Create PKCS #10 Request window, leave all fields set to the default values.0
On the PKCS #10 Info tab, specify a save location for the CSR and select [ OK ].
A message box states that the certificate signing request was successfully written to the location you specified.
Send the CSR file to an external certificate authority (CA).
Using the CSR, the external CA issues a code signing certificate.
After the external CA issues the code signing certificate, copy it to the storage medium you configured on the KMES.
In the Certificate Authorities menu on the KMES, right-click the placeholder code signing certificate and select Replace > With Signed Certificate.
In the Import Certificates window, select [ Add ] and select the externally signed code signing certificate in the file browser.
The code signing certificate displays under the CA certificates in the Verified section of the Import Certificates window.
Import an existing certificate
To perform the steps in this section, you must go to Administration > Configuration > Options and enable the Allow import of certificates using passwords option.
In the Certificate Authority window, enter a Name for the certificate container, such as
imported. Set the owner field to the SignTool role and select [ OK ].Export the code signing certificate
Perform the following steps to export the code signing certificate, no matter which of the preceding methods you used to create it:Right-click the code signing certificate you configured in the previous section, then select Export > Certificate(s).
Change the encoding to PEM and select [ Browse ]. Specify the location where you want to save the file.
Export the CA certificate
Perform the following steps to export the CA certificate that issued the code signing certificate, no matter which method you used to create it:Right-click the CA certificate that issued the code signing certificate and select Export > Certificate(s).
Change the encoding to PEM and select [ Browse ]. Specify the location where you want to save the file.
Apply an issuance policy
Perform the following steps to apply an issuance policy to the code signing certificate:On the Basic Info tab, set Approvals to
0 to allow anonymous signing and select any hashes that you want to allow.Configure TLS communication
Perform the following tasks to configure TLS communication between the KMES Series 3 and the FXCL CNG library:- Create a Certificate Authority (CA).
- Generate a CSR for the System/Host API connection pair.
- Sign the System/Host API CSR.
- Export the Root CA and the signed System/Host API TLS certificate.
- Load the exported certificates into the System/Host API connection pair.
- Generate a signed client certificate for SignTool and FXCNG.
- Allow export of certificates using passwords.
- Export the signed SignTool certificate as a PKCS #12 file.
Create a CA
Perform the following steps to create a Certificate Authority (CA):In the Certificate Authority window, enter a Name for the certificate container, leave all other fields set to the default values, and select [ OK ].
The new certificate container now displays in the Certificate Authorities menu.
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 PKI keys in the User Certificates section.
When warned that SSL will not be functional until new certificates are imported, select [ Yes ] to continue.
In the PKI Parameters window, leave the default settings and select [ OK ].
The Application Public Keys window now shows that a PKI Key Pair is loaded.
On the Subject DN tab, you can leave the default System/Host API value set in the Common Name field, or you can change it to a different value.
Sign the CSR
Perform the following steps to sign the System/Host API CSR:Export the root CA
Perform the following steps to export the root CA and signed System/Host API TLS certificatesChange the encoding to PEM and select [ Browse ]. Specify a save location and name for the export file.
When prompted that the file was successfully written to the location that was selected, select [ OK ].
Change the encoding to PEM and select [ Browse ]. Specify a save location and name for the export file.
Load the TLS certificates
Perform the following steps to load the exported TLS certificates into the System/Host API connection pair:In the file browser, select both the root CA certificate and the signed System/Host API certificate, and select [ Open ].
Select [ OK ] to save the changes.
In the Network Options window, the System/Host API connection pair shows Signed loaded next to Certificates in the User Certificates section
Generate a TLS certificate
Perform the following steps to generate a signed client TLS certificate for SignTool and FXCNG:Allow export of certificates
Perform the following steps to configure the Allow export of certificates by using passwords option:Export the certificate
Perform the following steps to export the signed SignTool client TLS certificate as a PKCS #12 file:In the Export Certificate window, select Export Selected Certificate under Export Options and select [ Next ].
Specify a name for the PKCS #12 export file and select [ Open ].
A message box states that the PKCS #12 certificate export was successful.

