F5 BIG-IP: SSL-certifikater med ACME
BIG-IP 21.1.0 og nyere henter certifikatet med indbygget ACME. Ældre versioner får det fra Lego på en proxy-vært via iControl REST. FairSSL AutoDNS klarer domænevalideringen.
Sådan virker det
- Vælg vej efter version Fra BIG-IP 21.1.0 opretter du FairSSL som ACME-provider på BIG-IP. På ældre versioner kører Lego på en proxy-vært.
- Klargør adgang Indbygget ACME: opret ACME-kontonøglen og registrér kontoen. Lego: opret en iControl REST-bruger med rollen Certificate Manager.
- Udsted og tilknyt Bestil trafikcertifikatet, og vælg det i Client SSL-profilen. Med Lego uploader deploy-hooket cert og nøgle og opdaterer profilen.
- Kontrollér Tjek det serverede certifikat for det rigtige værtsnavn (SNI) og udløbsdato. Med Lego skal fairssl-acme-cert bruges af Client SSL-profilen.
Indbygget ACME fra BIG-IP 21.1.0. Brug Lego og iControl REST på ældre versioner. FairSSL håndterer domænevalideringen med AutoDNS.
Understøttede versioner
| Platform | Versioner | Kører på | ACME-klient |
|---|---|---|---|
| F5 BIG-IP | VersionerBIG-IP 21.1.0 og nyere | Kører påEnheden selv | ACME-klientEnhedens indbyggede ACME-klient med EAB |
BIG-IP 21.1.0 og nyere: indbygget ACME
Opret en ACME-profil i FairSSLs kontrolpanel, og hent directory-URL, EAB KID og EAB HMAC-nøgle via ACME Easy Guide. Vælg Appliance og F5 BIG-IP (21.1.0+). Hold HMAC-nøglen fortrolig.
1. Kontrollér version og domæner
Brug BIG-IP/TMOS 21.1.0 eller nyere og en bruger med administratoradgang til opsætningen. Alle navne skal være tilladt af ACME-profilen og klargjort til AutoDNS hos FairSSL. FairSSL håndterer domænevalideringen. Vælg den eksterne Lego/iControl REST-metode på ældre BIG-IP-versioner.
2. Klargør DNS og intern proxy
Opret en resolver under Network → DNS Resolvers → DNS Resolver List. Opret derefter en intern proxy under System → Services → Internal Proxies, og vælg resolveren. Ved direkte forbindelse skal Use Proxy Server være slået fra; den interne proxy er stadig nødvendig. Sørg for DNS-opslag og udgående HTTPS til FairSSL gennem TMM-routing. Adgang fra management-interfacet alene er ikke tilstrækkelig.
3. Opret ACME-kontonøglen
Åbn System → Certificate Management → Traffic Certificate Management. Opret et selvsigneret certifikat med privat nøgle, fx fairssl-acme-account, med Issuer: Self. Dette objekt bruges som Account Key ved registrering. Det er en særskilt kontonøgle, ikke trafikcertifikatet eller EAB HMAC-nøglen.
4. Opret FairSSL som ACME-provider
Åbn Traffic Certificate Management → ACME Provider List → Create. Brug navnet fairssl-acme, vælg den interne proxy, og udfyld felterne nedenfor. CA Certificate skal have tillid til HTTPS-certifikatet på FairSSLs ACME-server; brug ca-bundle.crt, hvis det indeholder den nødvendige tillid. Indsæt EAB HMAC-værdien præcist som leveret.
Kopiér værdierne til de tilsvarende felter under ACME Provider. Tilføj ikke /directory til URL’en, og Base64-kod ikke HMAC-nøglen 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: efterfulgt af jeres kontaktadresse |
| Challenge Type | HTTP-01 |
5. Registrér kontoen
Acceptér Terms and Conditions, vælg Create Account, og gem med Finished. Kontrollér Account Status: Valid. Bevar kontonøglen og provider-konfigurationen til fornyelser. En EAB-nøgle til engangsbrug skal ikke bruges til gentagne kontoregistreringer. HTTP-01 er F5s klientindstilling; FairSSL validerer centralt med AutoDNS. FairSSL kræver derfor ikke offentlig port 80 på BIG-IP. En opsætning uden HTTP-listener på BIG-IP er ikke dækket af denne guide.
6. Bestil trafikcertifikatet
Opret et nyt certifikat under Traffic Certificate Management med Issuer: Certificate Authority. Udfyld Common Name og Subject Alternative Name. Medtag alle navne, også Common Name, med DNS: foran hvert SAN-navn, fx DNS:www.example.com. Under Certificate Order Properties vælges Provider: ACME Provider, ACME Order Provider: fairssl-acme og Type: New. Identifiers skal indeholde de samme domænenavne. Klik Finished, åbn fanen Key, og klik Update for at starte bestillingen. Kontrollér udstedelse, navne og udløbsdato.
7. Tilknyt certifikatet og kontrollér fornyelse
Åbn Local Traffic → Profiles → SSL → Client. Vælg det udstedte certifikat, den tilhørende private nøgle og den korrekte intermediate-kæde under Certificate Key Chain. Providerens ca-bundle.crt er ikke webstedets intermediate-kæde. Knyt profilen til den relevante HTTPS-virtual server, og kontrollér det faktisk serverede certifikat med det rigtige værtsnavn/SNI. F5 beskriver automatisk fornyelse; bevar ACME-kontoen, og overvåg udløbsdatoen. Bekræft en fornyelse i dit miljø. HA, AS3 og wildcard er ikke dækket af denne guide.
BIG-IP før 21.1.0: Lego og iControl REST
- ✓ En proxy-vært (Linux, fx en eksisterende management-server) kører Lego v5.0.4+.
- ✓ Lego udsteder certifikatet via FairSSL AutoDNS. Ingen DNS-API-adgang nødvendig.
- ✓ Et deploy-hook uploader cert + nøgle via iControl REST og opdaterer Client SSL-profilen.
- ✓ Hvis F5 kører som HA-par, kalder scriptet ConfigSync til standby.
- ✓ Cron kører Lego dagligt. ARI styrer fornyelsen.
Opsætning
Trin 1: Opret iControl REST-bruger på F5
I BIG-IP webgrænsefladen: gå til System → Users → User List og opret en lokal bruger
(fx acme-deploy) med rollen Certificate Manager for partition Common
(eller den partition, hvor jeres SSL-profiler ligger). Brug en stærk adgangskode.
Trin 2: Installer Lego
arch=$(dpkg --print-architecture)
case "$arch" in amd64|arm64) ;; *) echo "Ret 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 Trin 3: Opret deploy-script
Scriptet uploader cert og nøgle med POST /mgmt/shared/file-transfer/uploads, opretter eller
opdaterer ssl-cert- og ssl-key-objekter via cmd=install, og opdaterer Client SSL-profilen.
Tilføj eventuelt en ConfigSync-blok hvis I kører HA.
sudo tee /usr/local/bin/f5-deploy.sh > /dev/null << 'SCRIPT'
#!/bin/bash
set -euo pipefail
F5_HOST="bigip.eksempel.dk"
F5_USER="acme-deploy"
F5_PASS="DIT_API_KODE"
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. Upload cert + key til /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. Installer cert + key som objekter (overskriver hvis de findes)
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. Opdater 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. (Valgfri) ConfigSync til standby i et 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 Trin 4: Udsted certifikatet
sudo /usr/local/bin/lego run \
--domains "vip.eksempel.dk" \
--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" Trin 5: Planlæg dagligt
# /etc/cron.d/lego-f5
17 04 * * * root /usr/local/bin/lego run \
--domains "vip.eksempel.dk" \
--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" Trin 6: Verificér
- I BIG-IP webgrænsefladen under System → Certificate Management → Traffic Certificate Management → SSL Certificate List: bekræft at
fairssl-acme-certfindes med den nye udløbsdato. - Under Local Traffic → Profiles → SSL → Client: bekræft at
fairssl-clientssl-profilen bruger det nye cert + key. - Test offentligt med FairSSLs SSL-scanner.
- HA-opsætninger: bekræft via standby BIG-IP at konfigurationen er synkroniseret.
Certifikater på mange servere og appliances
Et offentligt SSL-certifikat kan højst være gyldigt i 199 dage nu, 99 dage senest 15-03-2027 og 46 dage senest 15-03-2029. Hvert certifikat skal dermed skiftes mindst to gange om året nu og mindst otte gange om året fra 2029, på hver server, firewall og load balancer, det bruges på. sslbrain fra FairSSL kører som en appliance i jeres eget netværk og fornyer og installerer certifikaterne fra ét sted, også på udstyr uden agent.
Sådan fornyer og installerer sslbrain certifikater på F5 BIG-IP(åbner sslbrain.com i en ny fane)Ofte stillede spørgsmål
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
/mgmt/tm/sys/file/ssl-cert og /mgmt/tm/sys/file/ssl-key. API'et er aktiveret som standard på alle moderne BIG-IP-versioner og bruges af F5s officielle Ansible-moduler, Terraform-provider og en lang række automationsværktøjer.chmod 600) på proxy-værten.PATCH /mgmt/tm/ltm/profile/client-ssl/<profile> med de nye cert- og key-felter. Eksisterende virtuelle servere, der bruger profilen, får automatisk det nye certifikat, så snart F5 har genindlæst profilen.POST /mgmt/tm/cm/config-sync for at synkronisere konfigurationen til standby. Vores eksempelscript dækker den enkelte enhed; tilføj sync-kommandoen, hvis I har HA. ConfigSync overfører både certifikatfiler og profilopdateringen.Klar til at automatisere F5-certifikater?
Opret en gratis konto og bestil dit første certifikat. Et DV-certifikat udstedes på under 2 minutter.