Overridable configuration parameters

This page presents the overridable parameters from the Horizon configuration.

Overriding the parameters

To override one of these parameters, simply:

1. Access the EverTrust Horizon server through SSH with an account with administrative privileges;

2. With an editor like vi, open the /etc/default/horizon file and go at the bottom of it;

3. Add this line at the end of the file:

JAVA_OPTS="$JAVA_OPTS -D<option name>=<option value>

As an example, if you want to modify the file extension that DER certificates will have when sent as email attachments and set it to CRT, you need to add:

JAVA_OPTS="$JAVA_OPTS -Dhorizon.notification.mail.attachment.extension.der="crt"

4. Save your modifications and restart the Horizon service:

$ systemctl restart horizon
One added line means one modified option, you need to add as many lines at the end of the file as there are values that you want to override.

You’ll find below an exhaustive list of overridable parameters.

Parameters

ACME parameters

Parameter Default value Description

horizon.acme.max.timeout

"5 minutes"

Maximum configurable timeout in the ACME profiles

horizon.acme.max.retry.delay

"1 hour"

Maximum configurable delay in the ACME profiles

horizon.acme.max.retry.count

15

Maximum configurable retry count in the ACME profiles

horizon.acme.order.updater.prefix

"Actor OrderUpdater#"

Name of the ACME order updater in the technical logs

horizon.acme.response.verifier.prefix

"Actor ResponseVerifier#"

Name of the ACME response verifier in the technical logs

horizon.acme.response.verifier.worker

5

Number of instances that will be started for each Horizon node to perform the ACME validation

horizon.acme.order.updater.worker

5

Number of instances that will be started for each Horizon node to perform the ACME validation

horizon.acme.authorization.methods

["http-01", "dns-01", "tls-alpn-01"]

Allowed methods that can be used to complete an ACME challenge

horizon.acme.order.ttl

"1 minute"

TTL of an ACME order

horizon.acme.challenge.entropy

32

Size of the ACME authorization value (challenge size)

horizon.acme.http.json.prettify

true

Whether the ACME responses should be JSON-pretty formatted

horizon.acme.behavior.emulate.boulder

true

Defines whether Horizon should behave like the Boulder ACME implementation (if set to false, Horizon will strictly follow the RFC). Only applicable if horizon.acme.http.json.prettify is set to "true".

horizon.acme.url.scheme

https

Protocol to use to calculate the ACME base URL if there isn’t any X-Forwarded-Proto nor X-Forwarded-Host in the header of the request

horizon.acme.url.prefix

"/acme"

Prefix used to calculate the ACME base URL

horizon.acme.behavior.enable.post-as-get.legacy

true

Whether the ACME API can be used with GET requests instead of POST ones

Bootstrap parameters

Parameter Default value Description

horizon.bootstrap.timeout

"1 minute"

Duration after which the bootstrap of Horizon times out

horizon.bootstrap.administrator.name

"administrator"

Default administrator account name

horizon.bootstrap.administrator.display.name

"Horizon Administrator"

Default administrator account display name

horizon.bootstrap.local.identity.provider

"local"

Default administrator account identity provider to use

horizon.bootstrap.administrator.password.path

"var/run/adminPassword"

Relative path of the file where the initial admin password should be stored into (starting at /opt/horizon/)

horizon.bootstrap.administrator.password.length

24

Length (in bytes) of the initial admin password

Certificate Authorities parameters

Parameter Default value Description

horizon.ca.manager.cache.default.timeToIdle

"30 days"

Duration that the CA is kept in the CA manager’s cache without being used, after which it is removed

horizon.crl.updater.parallelism

5

Number of certificates processed in parallel when Horizon synchronizes its database with the CRL

Default PKI queue parameters

Parameter Default value Description

horizon.pki.manager.default.parallelism

5

Number of parallel certificate requests (enrollment, revocation…​) on the default queue

horizon.pki.manager.default.size

100

Number of certificate requests (enrollment, revocation) that can be queued on the default queue

Events parameters

Parameter Default value Description

horizon.discovery.event.ttl

(No default value)

Time to live of the discovery events. If not set, events never expire

horizon.event.chainsign

