Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions docs/enterprise/embedded-tls-certs.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Updating Custom TLS Certificates in Embedded Cluster Installations

This topic describes how to update custom TLS certificates in Replicated Embedded Cluster installations.

## Overview

For Embedded Cluster installations, the default Replicated KOTS self-signed certificate automatically renews 30 days before the expiration date.

If a custom TLS certificate is used instead, then no renewal is attempted, even if the certificate is expired. In this case, users can manually upload a new custom certificate from the KOTS Admin Console when the certificate expires.

## Update Custom TLS Certificates

:::important
Adding the `acceptAnonymousUploads` annotation temporarily creates a vulnerability for an attacker to maliciously upload TLS certificates. After TLS certificates have been uploaded, the vulnerability is closed again.

Replicated recommends that you complete this upload process quickly to minimize the vulnerability risk.
:::

To upload a new custom TLS certificate in Embedded Cluster installations:

1. SSH onto a controller node where Embedded Cluster is installed. Then, run the following command to start a shell so that you can access the cluster with kubectl:

```bash
sudo ./APP_SLUG shell
```
Where `APP_SLUG` is the unique slug of the installed application.

1. In the shell, run the following command to restore the ability to upload new TLS certificates by adding the `acceptAnonymousUploads` annotation:

```bash
kubectl -n default annotate secret kotsadm-tls acceptAnonymousUploads=1 --overwrite
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is -n default still accurate in ec installs? Or would this be in the kotsadm namespace?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: alex confirmed the kotsadm-tls secret is in the kotsadm ns

```

1. Run the following command to get the name of the kurl-proxy server:

```bash
kubectl get pods -A | grep kurl-proxy | awk '{print $2}'
```
:::note
This server is named `kurl-proxy`, but is used in both Embedded Cluster and kURL installations.
:::

1. Run the following command to delete the kurl-proxy pod. The pod automatically restarts after the command runs.

```bash
kubectl delete pods PROXY_SERVER
```

Replace `PROXY_SERVER` with the name of the kurl-proxy server that you got in the previous step.

1. After the pod has restarted, go to `http://<ip>:30000/tls` in your browser and complete the process in the Admin Console to upload a new certificate.
2 changes: 1 addition & 1 deletion docs/enterprise/updating-embedded.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import UpdateAirGapOverview from "../partials/embedded-cluster/_update-air-gap-o
import DoNotDowngrade from "../partials/embedded-cluster/_warning-do-not-downgrade.mdx"
import Overview from "../partials/embedded-cluster/_update-overview.mdx"

# Performing Updates in Embedded Clusters
# Performing Updates with Embedded Cluster

This topic describes how to perform updates for [Replicated Embedded Cluster](/vendor/embedded-overview) installations.

Expand Down
1 change: 1 addition & 0 deletions sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ const sidebars = {
},
'enterprise/embedded-manage-nodes',
'enterprise/updating-embedded',
'enterprise/embedded-tls-certs',
'vendor/embedded-disaster-recovery',
],
},
Expand Down
Loading