Skip to content

X-Road: System Parameters User Guide

Version: 2.85 Doc. ID: UG-SYSPAR

DateVersionDescriptionAuthor
29.05.20151.0First draftSiim Annuk
01.06.20151.1Some corrections done, typos fixedSiim Annuk
30.06.20151.2Minor corrections doneVello Hansen, Imbi Nõgisto
26.08.20151.3Corrections regarding SQL doneMarju Ignatjeva
09.09.20152.0Editorial changes madeImbi Nõgisto
11.09.20152.1Global configuration generation interval addedMartin Lind
20.09.20152.2Editorial changes madeImbi Nõgisto
23.09.20152.3Warning added about changing system parametersSiim Annuk
24.09.20152.4Note added about setting the timeStampingIntervalSeconds system parameterSiim Annuk
07.10.20152.5Default value of the parameter acceptable-timestamp-failure-period set to 14400Kristo Heero
8.12.20152.6New parameters for configuring signature algorithms and key length, proxy client-side TLS protocols, and software token pin policyJarkko Hyöty
8.12.20152.7Added parameters for toggling SOAP body logging on/offJanne Mattila
17.12.20152.8Added monitoring parametersIlkka Seppälä
28.1.20162.9Added configuration client admin portIlkka Seppälä
04.10.20162.10Converted to markdown formatSami Kallio
05.10.20162.11Added options for proxy client and server connections. Clarified client-timeout option.Olli Lindgren
02.11.20162.12Fix ocspFreshnessSeconds description in system parameters document.Ilkka Seppälä
01.12.20172.13Added documentation for minimum global conf versionSami Kallio
20.01.20172.14Added license text and version historySami Kallio
08.02.20172.15Updated documentation with new environmental monitoring parameters describing sensor intervalsSami Kallio
23.02.20172.16Added documentation for OCSP-response retrieval deactivation parameterTatu Repo
03.03.20172.17Added new parameter jetty-ocsp-responder-configuration-fileKristo Heero
07.03.20172.18Added new parameters ocsp-responder-client-connect-timeout and ocsp-responder-client-read-timeoutKristo Heero
11.04.20172.19Changed default values of the proxy parameter client-timeout to 30000, client-use-fastest-connecting-ssl-socket-autoclose and client-use-idle-connection-monitor to true. Added new messagelog parameters timestamper-client-connect-timeout and timestamper-client-read-timeout. Changed default value of the proxy parameter pool-validate-connections-after-inactivity-of-millis to 2000.Kristo Heero
06.06.20172.20Removed parameter default-signature-algorithm, replaced parameters csr-signature-algorithm with csr-signature-digest-algorithm, signature-algorithm-id with signature-digest-algorithm-id, and confSignAlgoId with confSignDigestAlgoId. Added new proxy-ui parameter auth-cert-reg-signature-digest-algorithm-id.Kristo Heero
14.06.20172.21Added new parameter allowed-federations for enabling federation in a security server.Olli Lindgren
11.07.20172.22Changed connector SO-linger values to -1 as per code changesTatu Repo
18.08.20172.23Update wsdl-validator-command descriptionJarkko Hyöty
31.08.20172.24Moved ocsp-cache-path and enforce-token-pin-policy from under proxy to under signer and added them to central server and configuration proxy listsTatu Repo
17.10.20172.25Added new security server env-monitor parameter (limit-remote-data-set).Joni Laurila
20.10.20172.26Clarified the effects of disabling SOAP body logging on the SOAP Headers. Split the system parameters to different tables for readabilityOlli Lindgren
22.11.20172.27Default changed to vanilla. New colums added for FI and EE values.Antti Luoma
02.01.20182.28Added proxy parameter allow-get-wsdl-request.Ilkka Seppälä
29.01.20182.29Removed proxy parameter client-fastest-connecting-ssl-use-uri-cache. Added proxy parameter client-fastest-connecting-ssl-uri-cache-period.Ilkka Seppälä
05.03.20182.30Added reference to terms and abbreviations, modified reference handling, added numbering.Tatu Repo
06.04.20182.31Removed TLSv1.1 support (client-side interfaces for incoming request) and TLS SHA-1 ciphers from default ciphers list.Kristo Heero
18.08.20182.32Added new parameter ocsp-retry-delayPetteri Kivimäki
08.10.20182.33Added new parameter xroad-tls-ciphersHenri Haapakanni
18.10.20182.34Default value of the parameter signer.client-timeout set to 60000Petteri Kivimäki
25.10.20182.35Update note regarding supported cipher suites on RHEL 7Petteri Kivimäki
26.10.20182.36Added new parameter module-manager-update-intervalPetteri Kivimäki
08.11.20182.37Improved definition of minimum-global-configuration-version on the central server and configuration proxyIlkka Seppälä
19.12.20182.38Fixed the default value of trusted-anchors-allowedIlkka Seppälä
21.12.20182.39Add connector initial idle time parametersJarkko Hyöty
23.01.20192.40Added new Central Server parameter auto-approve-auth-cert-reg-requestsPetteri Kivimäki
31.01.20192.41REST message log parametersJarkko Hyöty
03.02.20192.42Added new Central Server parameter auto-approve-client-reg-requestsPetteri Kivimäki
27.03.20192.43Added management REST API parametersJanne Mattila
02.04.20192.44Added new message log parameter clean-transaction-batchJarkko Hyöty
08.04.20192.45Update REST related message log parameters' descriptionsPetteri Kivimäki
30.04.20192.46Added new parameter timestamp-retry-delayPetteri Kivimäki
02.07.20192.47Added new Central Server parameter auto-approve-owner-change-requestsPetteri Kivimäki
26.11.20192.48Add proxy serverconf caching parametersJarkko Hyöty
05.12.20192.49Fix broken link in Table of ContentsTapio Jaakkola
11.12.20192.50Added new Central Server parameter ha-node-nameJarkko Hyöty
01.04.20202.51Added new management REST API parameters key-management-api-whitelist and regular-api-whitelistJanne Mattila
03.04.20202.52Removed proxy parameter allow-get-wsdl-request.Petteri Kivimäki
12.04.20202.53Updated connector-host property EE-package value.Petteri Kivimäki
30.04.20202.54Added new parameter enforce-client-is-cert-validity-period-checkMärten Soo
01.07.20202.55Updated enforce-token-pin-policy property EE-package value.Petteri Kivimäki
30.07.20202.56Moved proxy-ui parameters into proxy-ui-api parametersJanne Mattila
30.07.20202.57CS default database password is autogenerated.Ilkka Seppälä
13.10.20202.58Add new parameter akka-use-secure-remote-transportJarkko Hyöty
11.02.20212.59Add new parameter auto-update-timestamp-service-urlIlkka Seppälä
01.06.20212.60Add new parameter messagelog.archive-groupingJarkko Hyöty
04.08.20212.61Add new parameters for messagelog archive encryptionJarkko Hyöty
25.08.20212.62Update X-Road references from version 6 to 7Caro Hautamäki
31.08.20212.63Update messagelog and proxy parametersIlkka Seppälä
05.10.20212.64Added a new chapter about custom command line arguments 6Caro Hautamäki
13.04.20222.65Corrected message logging max body size parameter nameRaido Kaju
28.04.20222.66Updated max-loggable-message-body-size property EE-package value.Ričardas Bučiūnas
23.09.20222.67Added new Registration Web ServiceEneli Reimets
30.09.20222.68Updated key-length property EE- and FI-package values.Petteri Kivimäki
30.01.20232.69Updated 13.3 Automatic Backups chapter with latest configuration additions.Ričardas Bučiūnas
26.05.20232.70Add rate-limit propertiesRičardas Bučiūnas
01.06.20232.71Update and add missing descriptions for to Central server configuration parameters.Ovidijus Narkevičius
05.06.20232.72Update global configuration generation rate parameterAndres Rosenthal
15.06.20232.73Added strict-identifier-checks parameterMadis Loitmaa
13.06.20232.74Add configurable max request size constrains for central server admin service.Andres Rosenthal
13.06.20232.75Added new complementary-user-role-mappings parametersAndres Rosenthal
24.08.20232.76Added new server-min-supported-client-version parameterEneli Reimets
02.10.20232.77Remove the separate section about changing the global configuration interval on the Central Server.Petteri Kivimäki
16.10.20232.78Added new allow-csr-for-key-with-certificate parameterJustas Samuolis
02.10.20232.79Remove Akka referencesRičardas Bučiūnas
18.10.20232.80Add gRPC propertiesRičardas Bučiūnas
23.10.20232.81Update supported command line argumentsPetteri Kivimäki
09.11.20232.82Added new global_conf_tls_cert_verification, global_conf_hostname_verification parametersEneli Reimets
20.11.20232.83Update information regarding connector-host parameterTaavi Meinberg
08.12.20232.84Update the complementary-user-role-mappings parameter definitionPetteri Kivimäki
08.12.20232.85Update security server proxy client http and https default portsMikk-Erik Bachmann

