Skip to content

Commit d252bcf

Browse files
authored
Merge pull request #22063 from EmilyM1/authenticating-certificates
Update wording for “Authenticating” reference
2 parents fca500f + 2c6ba2c commit d252bcf

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

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

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ The CertificateSigningRequest `status.certificate` field is empty until the sign
4848

4949
Once the `status.certificate` field has been populated, the request has been completed and clients can now
5050
fetch the signed certificate PEM data from the CertificateSigningRequest resource.
51-
Signers can instead deny certificate signing if the approval conditions are not met.
51+
The signers can instead deny certificate signing if the approval conditions are not met.
5252

5353
In order to reduce the number of old CertificateSigningRequest resources left in a cluster, a garbage collection
5454
controller runs periodically. The garbage collection removes CertificateSigningRequests that have not changed
@@ -67,10 +67,10 @@ This includes:
6767
1. **Permitted subjects**: any restrictions on and behavior when a disallowed subject is requested.
6868
1. **Permitted x509 extensions**: including IP subjectAltNames, DNS subjectAltNames, Email subjectAltNames, URI subjectAltNames etc, and behavior when a disallowed extension is requested.
6969
1. **Permitted key usages / extended key usages**: any restrictions on and behavior when usages different than the signer-determined usages are specified in the CSR.
70-
1. **Expiration/certificate lifetime**: whether it is fixed by the signer, configurable by the admin, determined by the CSR object etc and behavior if an expiration different than the signer-determined expiration is specified in the CSR.
70+
1. **Expiration/certificate lifetime**: whether it is fixed by the signer, configurable by the admin, determined by the CSR object etc and the behavior when an expiration is different than the signer-determined expiration that is specified in the CSR.
7171
1. **CA bit allowed/disallowed**: and behavior if a CSR contains a request a for a CA certificate when the signer does not permit it.
7272

73-
Commonly, the `status.certificate` field contains a single PEM-encoded X.509 certificate once the CSR is approved and the certificate is issued. Some signers store multiple certificates into the `status.certificate` field. In that case, the documentation for the signer should specify the meaning of additional certificates; for example, this might be certificate plus intermediates to be presented during TLS handshakes.
73+
Commonly, the `status.certificate` field contains a single PEM-encoded X.509 certificate once the CSR is approved and the certificate is issued. Some signers store multiple certificates into the `status.certificate` field. In that case, the documentation for the signer should specify the meaning of additional certificates; for example, this might be the certificate plus intermediates to be presented during TLS handshakes.
7474

7575
### Kubernetes signers
7676

@@ -88,33 +88,32 @@ Kubernetes provides built-in signers that each have a well-known `signerName`:
8888
1. `kubernetes.io/kube-apiserver-client-kubelet`: signs client certificates that will be honored as client-certs by the
8989
kube-apiserver.
9090
May be auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
91-
1. Trust distribution: signed certificates must be honored as client-certificates by the kube-apiserver. The CA bundle
91+
1. Trust distribution: signed certificates must be honored as client-certificates by the kube-apiserver. The CA bundle
9292
is not distributed by any other means.
9393
1. Permitted subjects - organizations are exactly `[]string{"system:nodes"}`, common name starts with `"system:node:"`
94-
1. Permitted x509 extensions - honors key usage extensions, forbids subjectAltName extensions, drops other extensions.
94+
1. Permitted x509 extensions - honors key usage extensions, forbids subjectAltName extensions and drops other extensions.
9595
1. Permitted key usages - exactly `[]string{"key encipherment", "digital signature", "client auth"}`
96-
1. Expiration/certificate lifetime - minimum of CSR signer or request. Sanity of the time is the concern of the signer.
96+
1. Expiration/certificate lifetime - minimum of CSR signer or request. The signer is responsible for checking that the certificate lifetime is valid and permissible.
9797
1. CA bit allowed/disallowed - not allowed.
9898

