Traefik: Freischaltung TLS mit einer Beispielanwendung (Harbor)
Um dieses Ziel zu erreichen, muss man sich um ein paar Sachen kümmern.
1- Wenn self-signed certificate benutzt wird, muss folgende argument zu Traefik config hizugefügt werden.
–serversTransport.insecureSkipVerify=true
2-Traefik Middleware muss wegen http-redirect erstellt werden.
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: httpredirect
namespace: harbor
spec:
redirectScheme:
scheme: https
permanent: true
3-TLS Zertifikat muss als ein kubernetes secret definiert werden. Die Private-key muss “unencrypted“ sein.
$ kubectl create secret tls adartis-cert –key=key.unencrypted.pem –cert=server.pem -n harbor
4-Die komplette Code durch einem K8s IngressRoute is wie folgt:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: httpredirect
namespace: harbor
spec:
redirectScheme:
scheme: https
permanent: true
—
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
name: harbor-ing
namespace: harbor
spec:
entryPoints:
– web
– websecure
routes:
– kind: Rule
match: Host(`harbor.apps.rancher.adartish.de`)
middlewares:
– name: httpredirect
services:
– kind: Service
name: harbor-11-1636456482
passHostHeader: true
namespace: harbor
port: 443
tls:
secretName: adartis-cert
5-Change an encrypted private-key.pem to UNencrypted:
openssl rsa -in key.pem -out key.unencrypted.pem -passin pass:TYPE_YOUR_PASS