netsh om SSL op HTTP te configureren.

Network Shell (netsh) is een windows commandoregel tool om de status van verschillende netwerkonderdelen van Windows te bekijken en te beheren.

Meestal kan je wat je in netsh kan doen, ook in de verschillende netwerkonderdelen van windows terugvinden. In deze blog gaan het het hebben over de commando’s nodig om een certificaat te verbinden aan een business central webservice poort.

Het is mij reeds een aantal keer voorgekomen, dat de business central admin tool van Business Central 14, ‘de kluts’ kwijt is.
Hiermee bedoel ik dat men de juiste certificaat thumbprint ingeeft in het administration tool. Maar bij het starten lukt of de registratie niet van het certificaat en komt er een netsh foutmelding. Of het lukt wel, maar het lijkt niet geactiveerd.. Wat je kan opvragen met een netsh commando, is niet wat er in het administration tool zichtbaar is.

Onderhuids worden dus netsh commando’s uitgevoerd. En dat lijkt op een of andere manier fout te gaan. De enige manier om dit alles te herstellen, is zelf de juiste netsh commandoregels uitvoeren.

Dus, een basiskennis van het netsh commando kan dan helpen om de problemen op te lossen.

Stap 1: Kijken welke ssl certificaten actief zijn, op welke ipnummers en poorten

netsh http show sslcert

Voor alle commdo’s verderop heb je de certificate thumbprint nodig. Deze kan je krijgen door het certificaat te openen, de details te bekijken en daar het veld thumbprint te kopieren.


Een certificaat forceren
Als er geen certificaat is toegewezen aan een poort kan je dit doen met volgende commando. Hierbij moet je de thumprint gebruiken die je in de vorige stap hebt gevonden. De <bc webservice poort> is het nummer van de TCP ip poort toegewezen aan de soap en of odata service. Gebruik je beide moet je ook 2 regels maken, een voor elke poort.

Is er reeds een ander certificaat toegewezen aan de poort zal dit commando niet lukken. Deze moet je er een verwijderen met het delete commando (zie hieronder)

netsh http add sslcert ipport=0.0.0.0:<bc webservice port> certhash=<thumbprint> appid={00112233-4455-6677-8899-aabbccddeeff} 

Een certificaat verwijderen van een poort
Businesscentral certificaten hebben standaard een toewijzing op 0..0.0.0 wat eigenlijk wil zeggen alle. Daarachter staat er “:<poort>’ . Met het commando hieronder verwijderen je deze toezwijzing:

netsh http delete sslcert 0.0.0.0:<bcport>

Als je de melding krijgt in de eventlog dat er iets mis is met de urlacl, zijn volgende commando’s van belang

netsh http add urlacl url=https://+:<bcport>/<bcinstance>/ user=\Everyone
netsh http delete urlacl  https://+:<bcport>/<bcinstance>/