4.0 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/cert-generator.conf
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 "network-root-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 "network-root-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 of the generated key. See Utimaco documentation for more details.
- keyGroup
-
This is an HSM specific parameter that corresponds to key name grouping of 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 3 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.