SSL-certifikat får vara giltiga i högst 199 dagar. Senast 2027-03-15 blir gränsen 99 dagar, för DigiCert-certifikat redan från 2027-02-24. Läs mer →
Svensk support på svenska, vardagar 10:00-16:00 +46 10 101 03 34 info@fairssl.se

Kubernetes: cert-manager med FairSSL ACME

cert-manager är en ACME-klient byggd för Kubernetes. Den körs som en controller i klustret, skapar TLS Secrets automatiskt och förnyar certifikaten i tid med hjälp av ARI. Med FairSSL som ACME-utfärdare används External Account Binding (EAB) och AutoDNS, så cert-manager behöver inga API-nycklar till din DNS.

Versioner som stöds

KubernetesVersionerGuiden sätter ingen versionsgränsKörs påKubernetes-klustretACME-klientcert-manager, ARI från v1.21 med feature gate ACMEUseARI

Uppsättning

Guiden förutsätter att du redan har cert-manager installerat i klustret (Helm chart eller statiskt manifest). Har du inte det, följ först installationsguiden för cert-manager. ARI kräver v1.21 eller senare med feature gate ACMEUseARI.

Steg 1: Skapa en Secret för EAB

Hämta EAB KID och HMAC-nyckeln under fliken ACME i din FairSSL-kontrollpanel och skapa en Kubernetes Secret i namespacet cert-manager.

kubectl create secret generic fairssl-eab-secret \
  --namespace cert-manager \
  --from-literal=secret=DIN_EAB_HMAC

Steg 2: Skapa en ClusterIssuer

En ClusterIssuer kan användas från alla namespaces. Spara filen som fairssl-issuer.yaml och lägg in den med kubectl apply.

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: fairssl-acme-issuer
spec:
  acme:
    email: acme-client@fairssl.dk
    server: https://fairssl.dk/acme
    privateKeySecretRef:
      name: fairssl-acme-account-key
    externalAccountBinding:
      keyID: DIN_EAB_KID
      keySecretRef:
        name: fairssl-eab-secret
        key: secret
    solvers:
    - http01:
        ingress:
          ingressClassName: nginx
kubectl apply -f fairssl-issuer.yaml

Steg 3: Konfigurera FairSSL AutoDNS

Varje domän du beställer certifikat för behöver en CNAME-post för _dnsauth.<domän> som pekar på FairSSLs DNS-server enligt AutoDNS-menyn. Det görs en gång per domän. Exemplet använder HTTP-01 i Kubernetes, men med AutoDNS fungerar förnyelsen utan manuellt ingripande även om Ingress-sökvägen tillfälligt inte går att nå.

Steg 4: Beställ ett certifikat

Skapa ett Certificate-objekt som refererar till din ClusterIssuer. cert-manager skapar automatiskt en TLS Secret med det namn som anges i secretName, och dina Deployments och Ingresses kan använda den.

apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
  name: www-exempel-se
  namespace: default
spec:
  secretName: www-exempel-se-tls
  issuerRef:
    name: fairssl-acme-issuer
    kind: ClusterIssuer
  commonName: www.exempel.se
  dnsNames:
  - www.exempel.se
  - exempel.se

Steg 5: Verifiera och felsök

kubectl describe clusterissuer fairssl-acme-issuer
kubectl get certificate www-exempel-se -n default
kubectl describe certificate www-exempel-se -n default
kubectl get challenges -A

När status visar Ready: True innehåller www-exempel-se-tls ditt certifikat och den privata nyckeln, och kan monteras i din Deployment eller användas av en Ingress. Du kan kontrollera certifikatet utifrån med FairSSLs SSL-skanner.

Vanliga frågor

Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.

cert-manager är en Kubernetes-controller som körs som en pod i klustret. Den skapar TLS Secrets som vanliga Kubernetes-objekt, så Deployments, Services och Ingresses kan referera till certifikatet utan att känna till ACME. I ett kluster är det den lösning vi rekommenderar, och den ersätter egenbyggda lösningar där en extern klient importerar PEM-filer.
Det beror på vilken av de två valideringsmetoderna du väljer. Med HTTP-01 (via en Ingress) måste port 80 vara öppen från internet till den Ingress-controller som svarar på challenge-sökvägen. Med DNS-01 behövs ingen inkommande port: med FairSSL AutoDNS skapar du en permanent CNAME-post per domän, cert-manager lägger ut sin challenge och FairSSL besvarar den hos oss, så ingenting behöver exponeras på port 80. Vill du inte öppna port 80 mot klustret rekommenderar vi DNS-01 med AutoDNS.
cert-manager stöder ACME Renewal Information (ARI) från v1.21, som experimentell funktion bakom feature gate ACMEUseARI, som är avstängd som standard. Slår du på den förnyas certifikatet när FairSSL rekommenderar det, i stället för bara enligt ett fast schema. Utan den förnyar cert-manager utifrån certifikatets giltighetstid. ARI får större betydelse när giltighetstiden kortas till 99 dagar från 15 mars 2027, och det ger tidig förnyelse när certifikat måste återkallas.
Ja, använd en ClusterIssuer (som i vårt exempel) i stället för en Issuer, som bara gäller i sitt eget namespace. En ClusterIssuer kan användas från alla namespaces i klustret.
I samma namespace som cert-manager (vanligen cert-manager). ClusterIssuer-objektet refererar till det via keySecretRef.name. Hittar cert-manager det inte, be den som administrerar cert-manager kontrollera placeringen med kubectl get secret -n cert-manager.
cert-manager skapar en Order som i sin tur skapar en Challenge. Kontrollera dem med kubectl describe certificate <namn> och kubectl get challenges -A. De vanligaste orsakerna är att ingress-controllern inte skickar vidare /.well-known/acme-challenge/ till cert-manager, eller att AutoDNS inte är rätt konfigurerat för domänen.

Redo att automatisera certifikat i Kubernetes?

Skapa ett gratis konto och beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.