Dynamics NAV / Business Central: automatiseret SSL-certifikat
Microsoft Dynamics NAV og Business Central on-premise har to certifikatpunkter, som skal opdateres
samtidigt: IIS-bindingen til Web Client, og ServicesCertificateThumbprint i hver BC Service
Tier-instans. simple-acme håndterer IIS-delen, og FairSSLs ImportDynamicsNAV.ps1-script
håndterer Service Tier-konfigurationen.
Opsætning
Trin 1: Installer simple-acme
Hent FairSSL-udgaven af simple-acme
(forudkonfigureret med ACME-adresse og fornyelsesindstillinger, og indeholder
ImportDynamicsNAV.ps1 i Scripts-mappen). Udpak til C:\simple-acme på
BC-serveren.
Trin 2: Forbered miljøet
- Hostnavnet matcher det BC-klienterne bruger, og er ikke et wildcard.
- Domænet er konfigureret til FairSSL AutoDNS.
- Planlæg et serviceinterval - scriptet genstarter de BC-instanser, hvor thumbprintet ændrer sig.
- Kør en kommandoprompt som administrator og naviger til
C:\simple-acme. - Find den konto, BC-tjenesten kører som - den skal ind i kommandoen i Trin 3. Står der
NT AUTHORITY\NetworkService, skriver duNETWORK SERVICE; se FAQ'en om--acl-fullcontrolfor de øvrige tilfælde.Get-CimInstance Win32_Service -Filter "Name LIKE 'MicrosoftDynamicsNavServer%'" | Select-Object Name,StartName
Trin 3: Udsted og udrul
Kør kommandoen som administrator. simple-acme udsteder certifikatet via AutoDNS, installerer det i Windows Certificate Store, giver BC-servicekontoen fuld kontrol over den private nøgle, binder certifikatet til IIS, og kører ImportDynamicsNAV-scriptet som opdaterer hver kørende BC-instans.
Skift NETWORK SERVICE ud med den konto, din BC-tjeneste kører under.
Du fandt den i Trin 2. Kører BC som NETWORK SERVICE, lader du den stå.
wacs.exe --verbose --baseuri "https://fairssl.dk/acme" `
--eab-key-identifier DIN_EAB_KID --eab-key DIN_EAB_HMAC --accepttos `
--source manual --host "bc.eksempel.dk" --validation none `
--certificatestore My --acl-fullcontrol "NETWORK SERVICE" `
--installation iis,script --script "Scripts\ImportDynamicsNAV.ps1" `
--scriptparameters "'{CertThumbprint}'" `
--friendlyname "fairssl-acme-bc.eksempel.dk" Trin 4: Verificér IIS-bindingen
Åbn BC Web Client-URL\'en i en browser og bekræft at det nye certifikat vises. Hvis det gamle stadig
serveres, så har IIS-bindingen ikke et host-header, som simple-acme kan matche. Åbn IIS Manager,
gå til BC Web Client-sitet → Bindings → HTTPS → Edit, og vælg det nye certifikat
(friendly name fairssl-acme-<host>). Tilføj samtidig et host-header til bindingen
(fx *:443:bc.eksempel.dk), så fornyelser fremover binder automatisk.
Trin 5: Indstil simple-acme fornyelsesvinduet
Hvis du brugte FairSSL-udgaven af simple-acme, er dette allerede sat. Ellers så ret i
settings.json i simple-acme-mappen ScheduledTask → RenewalDays til
365. Det får simple-acme til at lade ARI styre fornyelsen i stedet for en fast tidsplan.
Avanceret: flere instanser med hvert sit certifikat
Kun hvis du har flere BC-instanser, der bruger forskellige certifikater. Kør Trin 3-kommandoen én gang pr. certifikat/instans-par og udvid scriptparametrene med instansnavnet:
--scriptparameters "'{CertThumbprint}' 'BC-PROD'" Ofte stillede spørgsmål
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
MicrosoftDynamicsNavServer$* og skriver direkte i hver instans' CustomSettings.config, så det kræver hverken NavAdminTool eller BCAdminTool.ServicesCertificateThumbprint peger på det nye certifikat, og genstarter kun de instanser, hvor thumbprintet ændrede sig. Instanser uden ændring forbliver kørende. Adgangen til den private nøgle er ikke scriptets: den kommer fra --acl-fullcontrol i wacs-kommandoen, og simple-acme sætter den ved hver fornyelse.ServicesCertificateThumbprint blev ændret. Hvis du har flere BC-instanser, der bruger samme certifikat, genstartes alle, men kun fordi de alle skal opdateres. Hvis du har en separat opsætning hvor forskellige instanser bruger forskellige certifikater, så se det avancerede afsnit nederst.Get-CimInstance Win32_Service -Filter "Name LIKE 'MicrosoftDynamicsNavServer%'" | Select-Object Name,StartName på BC-serveren og se på StartName. Værdien skal oversættes, for simple-acme genkender kun de to engelske navne network service og administrators direkte; alt andet slår den op i Windows under kontoens lokaliserede navn. Står der NT AUTHORITY\NetworkService, så skriv NETWORK SERVICE og ikke det fulde navn - på dansk Windows hedder kontoen NETVÆRKSTJENESTE, og det fulde engelske navn kan derfor ikke slås op. Står der LocalSystem, så skriv S-1-5-18. Står der en domænekonto eller en gMSA, fx CONTOSO\svc_bc eller CONTOSO\svc_bc$, så skriv den som den står; domænenavne oversættes ikke. En SID virker altid, fx S-1-5-20 for NETWORK SERVICE. Flere konti adskilles med komma. Får kontoen ikke adgang, starter instansen ikke med det nye certifikat.bc.example.com og nav.example.com.*:443: (ingen host-header), så viser browseren stadig det gamle certifikat efter første kørsel. Løsning: åbn IIS Manager, tilføj host-headeret (fx bc.example.com), vælg det nye certifikat manuelt én gang. Fremtidige fornyelser binder automatisk.Klar til at automatisere BC-certifikater?
Opret en gratis konto og bestil dit første certifikat. Et DV-certifikat udstedes på under 2 minutter.