4.1 KiB
Running the HSM Certificate Generation tool
The purpose of this tool is to facilitate the process of certificate generation on the HSM infrastructure. See hsm-cert-generator
for more details.
See the Readme under network-management
for detailed building instructions.
Configuration file
At startup, the HSM Certificate Generation Tool reads a configuration file, passed with --config-file
on the command line.
- This is an example of what a tool configuration file might look like:
../../network-management/generator.conf
Invoke doorman with -?
for a full list of supported command-line arguments.
General configuration parameters
Allowed parameters are:
- hsmHost
IP address of the HSM device.
- hsmPort
Port number of the HSM device.
- userConfigs
List of user authentication configurations. See below section on User Authentication Configuration.
- certConfig
Certificate specific configuration. See below section on Certificate Configuration.
- trustStoreDirectory
Path to the directory where the generated trust store should be placed. The name of the generated file is "truststore.jks". If the trust store file does not exist, it will be created. IMPORTANT - This trust store is intended to be distributed across the nodes. Nodes are hardcoded to use "truststore.jks" file as the trust store name. As such, it is required that the file name is as the one expected by nodes.
- trustStorePassword
Password for the generated trust store.
Certificate Configuration
- certificateType
Type of the certificate to be created. Allowed values are: ROOT_CA, INTERMEDIATE_CA, NETWORK_MAP.
- rootKeyGroup
This is an HSM specific parameter that corresponds to key name spacing for the root key. It is ignored if the certificateType value is ROOT_CA. See Utimaco documentation for more details.
- subject
X500Name formatted string to be used as the certificate public key subject.
- validDays
Days number for certificate validity.
- crlDistributionUrl
Url to the certificate revocation list of this certificate. If not defined the CRL information will not be added to the certificate.
- crlIssuer
X500 name of the certificate revocation list issuer - e.g. "L=London, C=GB, OU=Org Unit, CN=Service Name". If the crlDistributionUrl configuration option is specified but this parameter is not, then the certificate issuing authority is considered to be the CRL issuer for this certificate.
- keyCurve
Key algorithm curve type. See Utimaco supported values. "NIST-P256" has been used for experiments.
- keyExport
Enables key exporting. 1 for allow, 0 for deny.
- keyGenMechanism
HSM key generation process specific options. In the experiments the integer value being the logic OR of the two following (MECH_KEYGEN_UNCOMP = 4 or MECH_RND_REAL = 0) has been used. See Utimaco documentation for more details.
- keyOverride
Whether to override the key if already exists or not. 1 for override and 0 for NOT override.
- keySpecifier
This is an HSM specific parameter that corresponds to key name spacing. See Utimaco documentation for more details.
- keyGroup
This is an HSM specific parameter that corresponds to key name spacing for the generated key. See Utimaco documentation for more details.
User Authentication Configuration
Allowed parameters are:
- username
HSM username. This user needs to be allowed to generate keys/certificates and store them in HSM.
- authMode
One of the 2 possible authentication modes: PASSWORD - User's password as set-up in the HSM CARD_READER - Smart card reader authentication KEY_FILE - Key file based authentication.
- authToken
Depending on the authMode it is either user's password or path to the authentication key file. In case of the CARD_READER authMode value, this can be omitted.
- keyFilePassword
Only relevant, if authMode == KEY_FILE. It is the key file password.