SSL Automatisering
Linux & Kubernetes opsætning
FairSSL ACME virker med alle standard Linux ACME klienter. Lego er vores anbefaling til de fleste Linux-servere og CI/CD, og cert-manager klarer Kubernetes-klynger.
Understøttede platforme
Apache
Debian, Ubuntu, RHEL, CentOS
Lego eller Certbot med automatisk vhost-konfiguration. mod_ssl genindlæses ved fornyelse.
Nginx
Debian, Ubuntu, Alpine, RHEL
Automatisk certifikatinstallation og reload. Virker med Lego, Certbot og acme.sh.
HAProxy
Load Balancer / Ingress
Certifikater udstedes via DNS-01 (ingen port 80 krævet) og deployes som PEM-filer til HAProxy.
Kubernetes →
cert-manager
Deklarativ certifikatstyring i klyngen. ACME Issuer med EAB peger direkte på FairSSL.
Docker
Traefik, Nginx Proxy Manager
Traefik har indbygget ACME. Konfigureres med FairSSL directory URL, EAB og DNS challenge.
Generic Load Balancer
F5, NetScaler, Kemp
Lego eller acme.sh udsteder certifikater via DNS-01. Deploy via script eller API til load balanceren.
macOS →
Intel og Apple Silicon
Automatiser certifikater på macOS med Lego og en LaunchDaemon. Fungerer på både Intel og Apple Silicon. Brug deploy-hook til at synkronisere certifikatet til en hvilken som helst service.
Anbefalet klient: Lego
Lego er en Go-baseret ACME klient der virker på alle platforme. FairSSL sponsorerer projektet og samarbejder direkte med udviklerne. Lego er vores anbefalede klient til Linux og CI/CD pipelines.
Hvorfor Lego?
- ✓ Kompileret Go-binary: ingen dependencies
- ✓ Understøtter ARI (smart fornyelse)
- ✓ Understøtter EAB (FairSSL kontobinding)
- ✓ 100+ DNS-udbydere til DNS-01
- ✓ Cross-platform (Linux, macOS, Windows)
Alternativer
- ✓ Certbot: det mest kendte valg, Python-baseret
- ✓ acme.sh: ren shell-script, ingen root
- ✓ Caddy: webserver med indbygget ACME
- ✓ Traefik: reverse proxy med ACME
Eksempler
Lego: Udsted certifikat (anbefalet)
# Udsted certifikat med Lego og FairSSL ACME
EAB_KID="dhgbKR8K73PgqAxIij6CDg" \
EAB_HMAC="QAx4jKmABqeYCXGZ1H7-eqG2qkPCtflHo5r51TWpebs" \
lego --server https://fairssl.dk/acme \
--email info@example.com \
--eab --kid "$EAB_KID" --hmac "$EAB_HMAC" \
--domains "example.com" --domains "www.example.com" \
--accept-tos --dns manual run Lego: Automatisk fornyelse via cron
# Installer som dagligt cron-job. Lego understøtter ARI og spørger ACME-serveren dagligt om certifikatet bør fornyes.
32 04 * * * /usr/local/bin/lego --server https://fairssl.dk/acme \
--domains "example.com" --domains "www.example.com" \
--email info@example.com \
--accept-tos --dns manual renew --days 15 --renew-hook "/usr/local/bin/reload-apache.sh" Tilfældigt minut og time forhindrer at alle klienter fornyer samtidig. Med ARI tjekker Lego dagligt om CA'en anbefaler tidlig fornyelse. Flaget --days 15 er et fallback der tvinger fornyelse hvis der er 15 dage eller mindre tilbage.
Certbot
# Certbot med FairSSL ACME server
certbot certonly --server https://fairssl.dk/acme \
--manual --preferred-challenges dns \
--eab-kid dhgbKR8K73PgqAxIij6CDg \
--eab-hmac QAx4jKmABqeYCXGZ1H7-eqG2qkPCtflHo5r51TWpebs \
-d example.com -d www.example.com Certbot opsætter automatisk fornyelse via systemd timer.
acme.sh
# acme.sh: understøtter IKKE ARI
# Registrér konto
acme.sh --register-account --server https://fairssl.dk/acme \
--eab-kid dhgbKR8K73PgqAxIij6CDg \
--eab-hmac QAx4jKmABqeYCXGZ1H7-eqG2qkPCtflHo5r51TWpebs
# Udsted certifikat (--days 30 = forny hver 30. dag)
acme.sh --issue --server https://fairssl.dk/acme \
--dns dns_manual -d example.com -d www.example.com --days 30 Bemærk: acme.sh understøtter ikke ARI. Parameteren --days 30 anmoder om et nyt certifikat hver 30. dag, ikke når der er 30 dage tilbage.
Kubernetes cert-manager
<a href="https://cert-manager.io" class="text-secondary hover:underline font-semibold" target="_blank" rel="noopener">cert-manager</a> er standarden for certifikatstyring i Kubernetes. Den understøtter ACME med EAB og kan konfigureres til at bruge FairSSL som certifikatudbyder.
Opsætning
# Gem EAB HMAC-nøglen som secret (namespace=cert-manager for ClusterIssuer)
kubectl create secret generic fairssl-eab-secret \
--from-literal=hmac-key=QAx4jKmABqeYCXGZ1H7-eqG2qkPCtflHo5r51TWpebs \
-n cert-manager # Opret ClusterIssuer
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: fairssl-acme
spec:
acme:
server: https://fairssl.dk/acme
externalAccountBinding:
keyID: dhgbKR8K73PgqAxIij6CDg
keySecretRef:
name: fairssl-eab-secret
key: hmac-key
... Vi bruger ClusterIssuer (frem for Issuer) så den er tilgængelig på tværs af namespaces. EAB-secret skal ligge i cert-manager namespace for at ClusterIssuer kan læse den. Efter kubectl describe clusterissuer skal ACME-kontoen stå som registreret.
Spørgsmål om Linux opsætning
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
Klar til automatiseret SSL på Linux?
Opret en gratis konto og udsted dit første certifikat på under 10 minutter.