TLS Secret Formats Reference
This reference describes the three Kubernetes Secret shapes the Axual charts read, the key length, cipher and private key formats the platform accepts, and the tls values block that points a component at its Secrets. For the procedure that sets those values, see How to Configure Certificates on an Axual Component.
Type |
Reference |
Goal |
Look up the exact shape a TLS Secret must have, or the exact name of a |
Audience |
Anyone who can create Secrets in the namespace the platform runs in, or edit a component’s |
When to use |
When writing a Secret manifest, configuring cert-manager to produce one, or setting the |
Secret formats
The Axual charts do not read certificate files directly. They read Kubernetes Secrets, and the Axual Keystore Provider init container builds the keystore and truststore files from them at pod startup. The three shapes below are the formats it accepts.
Secrets of type kubernetes.io/tls
Kubernetes stores TLS data in a standard Secret format under the type kubernetes.io/tls. cert-manager produces Secrets in this shape.
apiVersion: v1
kind: Secret
metadata:
name: example-secret
type: kubernetes.io/tls
data:
ca.crt: ... (1)
tls.crt: ... (2)
tls.key: ... (3)
| 1 | Base64 encoded root CA certificate string |
| 2 | Base64 encoded certificate string |
| 3 | Base64 encoded private key string |
Certificate Secrets with two entries
Axual Platform components rarely use the ca.crt entry, so a client or server certificate Secret can carry two data entries instead of three.
apiVersion: v1
kind: Secret
metadata:
name: example-secret
type: Opaque
data:
tls.crt: ... (1)
tls.key: ... (2)
| 1 | Base64 encoded certificate string |
| 2 | Base64 encoded private key string |
Truststore (CA) Secrets
A truststore Secret carries any number of key and value pairs. Each value is appended to the truststore that gets mounted onto the service using it, so one Secret can hold a whole chain.
Every CA certificate entry must use a .crt extension. An entry with any other extension is not added to the truststore.
|
apiVersion: v1
kind: Secret
metadata:
name: example-ca-certificates
type: Opaque
data:
axual_root_ca.crt: ...
axual_intermediate_1_ca.crt: ...
axual_intermediate_2_ca.crt: ...
All abbreviated values above are Base64 encoded strings.
Certificate and key requirements
These constraints apply to every certificate the platform uses, whichever Secret shape carries it.
| Item | Requirement |
|---|---|
Server certificate key length |
4096 bits. |
Other certificate key lengths |
At least 2048 bits. |
Certificate format |
X.509 in PEM format. The file extension is not constrained, so |
Private key format |
Axual Governance accepts PKCS8 in PEM format only, whose first line is |
The cipher suites below are the ones Axual considers secure. Axual components negotiate TLSv1.2.
-
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 -
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 -
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 -
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 -
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 -
TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
The tls values block
Every component chart that terminates or initiates TLS exposes the same tls block. The keys below are the block’s full set.
| Key | Type | Default | Description |
|---|---|---|---|
|
boolean |
|
Required. Whether the chart configures TLS for the component at all. The remaining keys are read only when this is |
|
string |
|
Required when |
|
string |
|
Optional. Name of an existing Secret of type |
|
string |
|
Optional. Name of an existing |
|
string |
|
Optional. Truststore Secret used only for outbound connections. Takes precedence over |
|
string |
|
Optional. Truststore Secret used only for validating inbound client certificates. Takes precedence over |
| Individual component charts may expose additional TLS keys, and some generate a Secret from inline PEM data rather than referencing an existing one. Those keys are listed in that component’s own chart values reference under Component Details. |