true

Specify whether to chain and sign the Horizon events to ensure they haven’t been tampered with

horizon.event.seal.algorithm

"HS_512"

Algorithm to use to hash the signature of the events in Horizon (other possible values are "HS_384" and "HS_256")

HTTP parameters

Parameter Default value Description

horizon.http.header.enforce_connection_close

true

Defines whether HTTP connections should remain open

horizon.http.header.realip

"X-Real-IP"

Name of the HTTP header to use as Real IP

play.http.session.maxAge

Duration after which the authentication session expires

"15 minutes"

horizon.security.http.headers.xapi.key

"X-API-KEY"

Name of the HTTP header to use as XAPI-KEY

horizon.security.http.headers.xapi.id

"X-API-ID"

Name of the HTTP header to use as XAPI-ID

horizon.security.http.headers.xapi.idprov

"X-API-IDPROV"

Header used to store the identity provider that will be used to validate the authentication

EMail notifications parameters

Parameter Default value Description

horizon.notification.mail.attachment.extension.der

"der"

File extension that DER certificates sent as email attachments (through the notifications feature) will be given

horizon.notification.mail.attachment.extension.p7b

"p7b"

File extension that PKCS#7 certificates sent as email attachments (through the notifications feature) will be given

horizon.notification.mail.attachment.extension.pem

"pem"

File extension that PEM certificates sent as email attachments (through the notifications feature) will be given

Nonce parameters

Parameter Default value Description

horizon.[nonce type].nonce.ttl

"5 seconds"

Duration for which a nonce stays in Horizon before being removed ([nonce type] can be replaced by either automation, acme, openid or request)

horizon.[nonce type].nonce.size

32

Size (in bytes) of the challenge stored in the nonce ([nonce type] can be replaced by either automation, acme, openid or request)

horizon.security.[nonce type]_certificate_pop.iat.future

"5 seconds"

Difference of time allowed between the "Issued At Time" and the validation time (or the server time) (in the future only) ([nonce type] can be replaced by either automation or request)

horizon.security.[nonce type]_certificate_pop.iat.past

"5 seconds"

Difference of time allowed between the "Issued At Time" and the validation time (or the server time) (in the past only) ([nonce type] can be replaced by either automation or request)

horizon.security.[nonce type]_certificate_pop.iat.clock_skew

"30 seconds"

Difference of time allowed between the client time and the server time ([nonce type] can be replaced by either automation or request)

horizon.security.identity.provider.openid.nonce.size

32

Size of the nonce value used for the OpenID authentication

horizon.security.identity.provider.openid.nonce.ttl

"60 seconds"

"Time to live" of the OpenID authentication nonce

horizon.automation.nonce.size

32

Size of the nonce value used for the JWT authentication token

horizon.automation.nonce.ttl

"5 seconds"

Time to live of the nonce used to validate the JWT authentication token

Password reset parameters

Parameter Default value Description

horizon.security.local.identity.password.reset.duration

"120 second"

Time to live of a password reset request (from the login prompt)

Requests/Automation parameters

Parameter Default value Description

horizon.request.grace_period.[module].[request workflow]

"30 days"

Time to live of an expired or completed request. Module can be est, scep or webra and the request workflow can be enroll, revoke, update, recover, migrate or renew.

horizon.request.default_duration.[module].[request workflow]

"7 days"

Duration that a request can stay in either pending or approved state before expiring. Module can be est, scep or webra and the request workflow can be enroll, revoke, update, recover, migrate or renew.

horizon.automation.policy.default.keyType

"rsa-2048"

Default key type sent to the automation client on ACME, EST and SCEP

Search parameters

Parameter Default value Description

horizon.certificate.search.csv.delimiter

';'

The CSV delimiter to use when exporting an HCQL query result to a CSV file

horizon.certificate.search.item.separator

'\n'

The CSV item separator to use when exporting an HCQL query result to a CSV file

horizon.certificate.search.item.attribute.separator

':'

The CSV item attribute separator to use when exporting an HCQL query result to a CSV file

horizon.security.principal.search.page.default_size

50

How many elements to retrieve in a security principals search query if no pageSize has been specified

