This section shows you how to configure TLS communication between the KMES Series 3 and the Jenkins instance and then covers general KMES configurations for the KMES to provide Jenkins code-signing functionality.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 TLS communication
Perform the following tasks to configure TLS communication between the KMES Series 3 and the Jenkins instance:- 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 signed System/Host API TLS certificate.
- Load the exported certificates into the System/Host API connection pair.
- Generate a signed client certificate for the Jenkins instance.
- Allow export of certificates by using passwords.
- Export the signed Jenkins certificate as a PKCS #12 file.
Create a CA
Perform the following steps to create a 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 certificate container that you created 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 all fields set to the default values and select [ OK ].
You see that a PKI Key Pair is loaded in the Application Public Keys window.
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.
When prompted that the certificate signing request was successfully written to the file location that was selected, select [ OK ].
Sign the CSR
Perform the following steps to sign the System/Host API CSR:In the file browser, find and select the CSR that you generated for the System/Host API connection pair.
Export the Root CA and certificates
Perform the following steps to export the Root CA and signed System/Host API certificates:When prompted that the file was successfully written to the location that was selected, select [ OK ].
Load the certificates
Perform the following steps to load the exported certificates into the System/Host API connection pair:Under the System/Host API connection pair, select [ Edit ] next to Certificates in the User Certificates section.
In the file browser, select both the root CA certificate and the signed System/Host API certificate and select [ Open ].
The certificate chain appears in the window.
Generate a certificate
Perform the following steps to generate a signed certificate for the Jenkins instance:Allow export of certificates
Perform the following steps to configure the allow export of certificates by using passwords function:Export the certificate
Perform the following steps to export the signed Jenkins certificate as a PKCS #12 file:In the Export Certificates window, select Export Selected Certificate with Parents under Export Options, and select [ Next ].
Configure general KMES settings
Perform the following tasks to configure the KMES Series 3 for communication with Jenkins:- Enable Host API commands.
- Create a Jenkins role with the required permissions.
- Create a Jenkins identity with the correct assigned roles.
- Create a signing approval group and give it appropriate permissions.
- Create a Jenkins code signing certificate.
- Apply an issuance policy to the Jenkins code signing certificate.
Enable the API commands
Perform the following steps to enable the required Host API commands:Go to Administration > Configuration > Host API Options and enable the following commands:
| Command | Description |
|---|---|
| RAFA | Enumerate issuance policies |
| RAGA | Retrieve issuance policy details |
| RAGZ | Retrieve Request (Authenticode) |
| RAUZ | Upload Request (Authenticode) |
| RAGJ | Retrieve Request (JAR) |
| RAUJ | Upload Request (JAR) |
| RKLO | Login User |
| RAGO | Retrieve Request (Hash Signing) |
| RAUO | Upload Request (Hash Signing) |
Create a Jenkins role
Perform the following steps to create a Jenkins role with the required permissions:On the Info tab, specify a name for the role, such as
Jenkins. Set the Type to Application, the Role Class to Principal, and Logins Required to 1.On the Permissions tab, select the following permissions:
| Permission | Subpermission |
|---|---|
| Certificate Authority | Export Clear Key, Upload |
Create a Jenkins identity
Perform the following steps to create a Jenkins identity with the correct assigned roles:Go to Identity Management > Identities, right-click the background, and select Add> Client Application.
On the Authentication tab, remove the API key mechanism, add the password mechanism, and set your password.
Create a signing approval group
Perform the following steps to create a signing approval group and give it appropriate permissions:Create a Jenkins code signing certificate
Perform the following steps to create a Jenkins code signing certificate:In the Certificate Authority window, enter a name for the Certificate Container, such as
Jenkins Code Signing CA. Set the owner of the CA to the Jenkins role and select [ OK ]*.The certificate container you just created now displays in the Certificate Authorities menu.
Apply an issuance policy
Perform the following steps to apply an issuance policy to the Jenkins code signing certificate:Right-click the root certificate within the Jenkins certificate container and select Issuance Policy > Add.
On the Basic Info tab, make the following changes:
- (Optional) Specify an Alias.
- Set Approvals to
1. Setting approvals to0allows anonymous signing. - Select any hashes that you want to allow.

