|
4 | 4 |
|
5 | 5 | :_mod-docs-content-type: CONCEPT
|
6 | 6 | [id="microshift-custom-cas_{context}"]
|
7 |
| -= How custom certificate authorities work in {microshift-short} |
| 7 | += Using custom certificate authorities for the {microshift-short} API server |
8 | 8 |
|
9 |
| -The default API server certificate is issued by an internal {microshift-short} cluster certificate authority (CA). Clients outside of the cluster cannot verify the API server certificate by default. This certificate can be replaced by a custom server certificate that is issued externally by a custom CA that clients trust. The following steps illustrate the workflow in {microshift-short}: |
| 9 | +When {microshift-short} starts, an internal {microshift-short} cluster certificate authority (CA) issues the default API server certificate. By default, clients outside of the cluster cannot verify the {microshift-short}-issued API server certificate. You can grant secure access and encrypt connections between the {microshift-short} API server and external clients. Replace the default certificate with a custom server certificate issued externally by a CA that clients trust. |
10 | 10 |
|
11 |
| -. Copy the certificates and keys to the preferred directory in the host operating system. Ensure that the files are accessible by root only. |
| 11 | +The following steps illustrate the workflow for customizing the API server certificate configuration in {microshift-short}: |
| 12 | + |
| 13 | +. Copy the certificates and keys to the preferred directory in the host operating system. Ensure that the files are accessible only with root access. |
12 | 14 |
|
13 | 15 | . Update the {microshift-short} configuration for each custom CA by specifying the certificate names and new fully qualified domain name (FQDN) in the {microshift-short} `/etc/microshift/config.yaml` configuration file.
|
14 | 16 | +
|
15 | 17 | Each certificate configuration can contain the following values:
|
16 | 18 |
|
17 |
| -** The certificate file location is a required value. |
18 |
| -** A single common name containing the API server DNS and IP address or IP address range. |
| 19 | +* The certificate file location is a required value. |
| 20 | +* A single common name containing the API server DNS and IP address or IP address range. |
19 | 21 | +
|
20 | 22 | --
|
21 | 23 | [TIP]
|
22 | 24 | ====
|
23 |
| -In most cases, {microshift-short} generates a new `kubeconfig` for your custom CA that includes the IP address or range that you specify. The exception is when wildcards are specified for the IP address. In this case, {microshift-short} generates a `kubeconfig` with the public IP address of the server. To use wildcards, you must update the `kubeconfig` file with your specific details. |
| 25 | +In most cases, {microshift-short} generates a new `kubeconfig` file for your custom CA that includes the IP address or range that you specify. The exception is when you specify wildcards for the IP address. In this case, {microshift-short} generates a `kubeconfig` file with the public IP address of the server. To use wildcards, you must update the `kubeconfig` file with your specific details. |
24 | 26 | ====
|
25 | 27 | --
|
26 |
| -** Multiple Subject Alternative Names (SANs) containing the API server DNS and IP addresses or a wildcard certificate. |
27 |
| -** You can provide additional DNS names for each certificate. |
| 28 | +* Multiple Subject Alternative Names (SANs) containing the API server DNS and IP addresses or a wildcard certificate. |
| 29 | +* You can list additional DNS names for each certificate. |
28 | 30 |
|
29 | 31 | . After the {microshift-short} service restarts, you must copy the generated `kubeconfig` files to the client.
|
30 | 32 |
|
31 | 33 | . Configure additional CAs on the client system. For example, you can update CA bundles in the {op-system-base-full} truststore.
|
| 34 | ++ |
| 35 | +[IMPORTANT] |
| 36 | +==== |
| 37 | +Custom server certificates must be validated against CA data configured in the trust root of the host operating system. For more information, read the following documentation: |
32 | 38 |
|
33 |
| -. The certificates and keys are read from the specified file location on the host. Testing and validation of configuration is done from the client. |
| 39 | +* link:https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/securing_networks/using-shared-system-certificates_securing-networks#the-system-wide-trust-store_using-shared-system-certificates[The system-wide truststore] |
| 40 | +==== |
34 | 41 |
|
35 |
| -. External server certificates are not automatically renewed. You must manually rotate your external certificates. |
| 42 | +. The certificates and keys are read from the specified file location on the host. You can test and validate configuration from the client. |
36 | 43 |
|
37 |
| -[NOTE] |
38 |
| -==== |
39 |
| -If any validation fails, the {microshift-short} service skips the custom configuration and uses the default certificate to start. The priority is to continue the service uninterrupted. {microshift-short} logs errors when the service starts. Common errors include expired certificates, missing files, or incorrect IP addresses. |
40 |
| -==== |
| 44 | +* If any validation fails, {microshift-short} skips the custom configuration and uses the default certificate to start. The priority is to continue the service uninterrupted. {microshift-short} logs errors when the service starts. Common errors include expired certificates, missing files, or wrong IP addresses. |
41 | 45 |
|
42 |
| -[IMPORTANT] |
43 |
| -==== |
44 |
| -Custom server certificates have to be validated against CA data configured in the trust root of the host operating system. For information, see link:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html/securing_networks/using-shared-system-certificates_securing-networks#the-system-wide-trust-store_using-shared-system-certificates[The system-wide truststore]. |
45 |
| -==== |
| 46 | +. External server certificates are not automatically renewed. You must manually rotate your external certificates. |
0 commit comments