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

F5 BIG-IP: SSL-certifikat med ACME

Inbyggd ACME från BIG-IP 21.1.0. Använd Lego och iControl REST på äldre versioner. FairSSL hanterar domänvalideringen med AutoDNS.

Versioner som stöds

F5 BIG-IPVersionerBIG-IP 21.1.0 och senareKörs påEnheten självACME-klientEnhetens inbyggda ACME-klient med EAB

BIG-IP 21.1.0 och senare: inbyggd ACME

Skapa en ACME-profil i FairSSL:s kontrollpanel och hämta directory-URL, EAB KID och EAB HMAC-nyckel via ACME Easy Guide. Välj Appliance och F5 BIG-IP (21.1.0+). Håll HMAC-nyckeln hemlig.

1. Kontrollera version och domäner

Använd BIG-IP/TMOS 21.1.0 eller senare och ett administratörskonto för konfigurationen. Alla namn måste vara tillåtna i ACME-profilen och konfigurerade för AutoDNS hos FairSSL. FairSSL hanterar domänvalideringen. Använd den externa Lego/iControl REST-metoden på äldre BIG-IP-versioner.

2. Konfigurera DNS och intern proxy

Skapa en resolver under Network → DNS Resolvers → DNS Resolver List. Skapa sedan en intern proxy under System → Services → Internal Proxies och välj resolvern. Vid direktanslutning ska Use Proxy Server vara avstängt; den interna proxyn behövs fortfarande. Tillåt DNS-uppslagning och utgående HTTPS till FairSSL genom TMM-routing. Anslutning enbart från administrationsgränssnittet räcker inte.

3. Skapa ACME-kontonyckeln

Öppna System → Certificate Management → Traffic Certificate Management. Skapa ett självsignerat certifikat med en privat nyckel, till exempel fairssl-acme-account, med Issuer: Self. Välj detta objekt som Account Key vid registreringen. Det är en separat kontonyckel, inte trafikcertifikatet eller EAB HMAC-nyckeln.

4. Skapa FairSSL som ACME-leverantör

Öppna Traffic Certificate Management → ACME Provider List → Create. Använd namnet fairssl-acme, välj den interna proxyn och fyll i fälten nedan. CA Certificate måste lita på HTTPS-certifikatet för FairSSL:s ACME-server; använd ca-bundle.crt om det innehåller de certifikat som krävs för tilliten. Klistra in EAB HMAC-värdet exakt som det levererades.

Kopiera värdena till motsvarande fält under ACME Provider. Lägg inte till /directory i URL:en och Base64-koda inte HMAC-nyckeln igen.

ACME Provider
F5FairSSL / BIG-IP
CA Certificateca-bundle.crt
Directory URLhttps://fairssl.dk/acme
Account Keyfairssl-acme-account
External Account Binding KeyEAB KID
External Account Binding MAC KeyEAB HMAC
External Account Binding AlgorithmHS256
Contactsmailto: följt av er e-postadress för kontakt
Challenge TypeHTTP-01

5. Registrera kontot

Godkänn Terms and Conditions, välj Create Account och spara med Finished. Kontrollera Account Status: Valid. Behåll kontonyckeln och leverantörskonfigurationen för förnyelser. Återanvänd inte en EAB-nyckel för engångsbruk till upprepade kontoregistreringar. HTTP-01 är F5-klientens inställning; FairSSL validerar centralt med AutoDNS. FairSSL kräver därför inte offentlig port 80 på BIG-IP. Flödet utan HTTP-lyssnare behöver dock fortfarande testas på BIG-IP.

6. Beställ trafikcertifikatet

Skapa ett nytt certifikat under Traffic Certificate Management med Issuer: Certificate Authority. Fyll i Common Name och Subject Alternative Name. Ta med alla namn, även Common Name, med DNS: framför varje SAN-namn, till exempel DNS:www.example.com. Under Certificate Order Properties väljer du Provider: ACME Provider, ACME Order Provider: fairssl-acme och Type: New. Identifiers ska innehålla samma domännamn. Klicka på Finished, öppna fliken Key och klicka på Update för att starta beställningen. Kontrollera utfärdande, namn och utgångsdatum.

7. Koppla certifikatet och kontrollera förnyelse

