Maak gratis SSL-certificaten via StartSSL (Outdated)

In een wereld waar de NSA elke verbinding kan afluisteren zonder dat iemand het door heeft, is beveiliging steeds belangrijker. Beveiliging heeft echter ook steeds meer en meer een prijs. Een voorbeeld hiervan is Secured Socket Layer. SSL-certificaten zijn, afhankelijk van de uitgever, duur tot zeer duur. Gelukkig is het gat in de markt voor gratis certifcaten reeds opgevuld door StartSSL. In deze tutorial zal u stap-voor-stap uitleggen hoe je, via StartSSL, een SSL-enabled server kan bekomen.

UPDATE: Naar aanleiding van een onderzoek door Mozilla zijn certificaten van StartCom (en dus ook StartSSL) niet meer vertrouwd door de grootste browsers. Voor gratis certificaten raad ik bijgevolg aan om naar Let’s Encrypt over te stappen.

Wat is SSL?

Om te beginnen met een SSL-enabled server op te zetten moet je op z’n minst weten wat SSL eigenlijk is. SSL staat voor Secured Socket Layer en is een tussenstap tussen het ontvangen van de data en het weergeven. De ontvangen data is beveiligd via een publiek/privaat sleutelpaar. De private sleutel word overeenkomen op basis de publieke sleutel. Het aanvaarden een private sleutel word gedaan op basis een certificaat dat bewijst dat die server die specieke publieke sleutel in handen heeft.

Starten met SSL

In deze tutorial ga ik uit van een reeds werkende webserver zonder SSL op basis van Apache 2.4. De gebruikte directives in Apache 2.4 zijn dezelfde voor Apache 2.2. via deze pagina kan je certificaat ook installeren in nginX

Stap 1: Aanmaken StartSSL-account

Om te beginnen maak je een account aan op StartSSL.com. Op de startpagina klik je op Control Panel. Je komt nu op een pagina met 3 icoontjes: Authenticate, Sign-Up en Express-Lane. Sign-Up en Express-Lane zijn eigenlijk hetzelfde. Het enige verschil is dat de Express Lane normaal sneller gaat. Ikzelf heb echter het gevoel dat het even snel gaat.

We klikken op Sign-Up (of Express Lane) en na het bevestigen van ons e-mailadres word onze account geverifieerd. Dit duurt normaal ongeveer een half uurtje. Hier word door een fysiek persoon gekeken of we niet op een zwarte lijst, of we niet bekend zijn bij spammers, …

Nadat we volledig onderzocht zijn maken we een Private Key aan. Persoonlijk kies ik voor een hogegraads aangezien die veiliger is. Nadat we op install hebben geklikt word het certificaat effectief geïnstalleerd in uw browser. PRO TIP: maak een backup van dit certificaat en bewaar dit op een veilige plaats.

Stap 2: Valideren van uw domein

Nadat uw account is aangemaakt, moet je bevestigen dat je eigenaar (of beheerder) bent van het domein dat je wilt beveiligen. Dit kun je doen via de validations wizard. Je kiest voor domain-name validation en via een gereserveerd e-mailadres (postmaster, hostmaster, webmaster of email van DNS-records)  bevestig je dat je eigenaar bent.

Stap 3: Aanmaken Certificaat

Nadat je uw domein hebt gevalideerd kun je uw certificaat aanmaken. Dit doe heel eenvoudig via een wizard op StartSSL. Je gaat naar de Certificates Wizard en geeft een wachtwoord in. Dit wachtwoord mag voor alle domeinen hetzelfde zijn aangezien je na stap 2 niet meer nodig hebt. Nadat alles is ingevuld krijg je uw private key. Deze is echter beveiligd met het wachtwoord dat je hebt opgeven. Je kopieert de private key naar uw server en met onderstaand commando decrypteer je de sleutel.

openssl rsa -in [private key] -out [private key]

Nadien kies je uw domein en geef je uw subdomein op (vb. www). Daarna krijg je uw certificaat en kun je het installeren op uw server.

Stap 4: Installeren van het certificaat

Om het certificaat te installeren open je ten eerste de configuratie van uw webserver. Je kopieert uw certificaat en onbeveiligde private key naar de juiste map (/etc/pki/tls/certs en /etc/pki/tls/private). Daarnaast kopieer je ook volgende sleutel van StartSSL zelf. Indien je deze niet meegeeft krijgt de gebruiker foutmeldingen over het certificaat. In Apache definieer je een VirtualHost op poort 443

<Virtualhost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/secure
</VirtualHost>

Daarbij geef je volgende directives mee.

SSLEngine On
SSLCertificateFile /etc/pki/certs/www.example.com.crt
SSLCertificateKeyFile /etc/pki/certs/www.example.com.key
SSLCertificateChainFile /etc/pki/certs/startssl.pem

Hierbij nog eens een volledige configuratie van Apache.

Apache:

<Virtualhost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/secure
SSLEngine On
SSLCertificateFile /etc/pki/certs/www.example.com.crt
SSLCertificateKeyFile /etc/pki/certs/www.example.com.key
SSLCertificateChainFile /etc/pki/certs/startssl.pem
</VirtualHost>

 Conclusie

Het bewijs is geleverd, om een SSL-enabled server te bekomen heb je geen zwembad met geld nodig. Via StartSSL kun je met gemak gratis een SSL-certificaat bekomen dat een jaar lang geldig is. Uiteraard moet je oppassen dat je uw certificaat niet uit het oog verliest, want een jaar is snel gepasseerd. Ook opletten voor heartbleed en andere kwetsbaarheden in OpenSSL of uw webserver.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.