Howto: Gratis SSL certificaat van Let’s Encrypt instellen voor Umbraco

Google en een aantal andere grote partijen gaan voor een volledig versleuteld internet, zodat de privacy en veiligheid van de internetgebruiker zoveel mogelijk gewaarborgd wordt. Je website versleutelen doe je door middel van een SSL certificaat.

SSL certificaat van Let's Encrypt

Je krijgt dan een ‘slotje’ met het predicaat veilig (in Chrome) te zien in je browserbalk. Meer over waarom je zou moeten overstappen op https lees je in een eerder blog. In dit artikel lees je hoe je een gratis SSL certificaat van Let’s Encrypt kunt aanvragen en instellen voor Umbraco.

Let’s Encrypt SSL

Let's encrypt  is een initatief van de Internet Security Research Group (ISRG), dat gesteund wordt door grote partijen als Mozilla, Cisco en de Amerikaanse burgerrechtenbeweging EFF. De service maakt het mogelijk om gratis SSL certificaten aan te maken. De certificaten zijn maximaal 90 dagen geldig, waarna ze hernieuwd moeten worden. Die relatief korte duur heeft 2 redenen: de organisatie stimuleert daarmee de automatisering van SSL certificaten en er kan daardoor snel ingespeeld worden op veranderingen. Vooral relevant omdat laatste tijd verschillende Certificaatautoriteiten slecht in het nieuws zijn geweest zoals WoSign en het Nederlandse Diginotar.

In de korte tijd dat Let’s Encrypt bestaat zijn er al meer dan 24 miljoen certificaten uitgegeven en de verwachting is dat dit aantal flink zal stijgen in het komende jaar. Binnenkort dus ook jouw Umbraco website? Hieronder lees je hoe je dat doet.

Letsencrypt-win-simple

Om gebruik te kunnen maken van Let’s Encrypt heb je een tool nodig op je webserver. Voor Linux is er de officieel ondersteunde tool van Let’s Encrypt, certbot (https://certbot.eff.org/). Voor Windows zijn verschillende third party tools beschikbaar (zie : https://letsencrypt.org/docs/client-options/). In dit voorbeeld wordt gebruik gemaakt van de eenvoudig te installeren letsencrypt-win-simple tool.

Configureer je Umbraco website op de volgende manier :

  1. Download letsencrypt-win-simple en pak de bestanden uit in c:\encrypt-win-simple\ op je webserver.
  2. Open Webconfig en voeg de map .well-known toe aan umbracoReservedPaths.
    <add key="umbracoReservedPaths" value="~/umbraco,~/install/,~/.well-known/" />
  3. Start PowerShell als Administrator en start de tool :
    C:\encrypt-win-simple>letsencrypt.exe
  4. Selecteer uit de lijst het domein waarvoor je een SSL certificaat wil genereren.
  5. Tot slot is er de vraag onder welk gebruikersaccount je taak wil uitvoeren die de certificaten automatisch elke 3 maanden vernieuwd. Je kunt hier een specifiek account voor aanmaken, of  het standaard Administrator account voor gebruiken door voor 'N' te kiezen.

Hoe werkt de tool

Let's Encrypt werkt op basis van het ACME protocol. Het ACME protocol gebruikt een DNS entry, of een statische webpagina op het betreffende domein om te controleren of je de eigenaar bent van dat domein. Het hier gegeven configuratie voorbeeld werkt met een statische pagina, en werkt als volgt :

  1. De tool start een aanvraag voor het SSL certificaat.
  2. De server geeft aan dat er een specifiek bestand moet worden aangemaakt ter verificatie.
  3. De tool maakt dit specifieke bestand aan, welke te vinden is in de .wel-know folder.
  4. Bestand wordt gecontroleerd en SSL certificaat wordt uitgegeven. 

Http naar https redirect in IIS

Je certificaat is nu klaar voor gebruik en letsencrypt-win-simple zorgt ervoor dat het elke 90 dagen automatisch vernieuwd wordt. Maar daarmee ben je er nog niet. Want er moet nog een redirect ingesteld worden zodat alle bezoekers van een website altijd gebruik maken van de beveiligde verbinding. Dat doe je in IIS.

Download 'url rewrite' en voeg vervolgens de volgende code toe aan de web.config:

<system.webServer> 

<rewrite> 

<rules> 

<rule name="Redirect to HTTPS" stopProcessing="true"> 

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

<conditions> 

<add input="{HTTPS}" pattern="^OFF$" /> 

</conditions> 

<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 

</rule> 

</rules> 

</rewrite> 

</system.webServer>

Open je browser en bezoek je website. Als je alle stappen goed hebt doorlopen, zie je nu het groene slotje verschijnen in de adresbalk. Je Umbraco website is versleuteld!

Evaluatie

Er zijn voor- en nadelen aan het gebruik van Let’s Encrypt en de tool letsencrypt-win-simple. Hieronder onze ervaring.

Voordelen:

+ Gratis en goed alternatief voor betaalde ‘Domain Validated’ certificaten
+ Eenvoudig te implementeren
+ Eenvoudig uit te voeren met de tool

Nadelen: 

- De letsencrypt-win-simple tool is laatste maanden niet bijgewerkt. Het is mogelijk dat wanneer Let's Encrypt wijzigingen aanbrengt in de aanvraagprocedure, de tool niet (goed) meer werkt. 

- De Let’s Encrypt certificaten zijn nog geen alternatief voor de Organization Validated en Extended Validated certificaten.