CertManager Properties

certmanager.properties is used to configure certificates (x509 keypairs), ca-trustbundles, and various TLS settings for secure connections in TEDI.


TLS Settings

TEDI will default to reasonable settings for your TLS connections, but you can customize the protocol, cipher suites, and other settings for your connections directly:

SettingDescription
tlsenables or disables TLS
tls.min.versionthe minimum tls protocol TEDI will used/accept for connections.
tls.cipher.suiteslist of preferred cipher suites; leave empty to use Golang defaults
tls.curve.preferencestls curve preferences; leave empty to use Golang defaults
tls.verifycontrols whether a client verifies the server’s certificate chain and host name (mtls)
debugenables verbose logging to TLS connections
tls.ocspplaceholder for cert revocation checking

Certificates MUST be PEM encoded.


Trust Bundles

To configure certificates that TEDI should trust, i.e. ca-trustbundles, you can configure a list of certificates for TEDI to read.

Certificates are loaded from tedi/keys/.


Root Certs / Trust Anchors

You can configure individual root certificates or each entry can be a file with multiple root CAs.

note: the value corresponds to a file on a disk.

0.root.ca=root-cert-0.pem
1.root.ca=root-cert-1.pem
2.root.ca=root-cert-2.pem

if you do not set any root certificates, the systems roots will be used.


Intermediate Certs

You can also configure individual intermediates certificates.

0.intermediate.cert="..."
...
9.intermediate.cert="..."


Cert Auth (mTLS)

list of certificates TEDI explicity trusts - corresponds to cert.pinning and for cert-based authentication (mTLS).

0.trust.cert=cert-0.pem
1.trust.cert=cert-1.pem

Certificate Pinning

If desired, you can pin to certificates. TEDI pins to the public-key of the target certificate.

cert.pinning = [true|false]

Cert pinning is a global setting. Once enabled, you must explicity trust every certificate.


Certs for Certificate Authentication

Configure one or more key pairs for client cert auth.

0.cert.name=cert-1.pem
0.cert.key.name=cert-1.key
0.cert.key.passphrase="$aes-256-cbc$hex$abasldkfsldfkjsldfi23423523i52h2i3h52i3"
0.cert.key.system.key.alias=tedi-mp-1

The private keys for certificates must be encrypted. Use crypto-buddy to encrypt and encode.