# Kubernetes Certificate

## Kubernetes Certificate

### Manuellen TLS Eintrag erstellen

Für den manuellen Eintrag wird die komplette Zertifikatskette ohne das
root-Zertifikat in einer Datei und der Key in einer anderen Datei benötigt.
Beide müssen im PEM - Format vorliegen.

Sollten die Intermediate Zertifikate und das eigentliche Zertifikat nicht in
einer Datei sein, dann lassen sich diese per `cat` Befehl zusammenfügen.

```bash
cat server.ca >> server.crt
```

```bash
$ kubectl create secret tls --cert server.crt \
    --key server.key --namespace default
    example.com
```

Der zusätzliche Parameter `-o yaml` gibt den Eintrag aus statt ihn per API in
den Cluster zu senden.

Alternativ kann der Eintrag auch selber erstellt werden:

```yaml
---
apiVersion: v1
kind: Secret
metadata:
namespace: default
type: kubernetes.io/tls
  name: example.com
data:
  tls.crt: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURH [...]
  tls.key: LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUVA [...]
```

Der hinter `tls.crt` und `tls.key` angegebene Text entspricht dem Inhalt der
Zertifikats- und Key-Datei in einer mit `base64` ummantelten Version ohne
Zeilenumbrüche.

```bash
$ base64 -i -w0 server.crt
```
