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-certfinns 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.
_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.POST /access/addcert för att importera det nya certifikatet och POST /access/modvs för varje Virtual Service som ska använda det.Redo att automatisera KEMP-certifikat?
Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.