Table of Contents

License

This document is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/3.0/.

1 Introduction

This document describes the system parameters of the X-Road components – of the security server, the central server and the configuration proxy. Additionally, changing the default values of the system parameters are explained. Please note the term 'vanilla' in the documentation. In X-Road context vanilla means the X-Road without any of the country specific customizations, settings etc. The vanilla version of X-Road security server is installed with xroad-securityserver package. The country specific versions are installed with xroad-securityserver-XX where XX is the country code f.ex. FI or EE.

1.1 Terms and abbreviations

See X-Road terms and abbreviations documentation [TA-TERMS].

1.2 References

  1. [INI] INI file, http://en.wikipedia.org/wiki/INI_file.
  2. [CRON] Quartz Scheduler CRON expression, http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/tutorial-lesson-06.html.
  3. [PR-MESS] X-Road Message Protocol v. 4.0.
  4. [PR-TARGETSS] Security Server Targeting Extension for the X-Road Message Protocol.
  5. [PR-SECTOKEN] Security Token Extension for the X-Road Message Protocol.
  6. [TA-TERMS] X-Road Terms and Abbreviations.
  7. [CRONMAN] http://linux.die.net/man/8/cron.
  8. [CRONHOW] Cron format specifications https://help.ubuntu.com/community/CronHowto.
  9. [PR-REST] X-Road Message Protocol for REST v. 1.0.
  10. [IG-CSHA] X-Road 7. Central Server High Availability Installation Guide. Document ID: IG-CSHA
  11. [UG-SS] X-Road 7. Security Server User Guide. Document ID: UG-SS

2 Changing the System Parameter Values

The system parameters specify various characteristics of the system, such as port numbers, timeouts and paths to files on disk. The system parameters of the X-Road components are mainly stored in configuration files. Additionally, X-Road central server stores some system parameters in the database.

Changing the values of the system parameters is strongly discouraged, since it may cause unexpected system behaviour.

2.1 Changing the System Parameter Values in Configuration Files

The configuration files are INI files [INI], where each section contains parameters for a particular server component.

In order to override the default values of system parameters, create or edit the file

/etc/xroad/conf.d/local.ini

Each system parameter affects a specific server component. To change the value of a system parameter, a section for the affected component must be created in the INI file. The name-value pairs of the system parameters for that component are written under the section, one pair per line.

The following format is used for the sections:

[ServerComponent]
SystemParameterName1=Value1
SystemParameterName2=Value2

For example, to configure the parameter client-http-port for the proxy component, the following lines must be added to the configuration file:

[proxy]
client-http-port=1234

Multiple parameters can be configured under the same section:

[proxy]
client-http-port=1234
server-listen-port=20000

NB! Changing the parameter values in the configuration files requires restarting of the server.

WARNING! The value of the parameter is not validated, thus care must be taken when changing the value. For example, setting the port number to a non-numeric value in the configuration will cause the system to crash.

2.2 Changing the System Parameter Values in the Central Server Database

The central server database can be accessed with the psql utility using the following command (password is defined in /etc/xroad/db.properties):

psql -U centerui -h localhost centerui_production

The default value of a system parameter can be overridden by adding the parameter name and value to the system_parameters table:

INSERT INTO system_parameters (key, value, created_at, updated_at) VALUES ('parameter_name', 'parameter_value', (now() at time zone 'utc'), (now() at time zone 'utc'));

To edit the value of a system parameter already inserted into the system_parameters table:

UPDATE system_parameters SET value = '*parameter_value*', updated_at = (now() at time zone 'utc') WHERE key = 'parameter_name';

To restore the default value of a system parameter, delete the parameter from the system_parameters table:

DELETE FROM system_parameters WHERE key = 'parameter_name';

NB! Modifying or deleting system parameters other than the ones listed in section System Parameters in the Database will cause the system to crash.

3 Security Server System Parameters

This chapter describes the system parameters used by the components of the X-Road security server. For instructions on how to change the parameter values, see section Changing the System Parameter Values in Configuration Files.

3.1 Common parameters : [common]

ParameterDefault valueDescription
configuration-path/etc/xroad/globalconf/Absolute path to the directory where global configuration is stored.
temp-files-path/var/tmp/xroad/Absolute path to the directory where temporary files are stored.
grpc-internal-host127.0.0.1Bind gRPC servers to a specific host.
grpc-internal-tls-enabledtrueEnables mTLS for gRPC services
grpc-internal-keystore/var/run/xroad/xroad-grpc-internal-keystore.p12gRPC keystore for mTLS configuration.
grpc-internal-keystore-password<generated-value>gRPC keystore password.
grpc-internal-truststore/var/run/xroad/xroad-grpc-internal-keystore.p12gRPC truststore for mTLS configuration.
grpc-internal-truststore-password<generated-value>gRPC truststore password.

3.2 Proxy parameters: [proxy]

