SSL-certifikatens maximala livslängd reduceras till 200 dagar från mars 2026. Läs mer →

KEMP LoadMaster: SSL-certifikat via ACME-proxy

KEMP LoadMaster har en inbyggd "Let\'s Encrypt"-integration som inte kan konfigureras mot FairSSLs ACME-server. Vi använder en proxy-värd för att utfärda certifikatet via FairSSL Auto DNS och överföra det till KEMP via API:t. Varken KEMPs managementgränssnitt eller er DNS-leverantör behöver öppnas särskilt.

Så är lösningen uppsatt

  • En liten Linux-värd (vanligen en befintlig managementserver) kör Lego.
  • Lego utfärdar certifikatet via FairSSL Auto DNS. Ingen DNS API-åtkomst behövs.
  • Ett deploy-hook konverterar certifikatet till KEMPs förväntade format och anropar LoadMaster-API:t.
  • KEMP importerar det nya certifikatet och uppdaterar de Virtual Services som ska använda det.
  • cron eller systemd kör Lego dagligen. ARI styr förnyelsen.

Uppsättning

Steg 1: Skapa API-användare på KEMP

I LoadMaster-UI: gå till System Configuration → User Management och skapa en lokal användare (t.ex. acme-deploy) med All Permissions för SSL Certificates och Virtual Services. Använd ett starkt lösenord och notera det - vi sparar det i en credentials-fil på proxy-värden. Undanta användaren från eventuell 2FA, eftersom API-anrop inte stöder 2FA.

Steg 2: Installera Lego på proxy-värden

Använd Lego v5.0.4 eller senare. Följande kommando hämtar senaste versionen och installerar binären under /usr/local/bin/lego.

arch=$(dpkg --print-architecture)
case "$arch" in amd64|arm64) ;; *) echo "Justera arch"; exit 1 ;; esac
version=$(curl -fsSL https://api.github.com/repos/go-acme/lego/releases/latest \
  | sed -n 's/.*"tag_name": "\(v[^"]*\)".*/\1/p' | head -1)
curl -fL "https://github.com/go-acme/lego/releases/download/${version}/lego_${version}_linux_${arch}.tar.gz" \
  | sudo tar -xz -C /usr/local/bin lego
sudo install -d -m 0700 /etc/ssl/kemp

Steg 3: Skapa deploy-skript

Skriptet bygger ett PEM-bundle (certifikat + CA-kedja + privat nyckel), laddar upp det till KEMP via /access/addcert och binder det till den angivna Virtual Service via /access/modvs.

sudo tee /usr/local/bin/kemp-deploy.sh > /dev/null << 'SCRIPT'
#!/bin/bash
set -euo pipefail
KEMP_HOST="lb.exempel.se"
KEMP_USER="acme-deploy"
KEMP_PASS="DITT_API_LOSENORD"
CERT_NAME="fairssl-acme-cert"
VS_INDEX="1"   # Virtual Service ID (slå upp i KEMP-UI under "Virtual Services")

CERT="$LEGO_HOOK_CERT_PATH"
KEY="$LEGO_HOOK_CERT_KEY_PATH"
BUNDLE=$(mktemp)
cat "$CERT" "$KEY" > "$BUNDLE"

# Upload (replace=1 skriver över ett befintligt cert med samma namn)
curl -sS -k --user "$KEMP_USER:$KEMP_PASS" \
  --data-binary "@$BUNDLE" \
  "https://$KEMP_HOST/access/addcert?cert=$CERT_NAME&replace=1"

# Bind certifikatet till Virtual Service
curl -sS -k --user "$KEMP_USER:$KEMP_PASS" \
  "https://$KEMP_HOST/access/modvs?vs=$VS_INDEX&certfile=$CERT_NAME"

rm -f "$BUNDLE"
SCRIPT
sudo chmod +x /usr/local/bin/kemp-deploy.sh

Steg 4: Utfärda certifikatet

Se till att domänen är konfigurerad för FairSSL Auto DNS. Kör Lego en gång med EAB-nycklarna.

sudo /usr/local/bin/lego run \
  --domains "lb.exempel.se" \
  --server https://fairssl.dk/acme \
  --eab --eab.kid DIN_EAB_KID --eab.hmac DIN_EAB_HMAC \
  --accept-tos --email acme-client@fairssl.dk \
  --http --http.webroot "/var/www/html" \
  --path "/etc/ssl/kemp" \
  --deploy-hook "/usr/local/bin/kemp-deploy.sh"

Steg 5: Schemalägg dagligen med cron

# /etc/cron.d/lego-kemp
17 04 * * * root /usr/local/bin/lego run \
  --domains "lb.exempel.se" \
  --server https://fairssl.dk/acme \
  --accept-tos --email acme-client@fairssl.dk \
  --http --http.webroot "/var/www/html" \
  --path "/etc/ssl/kemp" \
  --renew-days 7 \
  --deploy-hook "/usr/local/bin/kemp-deploy.sh"

Steg 6: Verifiera

  • I LoadMaster-UI under Certificates & Security → SSL Certificates: bekräfta att fairssl-acme-cert finns med det nya utgångsdatumet.
  • Under Virtual Services: bekräfta att den valda VS:en använder det nya certifikatet.
  • Testa publikt med FairSSLs SSL-skanner.
  • Om du tidigare använt KEMPs inbyggda Let\'s Encrypt på samma VS, inaktivera den för att undvika parallell förnyelse.

Vanliga frågor

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

KEMP LoadMaster har en inbyggd "Let's Encrypt"-integration, men den pekar fast på Let's Encrypts produktionsserver och endpointen kan inte ändras till FairSSLs ACME-server. Därför använder vi en proxy-lösning: en extern Linux- eller Windows-värd utfärdar certifikatet och överför det till KEMP via KEMPs API.
Själva ACME DNS-01-utmaningen besvaras av FairSSL Auto DNS. Vi har en permanent CNAME-post från _acme-challenge.<din-domän> till vår DNS-server, och FairSSL svarar på utmaningen. KEMP behöver därför varken exponera port 80 mot internet eller åtkomst till sin DNS-leverantörs API. Sett från KEMP kommer certifikatet bara fram som ett färdigt PEM, redo för import.
Den här guiden förutsätter LoadMaster firmware 7.2.48 eller senare. Vi har testat flödet på 7.2.55+. Äldre firmware kan kräva manuell uppladdning via webbgränssnittet, vilket motverkar hela poängen med automatisering.
En dedikerad API-användare med All Permissions för SSL Certificates och Real Servers / Virtual Services. Sätt inloggningsmetoden till Local User och ge användaren ett starkt lösenord. Om WUI-inloggning är skyddad av interaktiv 2FA ska API-användaren använda en API-stödd inloggningsmetod, till exempel API-nyckel, lokal användare med lösenord eller klientcertifikat.
Lego (eller simple-acme) körs dagligen på proxy-värden. När ARI eller den inbyggda 7-dagars fallback utlöser förnyelse hämtas ett nytt certifikat, och deploy-skriptet anropar KEMP-API:t: POST /access/addcert för att importera det nya certifikatet och POST /access/modvs för varje Virtual Service som ska använda det.
Om du tidigare använt KEMPs inbyggda Let's Encrypt för samma Virtual Services, inaktivera den i KEMP-UI så att de två flödena inte konkurrerar om samma certifikatbindningar och ger förvirrande resultat.

Redo att automatisera KEMP-certifikat?

Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.