NetScaler / Citrix ADC SSL-certifikat via ACME
NetScaler kan ikke selv hente ACME-certifikater. Vi bruger en Windows-server til management med simple-acme og et færdigt PowerShell-script, der overfører certifikatet via NITRO API. Hele forløbet, inklusive fornyelser, kører uden manuel handling.
Sådan er løsningen sat op
- ✓ Windows Server (kan være en eksisterende managementserver) kører simple-acme.
- ✓ simple-acme henter certifikatet fra FairSSL via AutoDNS-validering. Ingen DNS API-nøgler nødvendige.
- ✓
Install-NetScalerCert.ps1kører som installationsscript og overfører certifikatet til NetScaler via NITRO REST API over HTTPS. - ✓ Scriptet binder certifikatet til en eller flere SSL vServere (eller global VPN-binding) og gemmer konfigurationen.
- ✓ Den daglige planlagte opgave fra simple-acme fornyer automatisk, når ARI eller den indbyggede 7-dages fallback udløser fornyelse.
Opsætning
Trin 1: Installer simple-acme
Hent FairSSL-udgaven af simple-acme
(forudkonfigureret med ACME-adresse og fornyelsesindstillinger, og indeholder
Install-NetScalerCert.ps1 i Scripts-mappen). Udpak til C:\simple-acme. Installer
derefter CredentialManager-modulet, som scriptet bruger til at slå login op sikkert.
# PowerShell, Run as Administrator
Install-Module CredentialManager -Force -Scope CurrentUser Trin 2: Opret NITRO-bruger på NetScaler
På NetScaler: opret en dedikeret automatiseringsbruger, der må bruge NITRO API til at uploade SSL-filer, oprette eller opdatere SSL cert-key-par, binde certifikater til SSL vServere og gemme konfigurationen. Gem kontoens legitimationsoplysninger i Windows Credential Manager på managementserveren.
$credential = Get-Credential -UserName "nsadmin" -Message "NetScaler NITRO-bruger"
New-StoredCredential -Target "NetScaler-acme-user" -Credentials $credential -Persist LocalMachine Trin 3: Konfigurer AutoDNS
I dit FairSSL-kontrolpanel: opret en CNAME viderestilling for _dnsauth.<dit-domæne>
til FairSSLs DNS-server. Engangsopsætning. Se den fulde
AutoDNS-vejledning.
Trin 4: Udsted og installer
Kør kommandoen fra C:\simple-acme som administrator. Erstat YOUR_NS_HOST,
YOUR_ADC_CERTKEY_NAME og YOUR_VSERVER_NAME. Hvis du fornyer et certifikat, der
allerede er bundet, skal du angive det eksisterende cert-key-navn 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.eksempel.dk" --validation none `
--store pemfiles --pemfilespath "C:\simple-acme\Certificates" `
--pemfilesname "ns-eksempel-dk" --friendlyname "fairssl-ns-cert" `
--installation script --script ".\Scripts\Install-NetScalerCert.ps1" `
--scriptparameters "-StorePath 'C:\simple-acme\Certificates' -FilePrefix 'ns-eksempel-dk' -nsHost 'YOUR_NS_HOST' -certName 'YOUR_ADC_CERTKEY_NAME' -vServerName 'YOUR_VSERVER_NAME' -CredentialTarget 'NetScaler-acme-user'"
Standardvalget er -DeploymentMode Auto, som vælger SSL cert-key bundle på understøttede
versioner (14.1 build 21.x+) og klassisk cert-key ellers. Brug -DeploymentMode Classic hvis
enheden kræver den ældre metode.
Trin 5: Almindelige varianter
- Flere vServere: brug
-vServerName 'VS1,VS2' - SNI-bindinger: tilføj
-SniCert - Citrix Gateway / global VPN: fjern
-vServerNameog tilføj-BindGlobalVpn - Betroet managementcertifikat: tilføj
-ValidateManagementCertificate - Brug HTTPS til management:
-UseHttpfindes som mulighed, men brug den kun på et isoleret managementnetværk, da legitimationsoplysninger og private nøgler ellers sendes ukrypteret.
Trin 6: Verificér
I NetScalers web-UI: kontrollér under Traffic Management > SSL > Certificates, at det nye certifikat er uploadet, og at den valgte SSL vServer eller VPN-binding bruger det. Hvis tjenesten er offentlig, så kør hostnavnet gennem FairSSLs SSL-scanner.
Fejlfinding
Scriptet kan ikke nå NetScalers management-interface
Windows-serveren skal kunne nå NetScalers managementadresse på TCP/443 (eller TCP/80, hvis du har sat -UseHttp, hvilket ikke er anbefalet). Tjek firewall-regler, at managementadressen er tilgængelig over HTTPS, og at den anvendte konto kan logge på NITRO API.
NITRO returnerer 401 Unauthorized
Den NITRO-bruger, der er gemt i Credential Manager, har ikke nok rettigheder. NetScaler-brugeren skal kunne læse versionen og eksisterende cert-key, uploade systemfiler, oprette og opdatere SSL cert-key eller SSL cert-key bundle, binde certifikater til SSL vServer eller global VPN, og gemme konfigurationen. Tildel brugeren en command-policy, der dækker disse NITRO-operationer.
Certifikatet uploades, men bindes ikke
Tjek at -vServerName matcher det eksakte navn på SSL vServeren. Husk -SniCert, hvis du bruger SNI. Til global VPN-binding bruges -BindGlobalVpn i stedet for -vServerName.
Ofte stillede spørgsmål
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
Auto-tilstand, der spørger enheden om versionen og vælger SSL cert-key bundle, når ADC-versionen understøtter det, og der ikke allerede findes en klassisk cert-key med samme navn. Ældre enheder og global VPN-binding bruger klassisk SSL cert-key, fordi bundles kun kan bindes til SSL vServere. Brug -DeploymentMode Classic, hvis du vil tvinge den ældre metode.-ValidateManagementCertificate i parametrene, hvis NetScalers managementcertifikat er betroet af Windows-serveren, og du vil håndhæve fuld TLS-validering.-vServerName "VS1,VS2,VS3" i scriptets parametre. Scriptet binder det samme certifikat til alle anførte vServere og gemmer konfigurationen til slut.-vServerName og tilføj -BindGlobalVpn. Global VPN-binding bruger altid klassisk SSL cert-key (ikke bundles), så scriptet vælger automatisk det rigtige format.Klar til at automatisere NetScaler-certifikater?
Opret en gratis konto og udsted dit første certifikat på under 10 minutter.