horizon.security.principal.search.page.max_size

(No default value)

How big can the pageSize parameter be in a security principals search query (Must be a positive integer)

horizon.discovery.event.search.page.default_size

50

How many elements to retrieve in a discovery events search query if no pageSize has been specified

horizon.discovery.event.search.page.max_size

(No default value)

How big can the pageSize parameter be in a discovery events search query (Must be a positive integer)

horizon.discovery.event.search.csv.delimiter

';'

The CSV delimiter to use when exporting a discovery events query result to a CSV file

horizon.request.search.page.default_size

50

How many elements to retrieve in a request search query if no pageSize has been specified

horizon.request.search.page.max_size

(No default value)

How big can the pageSize parameter be in a request search query (Must be a positive integer)

horizon.request.search.csv.delimiter

';'

The CSV delimiter to use when exporting an HRQL query result to a CSV file

horizon.event.search.page.default_size

50

How many elements to retrieve in an event search query if no pageSize has been specified

horizon.event.search.page.max_size

(No default value)

How big can the pageSize parameter be in an event search query (Must be a positive integer)

Trigger parameters

Parameter Default value Description

horizon.trigger.retry.initial_delay

"5 minutes"

How long must a trigger that fails for the first time wait before retrying

horizon.trigger.max.retry

15

Maximum amount of failed attempts that a trigger can have before canceling

Internal Horizon parameters

These parameters are used internally in Horizon. Please be very careful when overriding them as it may prevent the product from working correctly.
Parameter Default value Description

horizon.security.trustmanager.enforce_serverauth

false

If set to true, enforces the use of the serverAuth EKU in the server authentication certificates (when Horizon accesses a service through TLS)

horizon.ca.maximum.timeout

"5 minutes"

Maximum configurable timeout duration on certificate authorities

horizon.ca.maximum.refresh

"7 days"

Maximum configurable CRL refresh period on certificate authorities

horizon.pki-connector.max.timeout

"5 minutes"

Maximum configurable timeout on the PKI connectors

horizon.trigger.manager.interval

"5 minutes"

How often does the trigger manager check for triggers to run

horizon.trigger.manager.timeout

"60 seconds"

Trigger manager timeout

horizon.grading.manager.timeout

"5 seconds"

Duration after which the grading manager times out when retrieving the grading configuration from the database

horizon.grading.manager.queue.size

100

How large can the grading manager queue can get before it discards new grading requests

horizon.grading.timeout

"5 seconds"

Duration after which the grading actor times out when grading a certificate (upon enrolment)

horizon.security.manager.timeout

"1 minute"

Duration after which the security manager times out when trying to authenticate a principal with its session

horizon.ca.manager.timeout

"1 minute"

Duration that the CA manager actor will wait to retrieve information about certificates (is it trusted ? its trust chain ?)

horizon.ca.manager.prefix

"Actor "

Name of the CA manager actor in the technical logs

horizon.security.manager.prefix

"Actor "

Name of the security manager actor in the technical logs

horizon.grading.actor.prefix

"Actor "

Name of the grading actor in the technical logs

horizon.grading.manager.prefix

"Actor "

Name of the grading manager actor in the technical logs

horizon.crl.updater.prefix

"Actor CRLUpdater-"

Name of the CRL updater actor in the technical logs

horizon.scheduler.manager.timeout

"60 seconds"

Duration after which the Scheduler manager actor times out when retrieving scheduled tasks in the database

horizon.scheduler.manager.prefix

"Actor "

Name of the Scheduler manager actor in the technical logs

horizon.event.timeout

"30 seconds"

Duration after which the event manager times out when trying to retrieve the last signed event in the database

horizon.event.manager.prefix

"Actor "

Name of the Event manager actor in the technical logs

horizon.event.manager.interval

"5 seconds"

How often will the Event Manager actor check in the database if new a new event appeared to sign it and display it in the "Events" section of Horizon

horizon.vault.manager.timeout

"1 minute"

Duration after which the Vault Manager times out when trying to encipher or decipher a configuration or certificate secret

horizon.pki.manager.timeout

"1 minute"

Duration after which the PKI Manager times out when trying to enroll or revoke a certificate