Öppna Local Traffic → Profiles → SSL → Client. Välj det utfärdade certifikatet, dess privata nyckel och rätt kedja av mellanliggande certifikat under Certificate Key Chain. Leverantörens ca-bundle.crt är inte webbplatsens kedja av mellanliggande certifikat. Koppla profilen till rätt virtuell HTTPS-server och kontrollera det certifikat som faktiskt används med rätt värdnamn/SNI. F5 beskriver automatisk förnyelse; behåll ACME-kontot och övervaka utgångsdatumet. Bekräfta en förnyelse i din miljö. HA, AS3 och wildcard har inte testats i den här guiden.

F5:s dokumentation · Skicka återkoppling till FairSSL

BIG-IP före 21.1.0: Lego och iControl REST

  • ✓ En proxy-värd (Linux, till exempel en befintlig administrationsserver) kör Lego v5.0.4 eller senare.
  • ✓ Lego hämtar certifikatet via FairSSL AutoDNS. Ingen åtkomst till DNS-leverantörens API behövs.
  • ✓ En deploy-hook laddar upp certifikat och nyckel via iControl REST och uppdaterar Client SSL-profilen.
  • ✓ Om F5 körs som HA-par kör skriptet ConfigSync mot standby-enheten.
  • ✓ cron kör Lego dagligen. ARI styr förnyelsen.

Konfiguration

Steg 1: Skapa iControl REST-användare på F5

I webbgränssnittet för BIG-IP går du till System → Users → User List och skapar en lokal användare (till exempel acme-deploy) med rollen Certificate Manager för partitionen Common (eller den partition där era SSL-profiler ligger). Använd ett starkt lösenord.

Steg 2: Installera 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/f5

Steg 3: Skapa deploy-skript

Skriptet laddar upp certifikat och nyckel med POST /mgmt/shared/file-transfer/uploads, skapar eller uppdaterar ssl-cert- och ssl-key-objekten via cmd=install och uppdaterar Client SSL-profilen. Om ni kör HA aktiverar ni ConfigSync-blocket.

sudo tee /usr/local/bin/f5-deploy.sh > /dev/null << 'SCRIPT'
#!/bin/bash
set -euo pipefail
F5_HOST="bigip.exempel.se"
F5_USER="acme-deploy"
F5_PASS="DITT_API_LOSENORD"
CERT_NAME="fairssl-acme-cert"
KEY_NAME="fairssl-acme-key"
PROFILE="fairssl-clientssl"   # Client SSL profile name in partition Common

CERT="$LEGO_HOOK_CERT_PATH"
KEY="$LEGO_HOOK_CERT_KEY_PATH"

# 1. Ladda upp cert + key till /var/config/rest/downloads
curl -sS -k --user "$F5_USER:$F5_PASS" \
  -H "Content-Type: application/octet-stream" \
  -H "Content-Range: 0-$(($(stat -c%s "$CERT")-1))/$(stat -c%s "$CERT")" \
  --data-binary "@$CERT" \
  "https://$F5_HOST/mgmt/shared/file-transfer/uploads/$CERT_NAME.crt"

curl -sS -k --user "$F5_USER:$F5_PASS" \
  -H "Content-Type: application/octet-stream" \
  -H "Content-Range: 0-$(($(stat -c%s "$KEY")-1))/$(stat -c%s "$KEY")" \
  --data-binary "@$KEY" \
  "https://$F5_HOST/mgmt/shared/file-transfer/uploads/$KEY_NAME.key"

# 2. Installera cert + key som objekt (skriver över om de finns)
curl -sS -k --user "$F5_USER:$F5_PASS" \
  -H "Content-Type: application/json" \
  -d "{ \"command\": \"install\", \"name\": \"$CERT_NAME\", \"from-local-file\": \"/var/config/rest/downloads/$CERT_NAME.crt\" }" \
  "https://$F5_HOST/mgmt/tm/sys/crypto/cert"

curl -sS -k --user "$F5_USER:$F5_PASS" \
  -H "Content-Type: application/json" \
  -d "{ \"command\": \"install\", \"name\": \"$KEY_NAME\", \"from-local-file\": \"/var/config/rest/downloads/$KEY_NAME.key\" }" \
  "https://$F5_HOST/mgmt/tm/sys/crypto/key"

# 3. Uppdatera Client SSL-profilen
curl -sS -k --user "$F5_USER:$F5_PASS" \
  -X PATCH -H "Content-Type: application/json" \
  -d "{ \"cert\": \"$CERT_NAME\", \"key\": \"$KEY_NAME\" }" \
  "https://$F5_HOST/mgmt/tm/ltm/profile/client-ssl/~Common~$PROFILE"