ParameterDefault valueFI-package valueEE-package valueDescription
client-http-port808080TCP port on which the service client's security server listens for HTTP requests from client applications.
client-https-port8443443TCP port on which the service client's security server listens for HTTPS requests from client applications.
client-timeout30000Defines the time period (in milliseconds), for which the service client's security server tries to connect to the service provider's security server. When the timeout is reached, the service client's security server informs the service client's information system that a service timeout has occurred.
configuration-anchor-file/etc/xroad/configuration-anchor.xmlAbsolute file name of the configuration anchor that is used to download global configuration.
connector-host0.0.0.0127.0.0.1IP address on which the service client's security server listens for connections from client applications. The value 0.0.0.0 allows listening on all IPv4 interfaces. The value 127.0.0.1 allows listening on localhost only. NB! Changing this value could make your Security Server externally accessible and as such, a firewall rules should be implemented first to limit access to trusted hosts.
database-properties/etc/xroad/db.propertiesAbsolute file name of the properties file for the configuration of the security server database.
ocsp-responder-listen-address0.0.0.0IP address on which the service provider's security server listens for requests for OCSP responses from the service client's security server. The service client's security server downloads OCSP responses from the service provider's security server while establishing a secure connection between the security servers. The value 0.0.0.0 allows listening on all IPv4 interfaces. Must match the value of proxy.server-listen-address.
ocsp-responder-port5577TCP port on which the service provider's security server listens for requests for OCSP responses from the service client's security server. The service client's security server downloads OCSP responses from the service provider's security server while establishing a secure connection between the security servers.
ocsp-responder-client-connect-timeout20000Connect timeout (in milliseconds) of the OCSP responder client. The service client's security server downloads OCSP responses from the service provider's security server while establishing a secure connection between the security servers.
ocsp-responder-client-read-timeout30000Read timeout (in milliseconds) of the OCSP responder client. The service client's security server downloads OCSP responses from the service provider's security server while establishing a secure connection between the security servers.
server-listen-address0.0.0.0IP address on which the service provider's security server listens for connections from the service client's security servers. The value 0.0.0.0 allows listening on all IPv4 interfaces.
server-listen-port5500TCP port on which the service provider's security server listens for connections from the service client's security server.
server-port5500Destination TCP port for outgoing queries in the service client's security server.
jetty-clientproxy-configuration-file/etc/xroad/jetty/clientproxy.xmlAbsolute filename of the Jetty configuration file for the service client's security server. For more information about configuring Jetty server, see https://www.eclipse.org/jetty/documentation/jetty-9/index.html.
jetty-serverproxy-configuration-file/etc/xroad/jetty/serverproxy.xmlAbsolute filename of the Jetty configuration file for the service provider's security server. For more information about configuring Jetty server, see https://www.eclipse.org/jetty/documentation/jetty-9/index.html.
jetty-ocsp-responder-configuration-file/etc/xroad/jetty/ocsp-responder.xmlAbsolute filename of the Jetty configuration file for the OCSP responder of the service provider's security server. For more information about configuring Jetty server, see https://www.eclipse.org/jetty/documentation/jetty-9/index.html.
ssl-enabledtrueIf true, TLS is used for connections between the service client's and service provider's security servers.
client-tls-ciphersSee 1TLS ciphers (comma-separated list) enabled on the client-side interfaces (for both incoming and outgoing requests). (since version 6.7)
xroad-tls-ciphersSee 2TLS ciphers (comma-separated list in preferred order) accepted on requests between security servers, and between operational monitoring daemon and client. (since version 6.20)
client-tls-protocolsTLSv1.2TLS protocols (comma-separated list) enabled on the client-side interfaces (for both incoming and outgoing requests). For backward compatibility TLSv1.1 is still supported on the client-side interfaces for outgoing requests (since version 6.7)
server-connector-initial-idle-time30000The initial idle time (in milliseconds) that unauthenticated connections are allowed to be idle before the provider security server starts closing them. Value of 0 means that an infinite idle time is allowed.
server-connector-max-idle-time0120000The maximum time (in milliseconds) that connections from a service consuming security server to a service providing security server are allowed to be idle before the provider security server starts closing them. Value of 0 means that an infinite idle time is allowed. A non-zero value should allow some time for a pooled connection to be idle, if pooled connections are to be supported.
server-connector-so-linger-1The SO_LINGER time (in seconds) at the service providing security server end for connections between security servers.
A value larger than 0 means that upon closing a connection, the system will allow SO_LINGER seconds for the transmission and acknowledgement of all data written to the peer, at which point the socket is closed gracefully. Upon reaching the linger timeout, the socket is closed forcefully, with a TCP RST. Enabling the option with a timeout of zero does a forceful close immediately.
Value of -1 disables the forceful close.
server-support-clients-pooled-connectionsfalsetrueWhether this service providing security server supports pooled connections from the service consumer side. If set to false, connections are to be closed immediately after each message. This may be a wanted approached for security servers behind load balancers.
client-connector-initial-idle-time30000The initial idle time (in milliseconds) that client connections are allowed to be idle before the security server starts closing them. Value of 0 means that an infinite idle time is allowed.
client-connector-max-idle-time0The maximum time (in milliseconds) that connections from a service consumer to the service consumer's security server are allowed to be idle before the security server starts closing them. Value of 0 means that an infinite idle time is allowed.
client-connector-so-linger-1The SO_LINGER time (in seconds) at the service consuming security server end for connections between a consumer and a security server.
A value larger than 0 means that upon closing a connection, the system will allow SO_LINGER seconds for the transmission and acknowledgement of all data written to the peer, at which point the socket is closed gracefully. Upon reaching the linger timeout, the socket is closed forcefully, with a TCP RST. Enabling the option with a timeout of zero does a forceful close immediately.
Value of -1 disables the forceful close.
client-httpclient-timeout0The maximum time (SO_TIMEOUT, in milliseconds) that connections from a service consuming security server to a service providing security server are allowed to wait for a response before the consumer end httpclient gives up. Value of 0 means that an infinite wait time is allowed. This does not affect idle connections.
client-httpclient-so-linger-1The SO_LINGER time (in seconds) at the service consuming security server end for connections between security servers.
A value larger than 0 means that upon closing a connection, the system will allow SO_LINGER seconds for the transmission and acknowledgement of all data written to the peer, at which point the socket is closed gracefully. Upon reaching the linger timeout, the socket is closed forcefully, with a TCP RST. Enabling the option with a timeout of zero does a forceful close immediately.
Value of -1 disables the forceful close.
client-use-idle-connection-monitortrueShould the idle connection monitor be used to clean up idle and expired connections from the connection pool.
client-idle-connection-monitor-interval30000How often (in milliseconds) should the connection monitor go through the pooled connections to see if it can clean up any idle or expired connections. This option requires the connection monitor to be enabled to have any effect.
client-idle-connection-monitor-timeout60000The minimum time (in milliseconds) that a pooled connection must be unused (idle) before it can be removed from the pool. Note that removal from the pool also depends on how often the connection monitor runs. This option requires the connection monitor to be enabled to have any effect.
pool-total-max-connections10000The total maximum number of connections that are allowed in the pool.
pool-total-default-max-connections-per-route2500The default route specific connection maximum that is set unless a route specific connection limit is set. Due to the current implementation, this is actually the total maximum limit of connections, indepedent of what the above setting is.
pool-validate-connections-after-inactivity-of-millis2000When reusing a pooled connection to a service providing security server, check that the connection (the socket) is not half-closed if it has been idle for at least this many milliseconds. This method cannot detect half-open connections. Value of -1 disables the check.
pool-enable-connection-reusefalsetrueAllow pooled connections between security servers to be used more than once on the client side. The service provider end of the connections has to have the setting server-support-clients-pooled-connections=true for the pooling to work between a provider and consumer security servers.
client-use-fastest-connecting-ssl-socket-autoclosetrueOn TLS connections between security servers, should the underlying TCP-layer connection (socket) be closed on the service consumer end when the TLS layer connection is terminated.
client-fastest-connecting-ssl-uri-cache-period3600When a service consumer's security server finds the fastest responding service providing security server, how long the result should be kept in the TLS session cache? 0 to disable.
health-check-port0 (disabled)The TCP port where the health check service listens to requests. Setting the port to 0 disables the health check service completely.
health-check-interface0.0.0.0The network interface where the health check service listens to requests. Default is all available interfaces.
grpc-port5567The (localhost) port where the proxy gRPC server binds to. Used for communicating with xroad-signer and xroad-monitor.
server-conf-cache-period60Number of seconds to keep selected serverconf configuration items in memory
server-conf-client-cache-size100Maximum number of local clients to keep cached
server-conf-service-cache-size1000Maximum number of services to keep cached
server-conf-acl-cache-size100000Maximum number of access rights to keep cached in memory.
enforce-client-is-cert-validity-period-checkfalseWhether to reject a request when client information system certificate is expired or not yet valid.
backup-encryption-enabledfalseWhether to encrypt security server backup files using server's OpenPGP key.
backup-encryption-keyidsComma-separated list of additional recipient OpenPGP key identifiers.
server-min-supported-client-versionMinimum version of the client Security Server that is allowed to access a service. This property must be configured on the service provider Security Server.

