Skip to content

Commit 80561f6

Browse files
committed
Make layout prettier in certificate-signing-requests.md
1 parent b067305 commit 80561f6

File tree

1 file changed

+42
-38
lines changed

1 file changed

+42
-38
lines changed

content/en/docs/reference/access-authn-authz/certificate-signing-requests.md

Lines changed: 42 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -104,54 +104,54 @@ Kubernetes provides built-in signers that each have a well-known `signerName`:
104104

105105
1. `kubernetes.io/kube-apiserver-client`: signs certificates that will be honored as client certificates by the API server.
106106
Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
107-
1. Trust distribution: signed certificates must be honored as client certificates by the API server. The CA bundle is not distributed by any other means.
108-
1. Permitted subjects - no subject restrictions, but approvers and signers may choose not to approve or sign.
109-
Certain subjects like cluster-admin level users or groups vary between distributions and installations,
110-
but deserve additional scrutiny before approval and signing.
111-
The `CertificateSubjectRestriction` admission plugin is enabled by default to restrict `system:masters`,
112-
but it is often not the only cluster-admin subject in a cluster.
113-
1. Permitted x509 extensions - honors subjectAltName and key usage extensions and discards other extensions.
114-
1. Permitted key usages - must include `["client auth"]`. Must not include key usages beyond `["digital signature", "key encipherment", "client auth"]`.
115-
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
116-
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
117-
1. CA bit allowed/disallowed - not allowed.
107+
1. Trust distribution: signed certificates must be honored as client certificates by the API server. The CA bundle is not distributed by any other means.
108+
1. Permitted subjects - no subject restrictions, but approvers and signers may choose not to approve or sign.
109+
Certain subjects like cluster-admin level users or groups vary between distributions and installations,
110+
but deserve additional scrutiny before approval and signing.
111+
The `CertificateSubjectRestriction` admission plugin is enabled by default to restrict `system:masters`,
112+
but it is often not the only cluster-admin subject in a cluster.
113+
1. Permitted x509 extensions - honors subjectAltName and key usage extensions and discards other extensions.
114+
1. Permitted key usages - must include `["client auth"]`. Must not include key usages beyond `["digital signature", "key encipherment", "client auth"]`.
115+
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
116+
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
117+
1. CA bit allowed/disallowed - not allowed.
118118

119119
1. `kubernetes.io/kube-apiserver-client-kubelet`: signs client certificates that will be honored as client certificates by the
120120
API server.
121121
May be auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
122-
1. Trust distribution: signed certificates must be honored as client certificates by the API server. The CA bundle
123-
is not distributed by any other means.
124-
1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
125-
1. Permitted x509 extensions - honors key usage extensions, forbids subjectAltName extensions and drops other extensions.
126-
1. Permitted key usages - exactly `["key encipherment", "digital signature", "client auth"]`.
127-
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
128-
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
129-
1. CA bit allowed/disallowed - not allowed.
122+
1. Trust distribution: signed certificates must be honored as client certificates by the API server. The CA bundle
123+
is not distributed by any other means.
124+
1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
125+
1. Permitted x509 extensions - honors key usage extensions, forbids subjectAltName extensions and drops other extensions.
126+
1. Permitted key usages - exactly `["key encipherment", "digital signature", "client auth"]`.
127+
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
128+
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
129+
1. CA bit allowed/disallowed - not allowed.
130130

131131
1. `kubernetes.io/kubelet-serving`: signs serving certificates that are honored as a valid kubelet serving certificate
132132
by the API server, but has no other guarantees.
133133
Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
134-
1. Trust distribution: signed certificates must be honored by the API server as valid to terminate connections to a kubelet.
135-
The CA bundle is not distributed by any other means.
136-
1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
137-
1. Permitted x509 extensions - honors key usage and DNSName/IPAddress subjectAltName extensions, forbids EmailAddress and
138-
URI subjectAltName extensions, drops other extensions. At least one DNS or IP subjectAltName must be present.
139-
1. Permitted key usages - exactly `["key encipherment", "digital signature", "server auth"]`.
140-
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
141-
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
142-
1. CA bit allowed/disallowed - not allowed.
143-
144-
1. `kubernetes.io/legacy-unknown`: has no guarantees for trust at all. Some third-party distributions of Kubernetes
134+
1. Trust distribution: signed certificates must be honored by the API server as valid to terminate connections to a kubelet.
135+
The CA bundle is not distributed by any other means.
136+
1. Permitted subjects - organizations are exactly `["system:nodes"]`, common name starts with "`system:node:`".
137+
1. Permitted x509 extensions - honors key usage and DNSName/IPAddress subjectAltName extensions, forbids EmailAddress and
138+
URI subjectAltName extensions, drops other extensions. At least one DNS or IP subjectAltName must be present.
139+
1. Permitted key usages - exactly `["key encipherment", "digital signature", "server auth"]`.
140+
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
141+
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
142+
1. CA bit allowed/disallowed - not allowed.
143+
144+
1. `kubernetes.io/legacy-unknown`: has no guarantees for trust at all. Some third-party distributions of Kubernetes
145145
may honor client certificates signed by it. The stable CertificateSigningRequest API (version `certificates.k8s.io/v1` and later)
146146
does not allow to set the `signerName` as `kubernetes.io/legacy-unknown`.
147147
Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
148-
1. Trust distribution: None. There is no standard trust or distribution for this signer in a Kubernetes cluster.
149-
1. Permitted subjects - any
150-
1. Permitted x509 extensions - honors subjectAltName and key usage extensions and discards other extensions.
151-
1. Permitted key usages - any
152-
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
153-
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
154-
1. CA bit allowed/disallowed - not allowed.
148+
1. Trust distribution: None. There is no standard trust or distribution for this signer in a Kubernetes cluster.
149+
1. Permitted subjects - any
150+
1. Permitted x509 extensions - honors subjectAltName and key usage extensions and discards other extensions.
151+
1. Permitted key usages - any
152+
1. Expiration/certificate lifetime - for the kube-controller-manager implementation of this signer, set to the minimum
153+
of the `--cluster-signing-duration` option or, if specified, the `spec.expirationSeconds` field of the CSR object.
154+
1. CA bit allowed/disallowed - not allowed.
155155

156156
{{< note >}}
157157
Failures for all of these are only reported in kube-controller-manager logs.
@@ -238,7 +238,11 @@ Some points to note:
238238
- `usages` has to be '`client auth`'
239239
- `expirationSeconds` could be made longer (i.e. `864000` for ten days) or shorter (i.e. `3600` for one hour)
240240
- `request` is the base64 encoded value of the CSR file content.
241-
You can get the content using this command: ```cat myuser.csr | base64 | tr -d "\n"```
241+
You can get the content using this command:
242+
243+
```shell
244+
cat myuser.csr | base64 | tr -d "\n"
245+
```
242246

243247
### Approve certificate signing request
244248

0 commit comments

Comments
 (0)