@@ -21,7 +21,7 @@ and enables cluster administrators to easily automate providing a secure bundle
21
21
to worry about rebuilding containers to update trust stores.
22
22
23
23
It's designed to complement cert-manager and works well when consuming CA certificates from a
24
- cert-manager ` Issuer ` or ` ClusterIssuer ` but can be used entirely independently from cert-manager
24
+ cert-manager ` Issuer ` or ` ClusterIssuer ` but can be used entirely independently of cert-manager
25
25
if needed.
26
26
27
27
## Usage
@@ -70,12 +70,15 @@ spec:
70
70
# Sync the bundle to a ConfigMap called `my-org.com` in every namespace which
71
71
# has the label "linkerd.io/inject=enabled"
72
72
# All ConfigMaps will include a PEM-formatted bundle, here named "root-certs.pem"
73
- # and in this case we also request a binary JKS formatted bundle, here named "bundle.jks"
73
+ # and in this case we also request binary formatted bundles in JKS and PKCS#12 formats,
74
+ # here named "bundle.jks" and "bundle.p12".
74
75
configMap :
75
76
key : " root-certs.pem"
76
77
additionalFormats :
77
78
jks :
78
79
key : " bundle.jks"
80
+ pkcs12 :
81
+ key : " bundle.p12"
79
82
namespaceSelector :
80
83
matchLabels :
81
84
linkerd.io/inject : " enabled"
@@ -88,18 +91,27 @@ spec:
88
91
- ` inLine` - a manually specified string containing at least one certificate
89
92
- ` useDefaultCAs` - usually, a bundle of publicly trusted certificates
90
93
91
- These sources, along with the single currently supported target type (`configMap`)
92
- are documented in the trust-manager [API reference documentation](./api-reference.md).
94
+ ` ConfigMap` is the default target resource type, but trust-manager also supports `Secret` as targets
95
+ (since trust-manager v0.7.0), but that feature has to be explicitly enabled on the controller.
96
+
97
+ All sources and target options are documented in the trust-manager [API reference documentation](./api-reference.md).
93
98
94
99
# ### Targets
95
100
96
- All `Bundle` targets are written to `ConfigMap`s whose name matches that of the `Bundle`, and every
97
- target has a PEM-formatted bundle included.
101
+ All `Bundle` targets are written to `ConfigMap`s (and/or `Secret`s) whose name matches that of the
102
+ ` Bundle` , and every target has a PEM-formatted bundle included.
103
+
104
+ Users can also optionally choose to write JKS/PKCS#12 formatted binary truststore(s) to the target.
105
+ JKS is supported since trust-manager v0.5.0, PKCS#12 since trust-manager v0.7.0.
98
106
99
- Users can also optionally - as of trust-manager v0.5.0 - choose to write a JKS formatted binary
100
- bundle to the target. We understand that most Java applications tend to require a password on JKS
101
- files (even though trust bundles don't contain secrets), so all trust-manager JKS bundles use the
102
- default password `changeit`.
107
+ We understand that any binary truststore require a password, even though trust bundles don't contain
108
+ secrets. Both JKS and PKCS#12 uses weak encryption primitives, so a truststore (or keystore) will NOT
109
+ be protected by a password alone, and needs to be protected by additional measures.
110
+ Please understand that trust-manager provides these binary truststore formats to support legacy
111
+ applications which do not support other formats.
112
+ At present passwords to truststores provided by trust-manager are hard-coded to `changeit` for JKS and
113
+ ` """` (empty string; so called password-less) for PKCS#12 but this might be configurable on bundles
114
+ in a future release of trust-manager.
103
115
104
116
# ### Namespace Selector
105
117
@@ -132,7 +144,16 @@ helm upgrade -i -n cert-manager cert-manager jetstack/cert-manager --set install
132
144
helm upgrade -i -n cert-manager trust-manager jetstack/trust-manager --wait
133
145
` ` `
134
146
135
- # ## approver-policy Integration
147
+ # ### Enable Secret targets
148
+
149
+ ` Secret` targets are supported as of trust-manager v0.7.0, but needs to be explicitly enabled on the controller.
150
+ The feature can be enabled with a Helm value `--set secretTargets.enabled=true`, but since the controller needs
151
+ RBAC to secrets, you also need to set `secretTargets.authorizedSecretsAll` or `secretTargets.authorizedSecrets`.
152
+ Please consult the
153
+ [trust-manager Helm chart docs](https://github.com/cert-manager/trust-manager/blob/main/deploy/charts/trust-manager/README.md#values)
154
+ for details and trade-offs.
155
+
156
+ # ### approver-policy Integration
136
157
137
158
If you're running [approver-policy](../../policy/approval/approver-policy/README.md) then cert-manager's default approver will be disabled which will mean that
138
159
trust-manager's webhook certificate will - by default - block when you install the Helm chart until it's manually approved.
0 commit comments