Note about database-properties file: Management REST API module uses the same database-properties file, but limits the configuration parameters usage:

  • hibernate.dialect cannot be changed, it is fixed to a custom PostgreSQL dialect.
  • out of hibernate.connection.* parameters, only url, username and password can be configured.

This in practice limits configurability to different kinds of PostgreSQL database configurations, and it is not possible to use for example MySQL as a data store for REST API module.

3.3 Proxy User Interface parameters: [proxy-ui]

Proxy-ui has been removed in version 6.24 and it's parameters are not used anymore.

proxy-ui-api parameters replace the old [proxy-ui] parameters.

3.4 Signer parameters: [signer]

ParameterDefault valueFI-package valueEE-package valueDescription
ocsp-cache-path/var/cache/xroadAbsolute path to the directory where the cached OCSP responses are stored.
enforce-token-pin-policyfalsetruetrueControls enforcing the token pin policy. When set to true, software token pin is required to be at least 10 ASCII characters from at least tree character classes (lowercase letters, uppercase letters, digits, special characters). (since version 6.7.7)
client-timeout60000Signing timeout in milliseconds.
device-configuration-file/etc/xroad/signer/devices.iniAbsolute filename of the configuration file of the signature creation devices.
key-configuration-file/etc/xroad/signer/keyconf.xmlAbsolute filename of the configuration file containing signature and authentication keys and certificates.
port5556TCP port on which the signer process listens.
grpc-port5560TCP port on which the signer gRPC services listens.
key-length204830723072Key length for generating authentication and signing keys (since version 6.7)
csr-signature-digest-algorithmSHA-256Certificate Signing Request signature digest algorithm.
Possible values are
- SHA-256,
- SHA-384,
- SHA-512.
ocsp-retry-delay60OCSP retry delay for signer when fetching OCSP responses fail. After failing to fetch OCSP responses signer waits for the time period defined by "ocsp-retry-delay" before trying again. This is repeated until fetching OCSP responses succeeds. After successfully fetching OCSP responses signer returns to normal OCSP refresh schedule defined by "ocspFetchInterval". If the value of "ocsp-retry-delay" is higher than "ocspFetchInterval", the value of "ocspFetchInterval" is used as OCSP retry delay.
module-manager-update-interval60HSM module manager update interval in seconds.
password-store-ipc-key-pathname/Pathname used for generating IPC keys. The purpose of the IPC keys is to share token passwords between signer & its client over interprocess communication

3.5 Anti-DOS parameters: [anti-dos]

ParameterDefault valueDescription
enabledtrueFlag for enabling or disabling the AntiDOS system.
max-cpu-load1.1Maximum allowed CPU load for accepting new connections. If set to > 1.0, then CPU load is not checked.
max-heap-usage1.1Specifies the maximum allowed Java heap usage when accepting new connections. If set to > 1.0, then heap usage is not checked.
max-parallel-connections5000Maximum number of parallel connections for AntiDOS.
min-free-file-handles100Minimum amount of free file handles in the system for accepting new connections. At least one free file handle must be available to accept a new connection.

3.6 Configuration Client parameters: [configuration-client]

ParameterDefault valueDescription
port5665TCP port on which the configuration client process listens.
update-interval60Global configuration download interval in seconds.
admin-port5675TCP port on which the configuration client process listens for admin commands.
allowed-federationsnoneA comma-separated list of case-insensitive X-Road instances that fetching configuration anchors is allowed for. This enables federation with the listed instances if the X-Road instance is already federated at the central server level . Special value none, if present, disables all federation (the default value), while all allows all federations if none is not present. Example: allowed-federations=ee,sv allows federation with example instances EE and Sv while allowed-federations=all,none disables federation. X-Road services xroad-confclient and xroad-proxy need to be restarted (in that order) for the setting change to take effect.
proxy-configuration-backup-cron0 15 3 * * ?Cron expression for proxy configuration automatic backup job
global_conf_tls_cert_verificationtrueIt is possible to disable the verification of the global configuration download TLS certificate. Should be true in production environment
global_conf_hostname_verificationtrueIt is possible to disable the hostname verification. Does the hostname specified in the URL match the hostname specified in the Common Name (CN) of the Central Server’s TLS certificate. Should be true in production environment

3.7 Message log add-on parameters: [message-log]

ParameterDefault valueFI-package valueEE-package valueDescription
message-body-loggingtruefalseWhether message body should be logged or not.

If true, the messages are logged in their original form. If false, the message body is cleared of its contents (SOAP body will have an empty child element inside it; REST message body, service path and query parameters will be omitted). In addition, the SOAP header and REST HTTP headers will only have specific set of elements logged, see Note on logged X-Road message headers . As a side effect, details such as formatting and namespace labels of the xml message can be changed and new elements may be introduced for default values in SOAP header.

Removal of message body is usually done for confidentiality reasons (body contains data that we do not want to have in the logs).

Note that changing the message this way prevents verifying its signature with the asicverifier tool.
soap-body-loggingtruefalse(deprecated, see message-body-logging)
enabled-body-logging-local-producer-subsystemsSubsystem-specific overrides for message body logging when message-body-logging = false.

This parameter defines logging for local producer subsystems, that is, our subsystems that produce some service which external clients use.

Comma-separated list of client identifiers for which message body logging is enabled. For example FI/ORG/1710128-9/SUBSYSTEM_A1, FI/ORG/1710128-9/SUBSYSTEM_A2 where
- FI = x-road instance
- ORG = member class
- 1710128-9 = member code
- SUBSYSTEM_A1 = subsystem code

This parameter can only be used on subsystem-level, it is not possible to configure message body logging per member.

