NetScaler / Citrix ADC SSL-certifikat via ACME
NetScaler kan inte själv hämta ACME-certifikat. Vi använder en Windows-server för management med simple-acme och ett färdigt PowerShell-skript som överför certifikatet via NITRO API. Hela förloppet, inklusive förnyelser, körs utan manuell åtgärd.
Så är lösningen uppsatt
- ✓ Windows Server (kan vara en befintlig managementvärd) kör simple-acme.
- ✓ simple-acme hämtar certifikatet från FairSSL via Auto DNS-validering. Inga DNS API-nycklar behövs.
- ✓
Install-NetScalerCert.ps1körs som installationsskript och överför certifikatet till NetScaler via NITRO REST API över HTTPS. - ✓ Skriptet binder certifikatet till en eller flera SSL vServere (eller global VPN-bindning) och sparar konfigurationen.
- ✓ Den dagliga schemalagda aktiviteten från simple-acme förnyar automatiskt när ARI eller den inbyggda 7-dagars fallback utlöser förnyelse.
Uppsättning
Steg 1: Installera simple-acme
Hämta FairSSL-utgåvan av simple-acme
(förkonfigurerad med ACME-adress och förnyelseinställningar, och innehåller
Install-NetScalerCert.ps1 i Scripts-mappen). Packa upp till C:\simple-acme.
Installera sedan CredentialManager-modulen som skriptet använder för att slå upp inloggning säkert.
# PowerShell, Run as Administrator
Install-Module CredentialManager -Force -Scope CurrentUser Steg 2: Skapa NITRO-användare på NetScaler
På NetScaler: skapa en dedikerad automatiseringsanvändare som får använda NITRO API för att ladda upp SSL-filer, skapa eller uppdatera SSL cert-key-par, binda certifikat till SSL vServere och spara konfigurationen. Spara kontots inloggningsuppgifter i Windows Credential Manager på managementservern.
$credential = Get-Credential -UserName "nsadmin" -Message "NetScaler NITRO-användare"
New-StoredCredential -Target "NetScaler-acme-user" -Credentials $credential -Persist LocalMachine Steg 3: Konfigurera Auto DNS
I din FairSSL-kontrollpanel: skapa en CNAME-post för _acme-challenge.<din-domän>
till FairSSLs DNS-server. Engångsuppsättning. Se den fullständiga
Auto DNS-guiden.
Steg 4: Utfärda och installera
Kör kommandot från C:\simple-acme som administratör. Ersätt YOUR_NS_HOST,
YOUR_ADC_CERTKEY_NAME och YOUR_VSERVER_NAME. Om du förnyar ett certifikat som
redan är bundet ska du ange det befintliga cert-key-namnet i -certName.
wacs.exe --verbose --baseuri "https://fairssl.dk/acme" `
--eab-key-identifier DIN_EAB_KID --eab-key DIN_EAB_HMAC --accepttos `
--source manual --host "ns.exempel.se" --validation none `
--store pemfiles --pemfilespath "C:\simple-acme\Certificates" `
--pemfilesname "ns-exempel-se" --friendlyname "fairssl-ns-cert" `
--installation script --script ".\Scripts\Install-NetScalerCert.ps1" `
--scriptparameters "-StorePath 'C:\simple-acme\Certificates' -FilePrefix 'ns-exempel-se' -nsHost 'YOUR_NS_HOST' -certName 'YOUR_ADC_CERTKEY_NAME' -vServerName 'YOUR_VSERVER_NAME' -CredentialTarget 'NetScaler-acme-user'"
Standard är -DeploymentMode Auto, som väljer SSL cert-key bundle på versioner som stödjer det
och klassisk cert-key annars. Använd -DeploymentMode Classic om enheten kräver den äldre metoden.
Steg 5: Vanliga varianter
- Flera vServere: använd
-vServerName 'VS1,VS2' - SNI-bindningar: lägg till
-SniCert - Citrix Gateway / global VPN: ta bort
-vServerNameoch lägg till-BindGlobalVpn - Betrott managementcertifikat: lägg till
-ValidateManagementCertificate - Använd HTTPS för management:
-UseHttpfinns som alternativ, men använd den bara på ett isolerat managementnätverk, eftersom inloggningsuppgifter och privata nycklar annars skickas okrypterat.
Steg 6: Verifiera
I NetScalers webb-UI: kontrollera under Traffic Management > SSL > Certificates att det nya certifikatet är uppladdat och att den valda SSL vServern eller VPN-bindningen använder det. Om tjänsten är publik, kör värdnamnet genom FairSSLs SSL-skanner.
Felsökning
Skriptet når inte NetScalers managementgränssnitt
Windows-servern måste nå NetScalers managementadress på TCP/443 (eller TCP/80 om -UseHttp är satt, vilket inte rekommenderas). Kontrollera brandväggsregler, att managementadressen är tillgänglig över HTTPS och att kontot kan logga in på NITRO API.
NITRO returnerar 401 Unauthorized
NITRO-användaren som är sparad i Credential Manager har inte tillräckliga rättigheter. NetScaler-användaren ska kunna läsa versionen och befintlig cert-key, ladda upp systemfiler, skapa och uppdatera SSL cert-key eller SSL cert-key bundle, binda certifikat till SSL vServer eller global VPN, och spara konfigurationen. Tilldela användaren en command-policy som täcker dessa NITRO-operationer.
Certifikatet laddas upp men binds inte
Kontrollera att -vServerName matchar det exakta namnet på SSL vServern. Kom ihåg -SniCert om du använder SNI. För global VPN-bindning används -BindGlobalVpn i stället för -vServerName.
Vanliga frågor
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
Auto-tillstånd som frågar enheten om versionen och väljer SSL cert-key bundle när ADC-versionen stödjer det, och det inte redan finns en klassisk cert-key med samma namn. Äldre enheter och global VPN-bindning använder klassisk SSL cert-key eftersom bundles bara kan bindas till SSL vServere. Använd -DeploymentMode Classic om du vill tvinga den äldre metoden.-ValidateManagementCertificate i parametrarna om NetScalers managementcertifikat är betrott av Windows-servern och du vill upprätthålla fullständig TLS-validering.-vServerName "VS1,VS2,VS3" i skriptets parametrar. Skriptet binder samma certifikat till alla angivna vServere och sparar konfigurationen till sist.-vServerName och lägg till -BindGlobalVpn. Global VPN-bindning använder alltid klassisk SSL cert-key (inte bundles), så skriptet väljer automatiskt rätt format.Redo att automatisera NetScaler-certifikat?
Skapa ett gratis konto och utfärda ditt första certifikat på under 10 minuter.