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
| Plattform | Versioner | Körs på | ACME-klient |
|---|---|---|---|
| F5 BIG-IP | VersionerBIG-IP 21.1.0 och senare | Körs påEnheten själv | ACME-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.
| F5 | FairSSL / BIG-IP |
|---|---|
| CA Certificate | ca-bundle.crt |
| Directory URL | https://fairssl.dk/acme |
| Account Key | fairssl-acme-account |
| External Account Binding Key | EAB KID |
| External Account Binding MAC Key | EAB HMAC |
| External Account Binding Algorithm | HS256 |
| Contacts | mailto: följt av er e-postadress för kontakt |
| Challenge Type | HTTP-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.
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-certfinns med det nya utgångsdatumet. - Under Local Traffic → Profiles → SSL → Client: kontrollera att profilen
fairssl-clientsslanvä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.
/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.chmod 600).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.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.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.