-
Notifications
You must be signed in to change notification settings - Fork 31
Add docs for updating tls certs in EC installs #2995
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| 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 | ||
|
||
| ``` | ||
paigecalvert marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| 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. | ||
| ::: | ||
paigecalvert marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| 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. | ||
Uh oh!
There was an error while loading. Please reload this page.