SSL-certifikat på NetScaler / Citrix ADC via ACME
NetScaler kan inte själv hämta ACME-certifikat. I stället kör en Windows-server simple-acme och ett färdigt PowerShell-skript som överför certifikatet via NITRO API. Hela flödet, inklusive förnyelser, körs utan manuella steg.
Versioner som stöds
| Plattform | Versioner | Körs på | ACME-klient |
|---|---|---|---|
| NetScaler ADC | VersionerGuiden sätter ingen versionsgräns | Körs påWindows Server 2016 eller senare, eller 2012/2012 R2 med WMF 5.1 (PowerShell 5.1) | ACME-klientsimple-acme 2.4.0+ (FairSSL-utgåvan, .NET 10 ingår) + NITRO API, CredentialManager |
Så är lösningen uppbyggd
- ✓ En Windows Server (gärna en befintlig administrationsserver) kör simple-acme.
- ✓ simple-acme hämtar certifikatet från FairSSL via AutoDNS-validering. Inga API-nycklar till DNS-leverantören 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 vServrar (eller global VPN-bindning) och sparar konfigurationen.
- ✓ Den dagliga schemalagda aktiviteten från simple-acme förnyar certifikatet automatiskt när ARI, eller den inbyggda reserven sju dagar före utgång, utlöser en förnyelse.
Konfiguration
Steg 1: Installera simple-acme
Hämta FairSSL-utgåvan av simple-acme
(förkonfigurerad med ACME-adress och förnyelseinställningar, med
Install-NetScalerCert.ps1 i mappen Scripts). Packa upp den till C:\simple-acme.
Installera sedan CredentialManager-modulen, som skriptet använder för att hämta inloggningsuppgifterna säkert.
# PowerShell, Run as Administrator
Install-Module CredentialManager -Force -Scope CurrentUser Steg 2: Skapa NITRO-användare på NetScaler
Skapa en dedikerad automatiseringsanvändare på NetScaler 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 vServrar 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 AutoDNS
Skapa via din FairSSL-kontrollpanel en CNAME-post för _dnsauth.<din-domän>
som pekar på FairSSLs DNS-server. Det görs en gång. Se den fullständiga
AutoDNS-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öder det
och klassisk cert-key annars. Använd -DeploymentMode Classic om enheten kräver den äldre metoden.
Steg 5: Vanliga varianter
- Flera vServrar: 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 - HTTP i stället för HTTPS mot management:
-UseHttpfinns, men använd det bara på ett isolerat managementnätverk, eftersom inloggningsuppgifter och privata nycklar annars skickas okrypterade.
Steg 6: Verifiera
I NetScalers webbgränssnitt kontrollerar du under Traffic Management > SSL > Certificates att det nya certifikatet är uppladdat och att den valda SSL vServern eller VPN-bindningen använder det. Är tjänsten publik testar du värdnamnet med 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äggsreglerna, 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 behörigheter. 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 omfattar de här NITRO-anropen.
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.
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å NetScaler(öppnar sslbrain.com i en ny flik)Vanliga frågor
Hitta svar på de vanligaste frågorna om SSL-certifikat och FairSSL.
Auto-läge som frågar enheten om versionen och väljer SSL cert-key bundle när ADC-versionen stöder 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 vServrar. Använd -DeploymentMode Classic om du vill tvinga den äldre metoden.-ValidateManagementCertificate i parametrarna om Windows-servern litar på NetScalers managementcertifikat och du vill ha fullständig TLS-validering.-vServerName "VS1,VS2,VS3" i skriptets parametrar. Skriptet binder samma certifikat till alla angivna vServrar och sparar sedan konfigurationen.-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 beställ ditt första certifikat. Ett DV-certifikat utfärdas på under 2 minuter.