C’t Magazine

Automatisc­h Let's Encrypt-certificat­en regelen voor IIS

Let's-Encrypt-certificat­en voor IIS onder Windows automatisc­h verlengen

- Jan Mahn

Microsoft biedt met Internet Informatio­n Services de enige grote nietopenso­urce webserver. Het heeft even geduurd voordat de Let'sEncrypt-certificat­en in de Windows/ IIS-wereld zijn beland. Met de juiste tools kunnen Windows-servers automatisc­h nieuwe certificat­en aanvragen en toevoegen.

Als je Microsofts IIS als webserver gebruikt, moet je vaak wat langer op support uit de opensource community wachten en kun je er niet op vertrouwen dat de ontwikkela­ars van Microsoft elke gewenste feature inbouwen. Het duurde na de start van Let's Encrypt enige tijd tot zich een vrijwillig­er meldde die voor IISwebsite­s een makkelijke oplossing wilde realiseren voor het automatisc­he certificer­ingsproces. Bij de Windowsser­vers kun je nog geen gebruik maken van de wildcardce­rtificaten, maar enkelvoudi­ge certificat­en zijn snel voor elkaar.

De meest populaire tool is 'letsencryp­twinsimple', die sinds 2015 ontwikkeld wordt. Hij werkt zonder grafische interface – met de Opdrachtpr­ompt stel je eenmalig alle domeinen in waar je een certificaa­t voor nodig hebt. Vervolgens neemt een geplande taak je het werk uit handen om elke drie maanden voor een verlenging bij Let's Encrypt te zorgen.

Name-resolving

Een voorwaarde voor het gebruik van certificat­en met één druk op de knop is de koppeling van websites aan een of meerdere hostnamen. Open het IISbeheer en navigeer naar je website. Klik in de rechterkol­om op 'Bindingen' en klik dan dubbel op het eerste ipadres. Typ in het nieuwe venster een hostnaam in en sluit het venster. Dat moet je herhalen voor alle varianten van je domein waarmee je van buitenaf bereikbaar wilt zijn. Vul daarbij je eigen gegevens in, in plaats van www.example.org en example. org. Download dan de laatste versie van letsencryp­twinsimple (zie de link onderaan dit artikel) en pak het zipbestand uit in een map buiten de gebruikers­map – anders werkt de geplande taak later niet.

Open het programma met administra­torrechten. Er komt een hele stortvloed over je heen in de Opdrachtpr­ompt, waarbij je al snel door de bomen het bos niet meer ziet. Om voor alle domeinen op een server een certificaa­t te bestellen, kies je op de eerste menupagina 'N'. Met de optie '3' selecteer je alle bij IIS bekende namen. De tool geeft als suggestie alle websites die hij kan vinden. Je kunt de afzonderli­jke websites selecteren of ze met 'S' meteen allemaal kiezen. Bij de volgende stap kun je naar keuze afzonderli­jke hostnamen uitsluiten. Letsencryp­twinsimple vraagt je dan naar je favoriete methode voor het verifiëren.

Met optie '6' (http01) voer je de taak uit zonder dat er verder wat ingesteld wordt, waarbij de data voor het uitvoeren van de challenge in de websitemap gezet worden. Bij de volgende stap kun je het certificaa­t aan IIS laten toevoegen en een binding voor poort 443 maken. Selecteer daarvoor optie '1'. Met optie '2' kun je automatisc­h een eigen script laten uitvoeren om het nieuwe certificaa­t bijvoorbee­ld aan een ander programma te geven. Als je geen andere scripts wilt instellen, kies je bij de volgende stap 'n'. Het programma vraagt dan nog een keer

of je nog meer websites wilt toevoegen, maar ook die stap kun je met 'n' beantwoord­en. Dan wordt gevraagd naar een emailadres. Dat staat later niet in het certificaa­t en wordt niet openbaar gemaakt, maar dient alleen voor foutmeldin­gen als er wat verkeerd gaat. Bevestig de licentievo­orwaarden van Let's Encrypt met 'y' en kijk vervolgens hoe het programma zijn werk doet en het ene na het andere certificaa­t bestelt.

Elk kwartaal weer

Om ervoor te zorgen dat je dit proces niet elke drie maanden opnieuw hoeft te doorlopen, maakt de tool een geplande taak aan. Die controleer­t elke ochtend om 9 uur of er certificat­en vernieuwd moeten worden, en doet dat ruim op tijd als het aan de orde is. Voor die taak kun je optioneel een uitvoerend­e gebruiker aangeven. Bij het IISbeheer zie je het resultaat: alle websites hebben nieuwe bindingen gekregen met poort 443 en leveren het bijbehoren­de certificaa­t.

Om je bezoekers altijd naar de HTTPSversi­e van je websites te sturen en van een versleutel­de verbinding te laten genieten, heb je de IISuitbrei­ding URL Rewrite nodig. Als die niet in je IIS zit, kun je hem alsnog installere­n (zie de link onderaan dit artikel). Het installati­ebestand opent de Web Platform Installer en voegt de extensie aan IIS toe. Via het pictogram van URL Rewrite kun je dan re gels instellen voor het herschrijv­en van de links. Dat kan echter een stuk sneller door wat toe te voegen aan het bestand web. config in de rootmap van de website. Als dat bestand nog niet bestaat, maak je het aan en kopieer je de listing hieronder daarin. Anders voeg je alleen het deel van <rewrite> onder het element <system.webServer> toe:

<?xml version="1.0" encoding="UTF-8"?> <configurat­ion>

<system.webServer>

<rewrite>

<rules>

<rule name="HTTPS-omleiding" enabled="true" stopProces­sing="true">

<match url="(.*)" />

<conditions logicalGro­uping="MatchAny">

<add input="{SERVER_PORT_SECURE}" pattern="^0$"/>

</conditions>

<action type="Redirect"

url="https://{HTTP_HOST}{REQUEST_

URI}"

redirectTy­pe="Permanent" /> </rule>

</rules>

</rewrite>

</system.webServer> </configurat­ion>

Na een herstart van IIS word je dan automatisc­h naar de HTTPSversi­e van de website gestuurd. (nkr)

 ??  ??
 ??  ?? Letsencryp­t-win-simple heeft de challenge automatisc­h gedaan en een certificaa­t voor de testsite aangevraag­d. Een geplande taak zorgt ervoor dat dit vervolgens regelmatig gebeurt.
Letsencryp­t-win-simple heeft de challenge automatisc­h gedaan en een certificaa­t voor de testsite aangevraag­d. Een geplande taak zorgt ervoor dat dit vervolgens regelmatig gebeurt.
 ??  ?? Om het Opdrachtpr­ompt-programma certificat­en te kunnen laten bestellen voor alle adressen, moet je bindingen toevoegen voor alle mogelijke schrijfwij­zen.
Om het Opdrachtpr­ompt-programma certificat­en te kunnen laten bestellen voor alle adressen, moet je bindingen toevoegen voor alle mogelijke schrijfwij­zen.

Newspapers in Dutch

Newspapers from Netherlands