Certificaten verlopen wel eens (elk jaar, meestal) wat tot gevolg heeft dat je soms een nieuwe moet aanvragen en moet installeren. Vaak geen probleem, maar ik kwam nu toch wel weer een issue tegen.

Je zou met de managementconsole van Microsoft Dynamics 365 Business Solutions the thumbprint gewoon moeten kunnen vervangen. Helaas lukte dat nu niet in een keer. Wat je moet doen is het volgende:

Als er een service is die gebruik maakt van het certificaat voor webservices, of alle services draaien op verschillende poorten, dan kun je dit doen:

Verwijder de oude thumbprint, zet SSL uit voor SOAP en Odata, en klik op save. Voer nu de nieuwe thumbprint in, en zet SSL aan voor SOAP en ODATA. Na het opslaan kun je de service herstarten

Als er meerdere services zijn die gebruik maken van het certificaat voor webservices en ze gebruiken dezelfde poort, dan moet je iets meer doen:

Stop alle services die gebruik maken van het certificaat voor webservices
Verwijder de thumbprint.
Zet bij alle services bij SOAP services en Odata Services "SSL enabled" uit.
Zet bij alle services "Enable Soap services" en "Enable Odata services" uit. Klik op Save

Voer nu de nieuwe thumbprint in

Zet bij alle services bij SOAP en Odata SSL Enabled aan. Klik op Save
Zet bij alle services "Enable Soap services" en "Enable Odata services" uit. Klik op Save

Nu kun je de services starten, en wordt het nieuwe certificaat gebruikt.

 

Als je SSL aan zet, en voor het serviceaccount wordt het Local System account gebruikt, dan krijg je een foutmelding dat het commando "http add urlacl url=https://+:7148/dynamicsnav100 user=NT authority\system" is mislukt, met een error 87. Dat klopt. Je moet dan een cmd prompt starten (als admin) en het volgende commando's uitvoeren:

netsh http add urlacl url=https://+:7148/dynamicsnav100 user="NT authority\system"
netsh http add urlacl url=https://+:7147/dynamicsnav100 user="NT authority\system"

Dit hoef je dan niet meer te doen voor de overige services. Vervang de poorten 7147 en 7148 voor de poorten die je zelf gebruikt voor de services.

 

 

Een andere mogelijk is om netsh te gebruiken:

In de management console vervang je de thumbprint van het oude certificaat voor de nieuwe thumbprint.

Stop de service, en start een elevated cmdprompt.

Tik dan het volgende in:

netsh.exe http delete sslcert ipport=0.0.0.0:7147
netsh.exe http delete sslcert ipport=0.0.0.0:7148

netsh.exe http add sslcert ipport=0.0.0.0:7147 certhash=<thumbprint> appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"
netsh.exe http add sslcert ipport=0.0.0.0:7148 certhash=<thumbprint> appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"

Daarna kun je de service weer starten.