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
| Plattform | Versioner | Körs på | ACME-klient |
|---|---|---|---|
| Kubernetes | VersionerGuiden sätter ingen versionsgräns | Körs påKubernetes-klustret | ACME-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.
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.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.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.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.