# 4. (Valfritt) ConfigSync till standby i ett HA-par
# curl -sS -k --user "$F5_USER:$F5_PASS" \
#   -H "Content-Type: application/json" \
#   -d '{"command": "run", "utilCmdArgs": "config-sync to-group /Common/device-trust-group"}' \
#   "https://$F5_HOST/mgmt/tm/cm"
SCRIPT
sudo chmod 700 /usr/local/bin/f5-deploy.sh

Steg 4: Utfärda certifikatet

sudo /usr/local/bin/lego run \
  --domains "vip.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/f5" \
  --deploy-hook "/usr/local/bin/f5-deploy.sh"

Steg 5: Schemalägg dagligen

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

Steg 6: Verifiera

  • I webbgränssnittet för BIG-IP, under System → Certificate Management → Traffic Certificate Management → SSL Certificate List: kontrollera att fairssl-acme-cert finns med det nya utgångsdatumet.
  • Under Local Traffic → Profiles → SSL → Client: kontrollera att profilen fairssl-clientssl använder det nya certifikatet och den nya nyckeln.
  • Testa utifrån med FairSSLs SSL-skanner.
  • Vid HA: kontrollera på standby-enheten att konfigurationen är synkroniserad.

Certifikat på många servrar och appliances

Ett offentligt SSL-certifikat får vara giltigt i högst 199 dagar nu, 99 dagar senast 2027-03-15 och 46 dagar senast 2029-03-15. Varje certifikat måste då bytas minst två gånger om året nu och minst åtta gånger om året från 2029, på varje server, brandvägg och lastbalanserare där det används. sslbrain från FairSSL körs som en appliance i ert eget nätverk och förnyar och installerar certifikaten från ett ställe, även på utrustning utan agent.

Så förnyar och installerar sslbrain certifikat på F5 BIG-IP(öppnar sslbrain.com i en ny flik)

Vanliga frågor

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

Inbyggd ACME från BIG-IP 21.1.0. Använd Lego och iControl REST på äldre versioner. FairSSL hanterar domänvalideringen med AutoDNS. Den nya guiden för inbyggd ACME inväntar återkoppling.
iControl REST är F5:s REST API för BIG-IP. API:t omfattar hela konfigurationen, inklusive certifikathantering via /mgmt/tm/sys/file/ssl-cert och /mgmt/tm/sys/file/ssl-key. Det är aktiverat som standard i alla aktuella BIG-IP-versioner och används av F5:s officiella Ansible-moduler, Terraform-providern och andra automationsverktyg.
iControl REST är det flexiblaste alternativet och kan anropas med curl från valfri värd. tmsh passar bättre om du redan är inloggad på själva BIG-IP-enheten eller går via en bastion-värd. Vårt exempel använder iControl REST, eftersom proxy-värden ligger utanför F5.
Skapa en dedikerad iControl REST-användare med rollen Certificate Manager (eller Administrator om ni inte använder finare rollindelning). Användaren ska kunna ladda upp filer, skapa och uppdatera ssl-cert och ssl-key samt uppdatera Client SSL-profilen. Använd ett starkt lösenord och spara det på proxy-värden i en fil som bara ägaren kan läsa (chmod 600).
När certifikatet och nyckeln är uppladdade uppdaterar skriptet Client SSL-profilen via PATCH /mgmt/tm/ltm/profile/client-ssl/<profile> med de nya cert- och key-fälten. Befintliga virtuella servrar som använder profilen får automatiskt det nya certifikatet så snart F5 har laddat om profilen.
Ladda upp till den aktiva enheten och kör sedan POST /mgmt/tm/cm/config-sync för att synkronisera konfigurationen till standby-enheten. Exempelskriptet hanterar en enskild enhet. Lägg till synkroniseringskommandot om ni kör HA. ConfigSync överför både certifikatfilerna och profiluppdateringen.
Lego körs dagligen. När ARI, eller den inbyggda reserven sju dagar före utgång, utlöser en förnyelse hämtas ett nytt certifikat. Deploy-hooken laddar upp filerna, uppdaterar Client SSL-profilen och synkroniserar vid HA. Virtuella servrar använder det nya certifikatet från nästa anslutning, utan omstart.

Redo att automatisera F5-certifikat?

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