Zurück zur Startseite

Automatisierte SSL Zertifikate

Die automatisierte Bereitstellung von SSL Zertifikaten ist ein Dienst innerhalb von nine Managed GKE, der es erlaubt die Handhabung von Let’s Encrypt Zertifikaten für den Ingress zu automatisieren.

Details

Kunden, die einen https-Ingress benötigen, können die Bereitstellung und Verwaltung der dafür verwendeten TLS-Zertifikate in Ihrem Kubernetes-Cluster mit dem Cert-Manager realisieren.

Verfügbarkeit

Cert-Manager ist standardmässig Teil von nine Managed GKE.

Nutzung

Um den Cert-Manager für ihr Ingress-Objekt zu nutzen, müssen Sie lediglich eine Annotation für den Cluster-Issuer sowie einen TLS-Block hinzufügen, der anzeigt, dass ein Zertifikat erzeugt und in einem Secret gespeichert werden soll.

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    # add an annotation indicating the issuer to use.
    cert-manager.io/cluster-issuer: <nameOfClusterIssuer>
  name: myIngress
  namespace: myIngress
spec:
  rules:
  - host: myingress.com
    http:
      paths:
      - backend:
          serviceName: myservice
          servicePort: 80
        path: /
  tls: # < placing a host in the TLS config will indicate a cert should be created
  - hosts:
    - myingress.com
    secretName: myingress-cert # < cert-manager will store the created certificate in this secret.

Für den cert-manager.io/cluster-issuer-Wert wählen Sie bitte zwischen letsencrypt-prod und letsencrypt-staging. Informationen zum Unterschied zwischen den beiden Varianten finden Sie hier: letsencrypt documentation.

Cert-Manager Migration

Wir haben kürzlich auf die neuste cert-manager Version migriert. Die neue Version nutzt einen neuen Annotation Key um die Zertifikate zu validieren:

alter key: certmanager.k8s.io/cluster-issuer
neuer key: cert-manager.io/cluster-issuer

Um Ihre Ingress-Objekte auf die alte Annotation zu prüfen, können Sie folgenden kubectl Befehl verwenden:

kubectl get namespace -l nine-namespace-type=customer --no-headers -o custom-columns=":metadata.name" |\
  xargs -L 1 kubectl get ingress -o go-template='{{range .items}}{{if .metadata.annotations}}{{if not (index .metadata.annotations "cert-manager.io/cluster-issuer")}}{{if(index .metadata.annotations "certmanager.k8s.io/cluster-issuer")}}{{printf "%s/%s\n" .metadata.namespace .metadata.name}}{{end}}{{end}}{{end}}{{end}}' -n

Haben Sie die gewünschten Informationen nicht gefunden?

Kontaktieren Sie unseren Support:

+41 44 637 40 40 Support Portal support@nine.ch