Every Certificate Authority (CA) has a certificate profile that defines what information is stored in what fields in the certificate: what fields are required, what fields are optional, allowed values for some fields etc. The information required by the X-Road must be present in the certificates, but the fields where it’s stored may vary between different CAs. The X-Road requires the following information to be present in the certificates:

The X-Road supports multiple different certificate profiles, but adding support for a new profile requires coding and a new software version must be released. Usually, the profiles are country-specific and include a hard-coded country code.

X-Road comes with a basic certificate profile implementation that doesn't contain a hard-coded country code and therefore, is not connected to any specific country. The basic profile can be used to get started with X-Road. The basic profile can be used by setting the below CertificateProfileInfo value on the Central Server:

ee.ria.xroad.common.certificateprofile.impl.BasicCertificateProfileInfoProvider

Certificate Profile Info Provider

Certificate profile info provider is a Java class that knows how to read/write the information required by the X-Road from/to certificates. Certificate profile info provider is a Java class must implement CertificateProfileInfoProvider interface that has methods for:

  1. Storing the required information (required by both the X-Road and CA) in a CSR when a new certificate request is generated.

  2. Parsing instance identifier, member class and member code from a certificate.

Technically, the X-Road requires instance identifier, member class and member code to be present in sign certificate only – the X-Road does not read any values from authentication certificate.

Example

The certificate profile used in Finland:

Sign cert:

C=<contry code>
O=<organization name>
serialNumber=<instanceIdentifier>/<serverCode>/<memberClass>
CN=<organization business id>

Authentication cert:

C=<contry code>
O=<organization name>
serialNumber=<instanceIdentifier>/<serverCode>/<memberClass>
CN=<security server FQDN>

The X-Road requires instance identifier, member class and member code to be present in the sign cert.

The way information is stored and what fields are used come from the CA’s requirements.

Java classes that implement the profile:

New certificate profile implementations can be submitted to the X-Road source code repository as pull requests by following the contributing guidelines.

(blue star) Related articles

The content by label feature automatically displays related articles based on labels you choose. To edit options for this feature, select the placeholder and tap the pencil icon.