Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: New article for IDM 5.0.1.

Comment: Potentially a new article?

Info

This article is new for Smart ID Identity Manager 245.0.R11.

Bootstrapping of the sign and encrypt engine must be done before the system is used for the first time. Bootstrapping of production systems involve use of various certificate authorities to generate keys and issue certificates used by Identity Manager.

Most descriptors, such as EncryptedFields and ObjectHistorySigner, always require proper bootstrapping for secure operation. However, depending Depending on the subset of Identity Manager features to be used, certain descriptors may be configured with placeholder keys and certificates, for example, SignEmailDescriptor, if E-Mail email signing in Identity Manager is not enabled.

Production systems can neither rely on any default keys that were installed with some older version nor on the development and test bootstrapping tools. Certificates must instead be requested and issued by real Certification Authorities (CA), taking care that they fulfill all requirements, and then installed prior to the first start of the system.

Bootstrapping an already used system

If Identity Manager has already been used with test certificates, the insecure certificates have probably been used. Object history entries and secrets were likely created with the demo keys and any exported configurations may have been signed and encrypted with the demo keys too. In this case, the without proper bootstrapping, the system must be bootstrapped again as described in this article. After the bootstrapping:

...

The first step is to go through the list of all descriptors and fill out this the table for all the descriptors.

...

Detailed overview to identify requirements

Requirement type

Comment

More detail

Setup

Is this descriptor required in your installation? Most descriptors are required.

...

A few are only required if you use the feature they support.

In the list of descriptors, see use case.

Placeholder

...

Are you going to use a placeholder? If a descriptor is required but you do not need its use case, use a placeholder with some dummy certificate.

In the list of descriptors, see use case.

HSM

...

Where will you store the keys and/or certificates? Most keys and/or certificates can be stored in an HSM. An HSM is more secure than a file.

In the list of descriptors, see storage.

Key type or size

...

Are you using RSA or ECC? What key size?

In the list of descriptors, see key requirements.

...

Key usage: In most cases this is not required but recommended. In the list of descriptors, see certificate requirements.

Validity

-

In the list of descriptors, see certificate requirements.

Trusted by

...

Who needs to trust the certificate? You may need to install the certificate or the issuer’s certificate to a machine.

In the list of descriptors, see general requirements and certificate requirements.

Issuer

...

Who will issue this certificate? This will depend on who needs to trust it. You can use more than one CA. The choices are:

  • any CA, for example, your own SmartID Certificate Manager or a public CA.

  • a trusted S/MIME CA. This is needed in case you want Identity Manager to sign emails, otherwise clients may fail to validate the emails.

  • for placeholders or certificates that do not require trust, you can create your own keypairs and certificates with any suitable tool you like.

In the list of descriptors, see certificate requirements.

Request certificates

For all the required descriptors, generate keypairs and Certification Signing Requests (CSRs) and request the certificates or create your own. If you want to store the keys in a Hardware Security Module (HSM), which is highly recommended, use it for generating keypairs.

...

  1. Import the certificates into your HSM and/or place any of the credentials which are stored in PKCS#12 files to the correct location:

    1. Tomcat on Windows: C:\PATH\TO\TOMCAT\webapps\idm-[admin|operator]\WEB-INF\classes\

    2. Tomcat on Linux: /path/to/tomcat/idm-[admin|operator]/WEB-INF/classes/

    3. Docker on Linux: /PATH/TO/smartid/docker/compose/certs/(additionally /PATH/TO/smartid/docker/compose/cacerts/ for CA certificates that need to be trusted)

  2. Edit the XML configuration file(s) to reference the appropriate files:

    1. Tomcat on Windows: C:\PATH\TO\TOMCAT\webapps\idm-[admin|operator]\WEB-INF\classes\engineSignEncryptConfig.xml

    2. Tomcat on Linux: /path/to/tomcat/idm-[admin|operator]/WEB-INF/classes/engineSignEncryptConfig.xml

    3. Docker on Linux: /PATH/TO/smartid/docker/compose/identitymanager/config/signencrypt.xml
      Each file must be referenced by the path within the container, as opposed to the path on the host. For example: file:/certs/MYFILE.p12

  3. Import the configZipSigner certificate or its issuer into the Identity Manager truststore (place it into/PATH/TO/smartid/docker/compose/cacerts/ on docker).