If a subsystem has forward slashes “/” in for example subsystem code, those subsystems can’t be configured with this parameter.
enabled-body-logging-remote-producer-subsystemsSubsystem-specific overrides for remote producer subsystems, that is, remote subsystems that produce services which we use.

Parameter is used when message-body-logging = false.
disabled-body-logging-local-producer-subsystemsSame as enabled-body-logging-local-producer-subsystems, but this parameter is used when message-body-logging = true.
disabled-body-logging-remote-producer-subsystemsSame as enabled-body-logging-remote-producer-subsystems, but this parameter is used when message-body-logging = true.
acceptable-timestamp-failure-period1440018000Defines the time period (in seconds) for how long is time-stamping allowed to fail (for whatever reasons) before the message log stops accepting any more messages (and consequently the security server stops accepting requests). Set to 0 to disable this check. The value of this parameter should not be lower than the value of the central server system parameter timeStampingIntervalSeconds.
archive-interval0 0 0/6 1/1 * ? *CRON expression [CRON] defining the interval of archiving the time-stamped messages.
archive-max-filesize33554432Maximum size for archived files in bytes. Reaching the maximum value triggers file rotation.
archive-path/var/lib/xroadAbsolute path to the directory where time-stamped log records are archived.
clean-interval0 0 0/12 1/1 * ? *CRON expression [CRON] for deleting any time-stamped and archived records that are older than message-log.keep-records-for from the database.
hash-algo-idSHA-512The algorithm identifier used for hashing in the message log.
Possible values are
- SHA-224,
- SHA-256,
- SHA-384,
- SHA-512.
keep-records-for30Number of days to keep time-stamped and archived records in the database of the security server. If a time-stamped and archived message record is older than this value, the record is deleted from the database.
timestamp-immediatelyfalseIf true, the time-stamp is created synchronously for each request message. This is a security policy requirement to guarantee the time-stamp at the time of logging the message.
timestamp-records-limit10000Maximum number of message records to time-stamp in one batch. If the number of message records in a single batch exceeds 70 % of timestamp-records-limit value, a warning is logged in proxy.log.
timestamper-client-connect-timeout20000The timestamper client connect timeout in milliseconds. A timeout of zero is interpreted as an infinite timeout.
timestamper-client-read-timeout60000The timestamper client read timeout in milliseconds. A timeout of zero is interpreted as an infinite timeout.
timestamp-retry-delay60Time-stamp retry delay in seconds when batch time-stamping fails. After failing to batch time-stamp, the timestamper waits for the time period defined by "timestamp-retry-delay" before trying again. This is repeated until fetching a time-stamp succeeds. After successfully fetching a time-stamp, the timestamper returns to normal time-stamping schedule. If the value of "timestamp-retry-delay" is higher than the value of the central server system parameter "timeStampingIntervalSeconds", the value of "timeStampingIntervalSeconds" is used. If the value of "timestamp-retry-delay" is zero, the value of "timeStampingIntervalSeconds" is used.
archive-transaction-batch10000Size of transaction batch for archiving messagelog. This size is not exact because it will always make sure that last archived batch includes timestamp also (this might mean that it will go over transaction size).
max-loggable-message-body-size10485760 (10 MiB)20971520 (20MiB)Maximum loggable REST message body size
truncated-body-allowedfalseIf the REST message body exceeds the maximum loggable body size, truncate the body in the log (true) or reject the message (false).
clean-transaction-batch10000Maximun number of log records to remove in one transaction.
archive-groupingnoneArchive file grouping, one of 'none', 'member' (group by member), 'subsystem' (group by subsystem).
archive-transfer-commandA command that is executed after the (periodic) archiving process e.g. to transfer archive files automatically from the security server. Defaults to no operation.
archive-encryption-enabledfalseIf true, archive files are encrypted using OpenPGP (GnuPG)
archive-gpg-home-directory/etc/xroad/gpghomeGPG home for archive file signing (and default encryption) keys
archive-encryption-keys-configConfiguration file for member identifier to OpenPGP key id mapping. Per-member keys can be used when grouping is by 'member' or 'subsystem' (subsystems use the member's key). See [UG-SS] for details.
archive-default-encryption-keyDefault OpenPGP key id for archive encryption (if not defined, the primary encryption key is used)
messagelog-encryption-enabledfalseIf true, message bodies are stored to the database in an encrypted format
messagelog-keystorePath to the keystore containing the key used in messagelog encryption
messagelog-keystore-passwordMessagelog keystore password
messagelog-key-idIdentifier of the messagelog encryption key

3.7.1 Note on logged X-Road message headers

If the messagelog add-on has the message body logging disabled, only a preconfigured set of the SOAP headers and/or REST HTTP headers will be included in the message log.

SOAP

The logged SOAP headers are the X-Road message headers listed in Chapter 2.2 of the X-Road Message Protocol document [PR-MESS], as well as the representedParty extension of the X-Road protocol described in the extension's XML schema. The security server targeting extension for the X-Road message protocol [PR-TARGETSS] or the Security Token Extension [PR-SECTOKEN] will not be included in the message log.

REST

The logged HTTP headers are the X-Road HTTP headers listed in Chapter 4.3 of the X-Road Message Protocol for REST document [PR-REST], including the security server targeting extension for the X-Road message protocol [PR-TARGETSS]. All other HTTP headers are excluded from the message log.

3.8 Environmental monitoring add-on configuration parameters: [env-monitor]

ParameterDefault valueDescription
port2552TCP port number used in communications with xroad-proxy and xroad-monitor components.
system-metrics-sensor-interval5Interval of systems metrics sensor in seconds. How often system metrics data is collected.
disk-space-sensor-interval60Interval of disk space sensor in seconds. How often disk space data is collected.
exec-listing-sensor-interval60Interval of exec listing sensor in seconds. How often sensor data using external command are collected.
certificate-info-sensor-interval86400Interval of certificate information sensor in seconds. How often certificate data is collected. The first collection is always done after a delay of 10 seconds.
limit-remote-data-setfalseOn/Off switch for filtering out optional monitoring data. With flag set to true, only security server owner can request and get full data set.

3.9 Management REST API parameters: [proxy-ui-api]

ParameterDefault valueDescription
ssl-properties/etc/xroad/ssl.propertiesAbsolute path to file which overrides the default properties of the SSL connections to REST API.
key-management-api-whitelist127.0.0.0/8, ::1Comma-separated list of plain IP addresses or address ranges in CIDR notation, which are allowed to call key management endpoints using basic authentication
regular-api-whitelist0.0.0.0/0, ::/0Comma-separated list of plain IP addresses or address ranges in CIDR notation, which are allowed to call regular endpoints using api key authentication
wsdl-validator-commandThe command to validate the given X-Road service WSDL. The command script must:
a) read the WSDL from the URI given as an argument,
b) return exit code 0 on success,
c) return exit code 0 and write warnings to the standard error (stderr), if warnings occurs,
d) return exit code other then 0 and write error messages to the standard error (stderr), if errors occurs.
Defaults to no operation.
auth-cert-reg-signature-digest-algorithm-idSHA-512Signature digest algorithm used for generating authentication certificate registration request.
Possible values are
- SHA-256,
- SHA-384,
- SHA-512.
auto-update-timestamp-service-urlfalseIf enabled, makes the security server update the timestamping service URLs when they are changed on the central server. In case there are multiple timestamping services with the same name, the update will not be done and a warning is logged instead.
request-size-limit-regular50KBMaximum size of Management REST API requests
request-size-limit-binary-upload10MBMaximum size of Management REST API requests for file uploads
rate-limit-requests-per-second20Management REST API request rate limit per second. Rate limits apply per each requesting IP.
rate-limit-requests-per-minute600Management REST API request rate limit per minute. Rate limits apply per each requesting IP.
rate-limit-cache-size10000Controls how many IP addresses can be remembered in the rate-limit cache Tradeoff between memory usage and protection from a large attack.
allowed-hostnamesDetermines which hostnames are allowed to be used in "Host" header of the HTTP requests. Any hostname is allowed when left unspecified.
cache-default-ttl60Configures default cache expiration in seconds. Cache is hit during authentication requests. Setting the value to -1 disables the cache.
cache-api-key-ttl60Configures Api Key cache expiration in seconds. Can be used by various api services. Setting the value to -1 disables the cache.
strict-identifier-checkstrue*Configures identifier input validation (member code, subsystem code etc).
Values:
true- identifiers must mach pattern ^[a-zA-Z0-9'()+,-.=?]*.
false- identfiers must not contain colon (:), semicolon (;), slashes (/\), percent (%) or control characters.
complementary-user-role-mappingsConfigures additional UNIX groups mapped to X-Road user roles. This property is defined using a separate subsection [proxy-ui-api.complementary-user-role-mappings], for example:

[proxy-ui-api.complementary-user-role-mappings]
XROAD_SECURITY_OFFICER=group1,group2
XROAD_SERVICE_ADMINISTRATOR=group3,group4


Note that following configurations are preconfigured and cannot be redefined:
XROAD_SECURITY_OFFICER=xroad-security-officer
XROAD_REGISTRATION_OFFICER=xroad-registration-officer
XROAD_SERVICE_ADMINISTRATOR=xroad-service-administrator
XROAD_SYSTEM_ADMINISTRATOR=xroad-system-administrator
XROAD_SECURITYSERVER_OBSERVER=xroad-securityserver-observer
allow-csr-for-key-with-certificatefalseControls if generating the new CSR is allowed for a key that has an existing certificate.

NOTE: strict-identifier-checks default value is true for new installations starting from version 7.3.0. It is set to false in local.ini during upgrade process if version installed before upgrade is less than 7.3.0.

Configurable SSL connection parameters are those Spring Boot's common application properties that start with server.ssl.

ssl.properties can be used to override any server.ssl.* property, also those that do not have default values. However, the result of merging default properties and overridden / new properties needs to be a functional combination.

Default values for the SSL properties are

SSL PropertyDefault valueDescription
server.ssl.key-store/etc/xroad/ssl/proxy-ui-api.p12Path to the key store that holds the SSL certificate
server.ssl.key-store-passwordproxy-ui-apiPassword used to access the key store
server.ssl.enabledtrueWhether to enable SSL support
server.ssl.ciphersTLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384Supported SSL ciphers
server.ssl.protocolTLSSSL protocol to use
server.ssl.enabled-protocolsTLSv1.2Enabled SSL protocols

Management REST API module uses database-properties configuration from the proxy parameters, with some additional limitations on configurability (see details in proxy chapter).

4 Central Server System Parameters

The system parameters described in this chapter are used by the X-Road central server, except for the parameters ocspFreshnessSeconds and timeStampingIntervalSeconds.

The values of ocspFreshnessSeconds and timeStampingIntervalSeconds are distributed to the security servers via the global configuration. These parameters determine the interval of calling OCSP responder services and time-stamping services (respectively) by the security servers.

4.1 System Parameters in the Configuration File

For instructions on how to change the parameter values, see section Changing the System Parameter Values in Configuration Files.

4.1.1 Common parameters: [common]

Server componentNameDefault valueDescription
commontemp-files-path/var/tmp/xroad/Absolute path to the directory where temporary files are stored.

4.1.2 Center parameters: [center]

NameDefault valueDescription
conf-backup-path/var/lib/xroad/backup/Absolute path to the directory where configuration backups are stored.
database-properties/etc/xroad/db.propertiesAbsolute path to file where the properties of the database of the central server are stored.
external-directoryexternalconfName of the signed external configuration directory that is distributed to the configuration clients (security servers and/or configuration proxies) of this and federated X-Road instances.
generated-conf-dir/var/lib/xroad/publicAbsolute path to the directory where both the private and shared parameter files are created for distribution.
internal-directoryinternalconfName of the signed internal configuration directory that is distributed to the configuration clients (security servers and/or configuration proxies) of this X-Road instance.
trusted-anchors-allowedtrueTrue if federation is allowed for this X-Road instance.
minimum-global-configuration-version2The minimum supported global configuration version on the central server. This parameter is used if the central server needs to generate multiple versions of global configuration. Note that the support for global configuration V1 has been dropped in X-Road 6.20.0 and since that version the minimum value for this parameter is 2.
auto-approve-auth-cert-reg-requestsfalseTrue if automatic approval of auth cert registration requests is enabled for this X-Road instance. Automatic approval is applied to existing members only.
auto-approve-client-reg-requestsfalseTrue if automatic approval of client registration requests is enabled for this X-Road instance. Automatic approval is applied to existing members only. In addition, automatic approval is applied only if the client registration request has been signed by the member owning the subsystem to be registered as a security server client.
auto-approve-owner-change-requestsfalseTrue if automatic approval of owner change requests is enabled for this X-Road instance. Automatic approval is applied to existing members only.
ha-node-nameCentral server HA node name. See IG-CSHA before modifying this parameter.

4.1.3 Center parameters: [admin-service]

NameDefault valueDescription
allowed-hostnamesDetermines which hostnames are allowed to be used in "Host" header of the HTTP requests. Multiple hostnames can be provided as comma separated list. Any hostname is allowed when left unspecified.
global-configuration-generation-rate-in-seconds60Global Configuration generation interval in seconds.

Global configuration generation interval must be modified with extreme care. Misuse of the global configuration generation interval may hinder the operation of the whole X-Road instance.

The configuration generation interval must be shorter than the value of global configuration expiration interval (confExpireIntervalSeconds), or else the configuration downloaded by the configuration clients (Security Servers or Configuration Proxies) will always expire before valid configuration becomes available. It is highly recommended that the global configuration generation interval is multiple times smaller than the global configuration expiration interval.
rate-limit-enabledtrue
(see Description for more information)
Controls whether the built-in rate limiting is enabled.
Note. If the service is behind a reverse proxy (default), the proxy needs to forward the real IP address for the rate-limiting to work correctly. Therefore, by default, using forward headers is enabled.
If the service is exposed directly, it must not use forwarded (e.g. X-Forwarded-For) headers (can be spoofed by clients), and the corresponding configuration (server.forward-headers-strategy) needs to be disabled (see additional information).
rate-limit-requests-per-second20Controls how many requests from an IP address are allowed per second. To disable this feature, set this value to -1.
rate-limit-requests-per-minute600Controls how many requests from an IP address are allowed per minute. To disable this feature, set this value to -1.
rate-limit-expire-after-access-minutes5Controls how long the rate-limit cache entries are valid
rate-limit-cache-size10000Controls how many IP addresses can be remembered in the rate-limit cache Tradeoff between memory usage and protection from a large attack.
cache-default-ttl60Configures default cache expiration in seconds. Cache is hit during authentication requests. Setting the value to -1 disables the cache.
cache-api-key-ttl60Configures Api Key cache expiration in seconds. Can be used by various api services. Setting the value to -1 disables the cache.
certificate-allowed-extensionsder,crt,pem,cerDetermines which file extensions are allowed when uploading certificate file. To disable this check, leave this value empty.
certificate-allowed-content-typesapplication/x-x509-cert,text/plainDetermines which file content types are allowed when uploading certificate file. Content type is deducted from file extension and file contents. To disable this check, leave this value empty.
xml-allowed-extensionsxmlDetermines which file extensions are allowed when uploading XML file. To disable this check, leave this value empty.
xml-allowed-content-typestext/xml,application/xmlDetermines which file content types are allowed when uploading XML file. Content type is deducted from file extension and file contents. To disable this check, leave this value empty.
backup-allowed-content-typesapplication/pgp-encryptedDetermines which file content types are allowed when uploading backup file. Content type is deducted from file extension and file contents. To disable this check, leave this value empty.
strict-identifier-checkstrue*Configures identifier input validation (member code, subsystem code etc).
Values:
true- identifiers must mach pattern ^[a-zA-Z0-9'()+,-.=?]*.
false- identfiers must not contain colon (:), semicolon (;), slashes (/\), percent (%) or control characters.
request-size-limit-regular50KBMaximum size of Management REST API requests
request-size-limit-binary-upload10MBMaximum size of Management REST API requests for file uploads
complementary-user-role-mappingsConfigures additional UNIX groups mapped to X-Road user roles. This property is defined using a separate subsection [admin-service.complementary-user-role-mappings], for example:

[admin-service.complementary-user-role-mappings]
XROAD_SECURITY_OFFICER=group1,group2
XROAD_SYSTEM_ADMINISTRATOR=group3,group4


Note that following configurations are preconfigured and cannot be redefined:
XROAD_SECURITY_OFFICER=xroad-security-officer
XROAD_REGISTRATION_OFFICER=xroad-registration-officer
XROAD_SYSTEM_ADMINISTRATOR=xroad-system-administrator

NOTE: strict-identifier-checks default value is true for new installations starting from version 7.3.0. It is set to false in local.ini during upgrade process if version installed before upgrade is less than 7.3.0.

4.1.4 Signer parameters: [signer]

NameDefault valueDescription
ocsp-response-retrieval-activefalse
(see Description for more information)
This property is used as an override to deactivate periodic OCSP-response retrieval for components that don't need that functionality, but still use signer.

Values:
false - OCSP-response retrieval jobs are never scheduled
true - periodic OCSP-response retrieval is active based on ocspFetchInterval. Note that if the entire property is missing, it is interpreted as true.

This property is delivered as an override and only for the components where the OCSP-response retrieval jobs need to be deactivated. The property is missing for components that require OCSP-response retrieval to be activated.
ocsp-cache-path/var/cache/xroadAbsolute path to the directory where the cached OCSP responses are stored.
enforce-token-pin-policyfalseControls enforcing the token pin policy. When set to true, software token pin is required to be at least 10 ASCII characters from at least tree character classes (lowercase letters, uppercase letters, digits, special characters). (since version 6.7.7)

4.1.5 Center parameters: [registration-service]

NameDefault valueDescription
rate-limit-enabledtrue
(see Description for more information)
Controls whether the built-in rate limiting is enabled.
Note. If the service is behind a reverse proxy (default), the proxy needs to forward the real IP address for the rate-limiting to work correctly. Therefore, by default, using forward headers is enabled.
If the service is exposed directly, it must not use forwarded (e.g. X-Forwarded-For) headers (can be spoofed by clients), and the corresponding configuration (server.forward-headers-strategy) needs to be disabled (see additional information).
rate-limit-requests-per-second-1Controls how many requests from an IP address are allowed per second. To disable this feature, set this value to -1.
rate-limit-requests-per-minute10Controls how many requests from an IP address are allowed per minute. To disable this feature, set this value to -1.
rate-limit-cache-size10000Controls how many IP addresses can be remembered in the rate-limit cache Tradeoff between memory usage and protection from a large attack.
rate-limit-expire-after-access-minutes2Controls how long the rate-limit cache entries are valid
api-trust-store/etc/xroad/ssl/center-admin-service.p12Path to a trust store containing certificates for the central server admin API.
api-trust-store-passwordcenter-admin-servicePassword for the trust store.
api-base-urlhttps://127.0.0.1:4000/api/v1Central server management API base URL.
api-token<a token with MANAGEMENT_SERVICE role>API token for the central server management API (required). The token needs to have the MANAGEMENT_SERVICE role (and for security, no other roles).

4.1.6 Center parameters: [management-service]

NameDefault valueDescription
rate-limit-enabledtrue
(see Description for more information)
Controls whether the built-in rate limiting is enabled.
Note. If the service is behind a reverse proxy (default), the proxy needs to forward the real IP address for the rate-limiting to work correctly. Therefore, by default, using forward headers is enabled.
If the service is exposed directly, it must not use forwarded (e.g. X-Forwarded-For) headers (can be spoofed by clients), and the corresponding configuration (server.forward-headers-strategy) needs to be disabled (see additional information).
rate-limit-requests-per-second-1Controls how many requests from an IP address are allowed per second. To disable this feature, set this value to -1.
rate-limit-requests-per-minute10Controls how many requests from an IP address are allowed per minute. To disable this feature, set this value to -1.
rate-limit-cache-size10000Controls how many IP addresses can be remembered in the rate-limit cache Tradeoff between memory usage and protection from a large attack.
rate-limit-expire-after-access-minutes2Controls how long the rate-limit cache entries are valid
api-trust-store/etc/xroad/ssl/center-admin-service.p12Path to a trust store containing certificates for the central server admin API.
api-trust-store-passwordcenter-admin-servicePassword for the trust store.
api-base-urlhttps://127.0.0.1:4000/api/v1Central server management API base URL.
api-token<a token with MANAGEMENT_SERVICE role>API token for the central server management API (required). The token needs to have the MANAGEMENT_SERVICE role (and for security, no other roles).

4.2 System Parameters in the Database

This section describes the system parameters used by the X-Road central server. For instructions on how to change the parameter values, see section Changing the System Parameter Values in the Central Server Database.

NameValue typeDefault valueDescription
confExpireIntervalSecondsinteger600Time in seconds of the validity of the configuration after creation.
confHashAlgoUristringhttp://www.w3.org/2001/04/xmlenc#sha512URI of the algorithm used for calculating the hash values of the global configuration files.
Possible values are
http://www.w3.org/2001/04/xmlenc#sha256,
http://www.w3.org/2001/04/xmlenc#sha512.
confSignDigestAlgoIdstringSHA-512Identifier of the digest algorithm used for signing the global configuration.
Possible values are
- SHA-256,
- SHA-384,
- SHA-512.
confSignCertHashAlgoUristringhttp://www.w3.org/2001/04/xmlenc#sha512URI of the algorithm used for calculating the hash value of the certificate used to sign the global configuration.
Possible values are
http://www.w3.org/2001/04/xmlenc#sha256,
http://www.w3.org/2001/04/xmlenc#sha512.
ocspFreshnessSecondsinteger3600Defines the validity period (in seconds) for the OCSP responses retrieved from the OCSP responders. OCSP responses older than the validity period are considered expired and cannot be used for certificate verification.
timeStampingIntervalSecondsinteger60Defines the interval of time-stamping service calls. Interval in seconds after which message log records must be timestamped. The interval must be between 60 and 86400 seconds. Note: this value must be less than ocspFreshnessSeconds.

5 Configuration Proxy System Parameters

This chapter describes the system parameters used by the X-Road configuration proxy.

5.1 Configuration proxy module parameters: [configuration-proxy]

NameDefault valueDescription
address0.0.0.0The public IP or NAT address which is accessed for downloading the distributed global configuration.
configuration-path/etc/xroad/configurationproxy/Absolute path to the directory containing the configuration files of the configuration proxy instance.
generated-conf-path/var/lib/xroad/publicAbsolute path to the public web server directory where the global configuration files that this configuration proxy generates are be placed for distribution.
signature-digest-algorithm-idSHA-512ID of the digest algorithm the configuration proxy uses when computing global configuration signatures.
The possible values are
- SHA-256,
- SHA-384,
- SHA-512.
hash-algorithm-urihttp://www.w3.org/2001/04/xmlenc#sha512URI that identifies the algorithm the configuration proxy uses when calculating hash values for the global configuration files.
The possible values are
http://www.w3.org/2001/04/xmlenc#sha256,
http://www.w3.org/2001/04/xmlenc#sha512
download-script/usr/share/xroad/scripts/download_instance_configuration.shAbsolute path to the location of the script that initializes the global configuration download procedure.
minimum-global-configuration-version2The minimum supported global configuration version on the configuration proxy. This parameter is used if the configuration proxy needs to distribute multiple versions of global configuration. Note that the support for global configuration V1 has been dropped in X-Road 6.20.0 and since that version the minimum value for this parameter is 2.

5.2 Signer parameters: [signer]

NameDefault valueDescription
ocsp-response-retrieval-activefalse
(see Description for more information)
This property is used as an override to deactivate periodic OCSP-response retrieval for components that don't need that functionality, but still use signer.

Values:
false - OCSP-response retrieval jobs are never scheduled
true - periodic OCSP-response retrieval is active based on ocspFetchInterval. Note that if the entire property is missing, it is interpreted as true.

This property is delivered as an override and only for the components where the OCSP-response retrieval jobs need to be deactivated. The property is missing for components that require OCSP-response retrieval to be activated.
ocsp-cache-path/var/cache/xroadAbsolute path to the directory where the cached OCSP responses are stored.
enforce-token-pin-policyfalseControls enforcing the token pin policy. When set to true, software token pin is required to be at least 10 ASCII characters from at least tree character classes (lowercase letters, uppercase letters, digits, special characters). (since version 6.7.7)

[1] Default value for proxy.client-tls-ciphers.

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384

[2] Default value for proxy.xroad-tls-ciphers.

TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_DHE_RSA_WITH_AES_256_CBC_SHA256

(see https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSEProvider for possible values)

Note. OpenJDK 8 on RHEL 7 supports ECDHE key agreement protocol starting from RHEL 7.3. In RHEL 7 versions prior to RHEL 7.3 only DHE cipher suites are supported.

6 Adding command line arguments

Sometimes you may need to provide command line arguments for Security Server, Central Server or Configuration Proxy, in order to override some parameters. For example if you wish to increase Java's maximum heap size, you can do it with the properties file /etc/xroad/services/local.properties. The file is also included in the backup archive file when taking a configuration backup of either Central Server or Security Server.

6.1 The configuration file

The file /etc/xroad/services/local.properties replaces the file /etc/xroad/services/local.conf starting from X-Road version 7.

The local.properties file's contents consists of key-value pairs such as XROAD_SIGNER_PARAMS=-XX:MaxMetaspaceSize=100m. Notice that you cannot use quotes in the values. If you have multiple values for one key, use space to separate the values e.g. XROAD_SIGNER_PARAMS=-Xmx100m -XX:MaxMetaspaceSize=100m. Also notice that with local.properties you can only add new parameters and override old ones – you cannot remove existing default parameters.

Example of /etc/xroad/services/local.properties with modifications that override the default Java memory parameters for Security Server:

properties
XROAD_PROXY_PARAMS=-Xms200m -Xmx1024m

Example of /etc/xroad/services/local.properties with modifications that override the default Java memory parameters for Central Server:

properties
XROAD_CS_ADMIN_SERVICE_PARAMS=-Xms200m -Xmx1024m

Example of /etc/xroad/services/local.properties with modifications that override the default Spring Boot parameter for Central Servers management API:

properties
XROAD_CS_ADMIN_SERVICE_PARAMS=-Dserver.forward-headers-strategy=NONE

All possible properties to adjust in this file:

PropertyDetails
XROAD_PARAMSParameters for all processes
XROAD_SIGNER_PARAMSParameters for the Signer
XROAD_ADDON_PARAMSParameters for all addons
XROAD_CONFCLIENT_PARAMSParameters for the Configuration Client
XROAD_CONFPROXY_PARAMSParameters for the Configuration Proxy
XROAD_MESSAGELOG_ARCHIVER_PARAMSParameters for the Message Log Archiver
XROAD_MONITOR_PARAMSParameters for the Environmental Monitor
XROAD_OPMON_PARAMSParameters for the Operational Monitor
XROAD_PROXY_PARAMSParameters for the Security Server
XROAD_PROXY_UI_API_PARAMSParameters for the Security Server's admin API
XROAD_SIGNER_CONSOLE_PARAMSParameters for the Signer Console
XROAD_CS_ADMIN_SERVICE_PARAMSParameters for the Central Server's admin API
XROAD_CS_REGISTRATION_SERVICE_PARAMSParameters for the Central Server's registration API
XROAD_CS_MANAGEMENT_SERVICE_PARAMSParameters for the Central Server's management API

6.2 Legacy configuration file support in X-Road v7

If you have upgraded from X-Road version 6 to version 7, you might still be using local.conf script file with legacy parameters (non XROAD_ prefixed parameters), which is considered deprecated in X-Road version 7. The legacy file local.conf will not be included in the configuration backups anymore – the new file local.properties will be included instead, therefore it is strongly recommended migrating to the new local.properties file.

The legacy file local.conf will still be supported along with the legacy parameters. It is possible for both files to exist side-by-side. In this case the values from local.properties are appended first and then the local.conf file gets executed as a script afterwards. Notice that if your local.conf script contains new XROAD_ prefixed parameters and old legacy parameters, the new XROAD_ prefixed parameters will always be preferred.