9999
1. `kubernetes.io/kubelet-serving`: signs serving certificates that are honored as a valid kubelet serving certificate
100100
by the kube-apiserver, but has no other guarantees.
101101
Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
102-
1. Trust distribution: signed certificates must be honored by the kube-apiserver as valid to terminate connections to a kubelet.
103-
The CA bundle is not distributed by any other means.
102+
1. Trust distribution: signed certificates must be honored by the kube-apiserver as valid to terminate connections to a kubelet. The CA bundle is not distributed by any other means.
104103
1. Permitted subjects - organizations are exactly `[]string{"system:nodes"}`, common name starts with `"system:node:"`
105104
1. Permitted x509 extensions - honors key usage and DNSName/IPAddress subjectAltName extensions, forbids EmailAddress and URI subjectAltName extensions, drops other extensions. At least one DNS or IP subjectAltName must be present.
106105
1. Permitted key usages - exactly `[]string{"key encipherment", "digital signature", "server auth"}`
107106
1. Expiration/certificate lifetime - minimum of CSR signer or request.
108107
1. CA bit allowed/disallowed - not allowed.
109108

110109
1. `kubernetes.io/legacy-unknown`: has no guarantees for trust at all. Some distributions may honor these as client
111-
certs, but that behavior is not standard Kubernetes behavior.
110+
certs, but that behavior is non-standard Kubernetes behavior.
112111
Never auto-approved by {{< glossary_tooltip term_id="kube-controller-manager" >}}.
113112
1. Trust distribution: None. There is no standard trust or distribution for this signer in a Kubernetes cluster.
114113
1. Permitted subjects - any
115114
1. Permitted x509 extensions - honors subjectAltName and key usage extensions and discards other extensions.
116115
1. Permitted key usages - any
117-
1. Expiration/certificate lifetime - minimum of CSR signer or request. Sanity of the time is the concern of the signer.
116+
1. Expiration/certificate lifetime - minimum of CSR signer or request. The signer is responsible for checking that the certificate lifetime is valid and permissible.
118117
1. CA bit allowed/disallowed - not allowed.
119118

120119
{{< note >}}
@@ -228,7 +227,7 @@ rules:
228227

229228
## Normal User
230229

231-
Few steps are required in order to get normal user to be able to authenticate and invoke API. First, this user must have certificate issued by the Kubernetes Cluster, and then present that Certificate into the API call as the Certificate Header, or through the kubectl.
230+
There are a few steps are required in order to get normal user to be able to authenticate and invoke API. First, this user must have certificate issued by the Kubernetes Cluster, and then present that Certificate into the API call as the Certificate Header, or through the kubectl.
232231

233232
### Create Private Key
234233

@@ -241,7 +240,7 @@ openssl req -new -key john.key -out john.csr
241240
242241
### Create Certificate Request Kubernetes Object
243242
244-
Create a CertificateSigningRequest and submit it to Kubernetes Cluster via kubectl. Below is script to generate one.
243+
Create a CertificateSigningRequest and submit it to a Kubernetes Cluster via kubectl. Below is a script to generate the CertificateSigningRequest.
245244
246245
```
247246
cat <<EOF | kubectl apply -f -
@@ -257,7 +256,7 @@ spec:
257256
- client auth
258257
```
259258
260-
Few points to note:
259+
Some points to note:
261260
262261
- usage has to be 'client auth'
263262
- request is the base64 encoded value of the CSR file content. You can use this command to get that ```cat john.csr | base64 | tr -d "\n"```
@@ -284,7 +283,7 @@ Retrieve the Certificate from the CSR.
284283
kubectl get csr/john -o yaml
285284
```
286285
287-
The Certifcate value is in Base64 format, under status.certificate.
286+
The Certificate value is in Base64-encoded format under status.certificate.
288287
289288
### Create Role and Role Binding
290289

0 commit comments

Comments
 (0)