Free SSL for all met LetsEncrypt

Geplaatst op: 9-02-2016

Als IT Pro heb je wel eens een SSL certificaat nodig. Bijvoorbeeld om een secure API te testen, voor Exchange Web Services of om een management portal van een vertrouwd certificaat te voorzien. De aanvraag van een SSL certificaat is nogal arbeidsintensief en gaat vaak gepaard met het nodige configuratieleed.

Welnu, er is goed nieuws: met LetsEncrypt is het mogelijk om in nog geen 2 minuten een SSL certificaat te genereren en op een webservice of website te plaatsen. All hail the LetsEncrypt Certificate Authority!

Of toch niet? Kan er niet gemakkelijk misbruik van worden gemaakt?

In dit artikel zal ik kort ingaan hoe je een LetsEncrypt certificaat kunt aanvragen, hoe het werkt en wat de voor- en nadelen zijn.

Aanvragen

SSL certificaten aanvragen was voorheen een crime. Je ging naar GoDaddy of Comodo en kon als je mazzel had een 90 dagen proefversie aanvragen. Vervolgens een certificate request kopieren en plakken en wachten tot je je keypair gemaild kreeg. Daarna weer kopieren en plakken en paden opgeven in je webserver. En als het certificaat verliep dan was meteen je webservice stuk.

Met LetsEncrypt is dit aanvraagproces een stuk gemakkelijker geworden.

Linux

Op een Debian-based systeem installeer je LetsEncrypt als volgt:

  1. sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
  2. cd /opt/letsencrypt
  3. ./letsencrypt-auto certonly --standalone

Het laatste commando start de installatie wizard op voor het genereren van certificaten voor bijvoorbeeld een Nginx webserver. Vervolgens krijg je de volgende schermen:

En voor de domeinnamen:

Vervolgens worden er 4 certificaten gegenereerd:

  • cert.pem: het domeincerticaat
  • chain.pem: het Let’s Encrypt chain certificate
  • fullchain.pem: cert.pem en chain.pem gecombineerd
  • privkey.pem: de private ke

Het is even zoeken naar de locatie maar ik kon ze terugvinden in /etc/letsencrypt/archive.

Daarna is het een kwestie van de webserver of applicatie van deze certificaten te voorzien en je bent in business.

Mac OS X

De El Capitan gebruikers moeten voorlopig de debug flag niet vergeten (LetsEncrypt is nog in beta!):

  1. ./letsencrypt-auto certonly -a manual --rsa-key-size 4096 -d yourdomain.com -d www.yourdomain.com --debug

Windows

Vanzelfsprekend werkt het ook onder Windows. Er is inmiddels een Powershell module en GUI. Dit heb ik echter nog niet getest.

Hoe werkt het

In het kort: Letsencrypt maakt gebruik van het ACME protocol waarmee het mogelijk is om zonder menselijke interventie een door de browser vertrouwd certificaat te verkrijgen. De communicatie verloopt via een client (deze hebben we in de vorige paragraaf geinstalleerd) en de LetsEncrypt Certificate Authority (die we ook al uitgebreid hebben geprezen). De communicatie verloopt over https en de berichten die uitgewisseld worden hebben het JSON formaat.

Het LetsEncrypt root certificaat is cross-signed door Identrust (“DST Root CA X3” Root CA). Deze wordt gesupport door de meeste browsers. Zie hier voor meer informatie.

Voordelen

Met LetsEncrypt wordt SSL een stuk toegankelijker. Bovendien wordt LetsEncrypt gesteund door grote namen: Mozilla, Cisco en Facebook. Microsoft Azure heeft LetsEncrypt omarmd en opgenomen in hun PaaS aanbod. Vendors van appliances zoals Synology en kunnen hun appliances nu ook beveiligen met een vertrouwd certificaat.

Het belangrijkste voordeel echter is dat LetsEncrypt de motor kan zijn achter het versleutelen van alle internetsites. Dat is ook hun missie: iedereen met een website moet in staat zijn om zijn site te versleutelen tegen zero kosten. Elke TCP/IP transactie moet laagdrempelig kunnen worden beveiligd. Bovendien wordt iedere certificaat uitgifte publiekelijk vastgelegd. Encryption for the people, by the people.

Nadelen

De eerste meldingen van misbruik zijn ook al binnen. Bij diverse Malvertising campaigns wordt gebruik gemaakt van een LetsEncrypt certificaat. En ook Bitcoingebruikers moeten opletten.

Conclusie

Betekent dit dat we LetsEncrypt dan maar links moeten laten liggen? Ik zou zeggen van niet. Met SSL wordt de data versleuteld, maar het zegt niets over de identiteit van de aanbieder van de website. CA’s die dat wel denken gaan hun boekje te buiten: iedereen met een eigen domein en een e-mailadres kan een certificaat aanvragen.

De echte protectie zal moeten komen van andere bronnen zoals DNS blacklisting en door gebruik te maken van Google Safe Browsing API. En Google weet toch al lang wat je zoekgedrag is. Een antwoord op de vraag hoe je malware, malvertising en scams kunt voorkomen kan ik je dus niet geven.
Maar dat was ook niet het onderwerp van deze blog.

Ik heb wel een tip: wees altijd voorzichtig op de Internets.
En versleutel je sites met LetsEncrypt.

Nieuwsbrief Aanmelden

Meld je aan voor onze nieuwsbrief en blijf op de hoogte van de laatste trends en events.