Winkelwagen

/ VPS-Infrastructuur

Alles over de zelfontwikkelde VPS-infrastructuur

Register now

/ Up to date

/ Nieuws

Lancering PerformanceVPS

Meer info
Hulp nodig?

    Sorry, we konden geen resultaten vinden voor jouw zoekopdracht.

    Een SSL-certificaat in Apache installeren

    Beveiliging van communicatie en data is steeds meer van belang. Je wilt immers niet dat de communicatie tussen bezoekers en jouw website(s) door kwaadwillenden ingezien kan worden. Daarom is het uitermate belangrijk om gevoelige informatie zoals klantgegevens en betalingsgegevens via 'https'-verkeer te versleutelen. Om dit te doen zul je een SSL-certificaat moeten installeren op jouw VPS.

    Deze handleiding behandelt de volgende onderdelen:

    Voer de stappen in dit artikel uit als root-user, of gebruiker met sudo-rechten, tenzij anders aangegeven.

    Benodigdheden:

    • Een Sectigo (voorheen Comodo) SSL-certificaat (tenzij je Let's Encrypt gebruikt). Heb je nog geen Sectigo SSL-certificaat? Neem dan een kijkje in ons artikel 'Een Sectigo SSL-certificaat aanvragen'. 
    • Het is van groot belang dat je de (juiste) passphrase voor het Sectigo SSL-certificaat hebt bewaard, want zonder kun je de 'private key' niet ontsleutelen.
      Mocht je de passphrase niet (meer) bezitten, dan zul je eerst een heruitgifte moeten aanvragen van jouw certificaat. Hoe je dit doet, lees je in het artikel 'Een Sectigo SSL-certificaat installeren'. Scrol hier naar 'Ik ben mijn passphrase kwijtgeraakt' om te lezen hoe je de passphrase opnieuw bemachtigd. 
    • Een werkende installatie van Apache (en een FTP-server zoals vsFTPd of ProFTPd). 
    • Om van SNI gebruik te maken, waardoor je meerdere SSL-certificaten op 1 IP kunt installeren, zul je minimaal van Apache v2.2.12 and OpenSSL v0.9.8j gebruik moeten maken. 
    • Deze handleiding gaat er vanuit dat je reeds een werkende website hebt geüpload die via http bereikbaar is. 
    • Deze website moet een correcte VHOST hebben waarin de 'ServerName' ook naar je domein verwijst (Let's Encrypt heeft dat nodig). 
    • Mocht je van een CAA-record gebruik maken in jouw DNS-instellingen, zorg er dan voor dat je "comodo.com" (voor Sectigo SSL-certificaten) of "letsencrypt.org" wel in een dergelijk record hebt opgenomen.

    Het Sectigo SSL-certificaat downloaden

    Mocht je dit al gedaan hebben en / of een extern SSL-certificaat willen gebruiken, dan kun je direct door naar het SSL-certificaat installeren. De volgende stappen voer je uit op het controlepaneel:

    Stap 1

    Ga in het controlepaneel naar 'Domein & Hosting' en klik op de domeinnaam (niet selecteren) welke het SSL-certificaat heeft.


    Stap 2

    Scrol aan de rechterkant naar het kopje 'SSL-certificaten' en klik op beheren achter de naam van het SSL-certificaat.
    ssl select certificate


    Stap 3

    In het overzicht klik je nu op 'Downloaden'.

    SSL download certificate


    Stap 4

    Voer nu de passphrase in van jouw SSL-certificaat en klik op 'Ontsleutelen'.

    ssl certificaat downloaden en ontsleutelen

    Wanneer je voor 'Versleuteld downloaden' kiest, dan is de private key nog versleuteld. Deze kun je eventueel zelf via 'OpenSSL' ontsleutelen. Eventueel vind je hier een handleiding over het ontsleutelen van een private key via OpenSSL.


    Stap 5

    Open het zip-bestand dat je zojuist hebt gedownload. Hier zie je een viertal bestanden in terug:

    inhoud zip file ssl bestanden

    • cabundle.crt (de root- en intermediate certificaten)
    • certificate.crt (het SSL-certificaat zelf)
    • certificate.key (de private key van het certificaat)
    • certificate.p7b (het SSL-certificaat in PKCS#7-formaat, deze heb je in de meeste gevallen niet nodig)

    Stap 6

    De eerste drie bestanden heb je nodig voor de installatie van het SSL-certificaat, dus je pakt nu deze bestanden uit in een map naar keuze (zolang je deze uiteraard maar onthoud). De meeste besturingssystemen kunnen standaard een .zip-bestand al uitpakken, maar uiteraard kun je ook een los programma zoals 7zip, Winrar of Winzip gebruiken.


    Het Sectigo SSL-certificaat installeren in Apache

    Allereerst is het van belang dat je de bestanden uit de download van het SSL-certificaat, upload naar de VPS. Als je de handleiding volgt doe je dit via FTP, maar je kunt uiteraard ook via SCP of een andere methode de SSL-certificaten op de server plaatsen.

    Stap 1

    Maak een folder voor de SSL-certificaten aan in de /home directory in jouw OS. Een alternatieve locatie kan /etc/apache2/ssl/ zijn. Standaard is er wel een map voor het opslaan van SSL-certificaten (Debian / Ubuntu: /etc/ssl/certs | CentOS: /etc/pki/tls/certs), maar hier is de root de eigenaar van. Je zult dan ook niet zomaar via een willekeurige FTP-user hier certificaten naartoe kunnen uploaden.

    Het uploaden van het SSL-certificaat via FTP
     


    Stap 2

    Upload de drie relevante bestanden naar de map voor de SSL-certificaten. Het gaat om certificate.key, certificate.crt en cabundle.crt.


    Stap 3

    Nu pas je de 'virtuele host' aan voor je domein, om er voor te zorgen dat deze ook via poort 443 (https) bereikbaar is en zodat je aan kunt geven waar het SSL-certificaat te vinden is op de server. Standaard zul je de VHOST vinden in /etc/apache2/sites-available/jouwwebsite.nl (vervang 'jouwwebsite.nl' met je eigen domein). Staat jouw domein hier nog niet tussen, voer dan het volgende commando uit:

    a2ensite jedomein.nl

    Een overzicht van actieve VHOSTS


    Stap 4

    Open het .conf-bestand voor jouw domein met je favoriete teksteditor zoals vim of nano:

    nano jedomein.nl.conf

    Stap 5

    Je ziet nu de (http-)configuratie van de virtuele host voor jouw domein. Dit staat weergegeven tussen de <VirtualHost *:80> en </VirtualHost>-tags. Hier staan een aantal configuratie-parameters in, maar bestaan voornamelijk uit commentaar dan wel toelichting over de opties. Voeg onder de afsluitende </Virtualhost>-tag een nieuwe VHOST toe voor https, zoals onderstaand voorbeeld:

    <virtualhost *:443>
    DocumentRoot /var/www/html
    SSLEngine on
    SSLCertificateFile /home/transip/ssl-certs/jedomein.nl/certificate.crt
    SSLCertificateKeyFile /home/transip/ssl-certs/jedomein.nl/certificate.key
    SSLCertificateChainFile /home/transip/ssl-certs/jedomein.nl/cabundle.crt
    </virtualhost>
    • <virtualhost *:443>: Dit geeft aan dat de virtuele host geldt voor alle binnenkomende connecties (door de wildcard *) op poort 443. Mocht je het domein alleen via een specifiek IP bereikbaar willen maken, dan maak je hier <IPADRES>*443 van.
    • DocumentRoot: Dit is de locatie op de server waar de bestanden van jouw website staan. In het voorbeeld is dit /var/www/html, maar dit kan verschillen met jouw situatie.
    • SSLEngine on: Hiermee schakel je SSL in voor je domein.
    • SSLCertificateFile: Dit is de locatie op de server waar het SSL-certificaat terug te vinden is. Deze heb je in stap 2 gekozen en voer dus deze locatie in achter deze optie.
    • SSLCertificateKeyFile: Dit is de locatie op de server waar de private key van het SSL-certificaat terug te vinden is. Deze heb je in stap 2 gekozen en voer dus deze locatie in achter deze optie.
    • SSLCertificateChainFile: Dit is de locatie op de server waar de 'Certificate Authority'-bundel terug te vinden is. Deze heb je in stap 2 gekozen en voer dus deze locatie in achter deze optie.

    Stap 6

    Sla de wijzigingen op en sluit af (in Nano via CTRL + X , 'Y' en dan Enter).


    Stap 7

    Test of alles correct is geconfigureerd door het volgende commando uit te voeren:

    apachectl configtest

    Krijg je vervolgens een foutmelding met de inhoud "Invalid command 'SSLEngine', perhaps misspelled or defined by a module not included in the server configuration", dan is 'mod_ssl' nog niet ingeschakeld voor Apache. Voer dan het volgende uit:

    a2enmod ssl
    systemctl restart apache2

    Krijg je de melding "Syntax OK" terug, dan is alles goed ingesteld en hoef je enkel Apache te herstarten.

    systemctl restart apache2

    Het SSL-certificaat is nu succesvol geïnstalleerd! Wanneer je nu naar https://jedomein.nl gaat zul je zien dat jouw website volledig via https beveiligd is!

    Een succesvolle test via https
    Als je er voor wilt zorgen dat alle bezoekers standaard naar 'https://jouwwebsite.nl' doorgestuurd worden, dan kun je de virtuele host voor http (dus het virtualhost *:80 stuk) aanpassen naar:

    <VirtualHost *:80>
    ServerName jouwwebsite.nl
    Redirect permanent / https://jouwwebsite.nl/
    </VirtualHost>

    Een Let's Encrypt SSL-certificaat installeren in Apache (Ubuntu)

    Stap 1

    Installeer 'Let's Encrypt' op Ubuntu door het volgende uit te voeren:

    apt -y install certbot python3-certbot-apache

    Stap 2

    Nu maak je een SSL-certificaat aan via het volgende commando (vervang jouwwebsite.nl met jouw eigen domeinnaam):

    certbot --apache

    Stap 3

    Zorg dat er een VHOST geconfigureerd is voor je domein voor je aan deze stap begint.

    Maak nu een SSL-certificaat aan via het volgende commando (vervang jedomein.nl door je eigen domeinnaam):

    certbot --apache

    Stap 4

    Doorloop de aangegeven stappen en herstart Apache:

    systemctl reload apache2

    Tip

    Een Let's Encrypt SSL-certificaat is standaard voor 3 maanden geldig en je zult deze dan ook elke 3 maanden moeten verlengen, maar via een cronjob kun je dit automatisch regelen. Open de 'crontab' van jouw user via sudo crontab -e. Vervolgens voeg je in de crontab het volgende toe:

    0 0 1 * * /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log

    Sla deze wijzigingen en vanaf dat moment zullen elke maand de Let's Encrypt-certificaten vernieuwd worden (een certificaat kan pas echt vernieuwd worden wanneer deze binnen 30 dagen verloopt, maar de cronjob zal er voor zorgen dat dit op tijd gebeurt).


    Een Let's Encrypt SSL-certificaat installeren in Apache (CentOS/AlmaLinux/Rocky Linux)

    Stap 1

    Log in de command line als de root-gebruiker via de console of via een SSH-verbinding.


    Stap 2

    Installeer de EPEL (Extra Packages for Enterprise Linux)-package om extra packages toe te voegen die je nodig hebt voor de installatie van Let's Encrypt:

    dnf -y install epel-release

    Stap 3

    Nu installeer je 'Let's Encrypt' en mod_ssl (mocht die laatste nog niet actief zijn):

    dnf -y install certbot python3-certbot-apache

    Stap 4

    Zorg dat er een VHOST geconfigureerd is voor je domein voor je aan deze stap begint.

    Maak nu een SSL-certificaat aan via het volgende commando (vervang jedomein.nl door je eigen domeinnaam):

    certbot --apache

    Stap 5

    Doorloop de aangegeven stappen en herlaad Apache:

    systemctl reload httpd 

    Tip

    Een Let's Encrypt SSL-certificaat is standaard voor 3 maanden geldig en je zult deze dan ook elke 3 maanden moeten verlengen, maar via een cronjob kun je dit automatisch regelen. Open de 'crontab' van jouw user via crontab -e. Vervolgens voeg je in de crontab het volgende toe:

    0 0 1 * * /usr/bin/letsencrypt renew >> /var/log/letsencrypt-renew.log

    Sla deze wijzigingen en vanaf dat moment zullen elke maand de Let's Encrypt-certificaten vernieuwd worden (een certificaat kan pas echt vernieuwd worden wanneer deze binnen 30 dagen verloopt, maar de cronjob zal er voor zorgen dat dit op tijd gebeurt).


    Mocht je aan de hand van dit artikel nog vragen hebben, aarzel dan niet om onze supportafdeling te benaderen. Je kunt hen bereiken via de knop 'Neem contact op' onderaan deze pagina.

    Kom je er niet uit?

    Ontvang persoonlijke hulp van onze supporters

    Neem contact op