Achtergrondinformatie voor het correct configureren van SSL-certificaatbestanden.

We krijgen regelmatig vragen over foutmeldingen met betrekking tot SSL-certificaten – meestal dat het certificaat niet wordt vertrouwd.

In de meeste gevallen is de oorzaak dat het certificaatbestand alleen het servercertificaat bevat.

Houd uw certificaat veilig

Wanneer u uw certificaatbestanden ontvangt, krijgt u een publiek certificaatbestand aangeleverd.

Als u zelf een CSR (Certificate Signing Request) heeft gegenereerd, beschikt u al over het private key-bestand; anders levert de certificaatprovider dit ook aan.

De private key begint met:

—–BEGIN PRIVATE KEY—–

en eindigt met:

—–END PRIVATE KEY—–

Dit bestand – en elk ander bestand dat deze private key bevat – mag NOOIT met iemand worden gedeeld of ergens worden geüpload. Het mag UITSLUITEND worden geconfigureerd op de server die ermee wordt beveiligd.

Geen enkele legitieme tool of systeem zal ooit om private key-informatie vragen.

Hoe werkt het?

Wanneer een client een SSL-sessie probeert op te zetten met een server, moet het servercertificaat worden geverifieerd via een zogenaamde chain of trust.

Van de server ontvangt de client:

  • Het publieke certificaat (vaak het Leaf Certificate genoemd)
  • Een bundel met intermediate certificaten

De client doorloopt vervolgens de volgende stappen:

  1. Controleert het Leaf Certificate en ziet dat dit is ondertekend door een hoger gelegen intermediate certificaat
  2. Dat intermediate certificaat is op zijn beurt weer ondertekend door een hogere certificaatautoriteit
  3. Dit proces gaat door totdat een certificaat wordt bereikt dat is ondertekend door een Root Authority

De client controleert vervolgens in zijn interne certificaatopslag of het Root-certificaat aanwezig is. Deze root-certificaten zijn standaard opgeslagen in onder andere Windows, macOS, iOS en Android.

  • Wordt het root-certificaat gevonden? Dan wordt de keten als geldig beschouwd.
  • Vervolgens stuurt de client een kleine hoeveelheid versleutelde data naar de server.
  • Kan de server deze data ontsleutelen? Dan bewijst dit dat de server daadwerkelijk over de bijbehorende private key beschikt en dus eigenaar is van het Leaf-certificaat.

Waarom certificaten als “niet vertrouwd” kunnen verschijnen

Uw server presenteert het Leaf-certificaat, maar clients kennen niet automatisch alle intermediate certificaten. Zonder het intermediate certificaat kan de client de chain of trust niet volledig verifiëren, waardoor de verbinding als “niet vertrouwd” wordt aangemerkt.

Oplossing

De server moet naast het Leaf-certificaat ook de intermediate certificaten presenteren. Dit betekent dat het certificaatbestand dat u op de server installeert niet alleen het Leaf-certificaat mag bevatten, maar ook de benodigde intermediate certificaten.

U moet uw certificaat-PEM-bestand aanpassen met een teksteditor, zodat de uiteindelijke structuur er als volgt uitziet:

—–BEGIN CERTIFICATE—–
[Uw domein-/servercertificaat (Leaf Certificate)]
—–END CERTIFICATE—–
—–BEGIN CERTIFICATE—–
[Intermediate CA Certificate]
—–END CERTIFICATE—–

Afhankelijk van uw certificaatautoriteit kunnen meerdere intermediate certificaten nodig zijn om de keten volledig te maken.

Bestandsrechten op Linux

Controleer na het opslaan op de juiste locatie of de certificaatbestanden de correcte rechten hebben:

sudo chown phonesystem:phonesystem /var/lib/3cxpbx/Bin/nginx/conf/Instance1/*.pem
sudo chmod 640 /var/lib/3cxpbx/Bin/nginx/conf/Instance1/*.pem

Waar vind ik mijn intermediate certificaten?

Uw certificaatprovider levert doorgaans alle benodigde intermediate certificaten mee. In de meeste gevallen kunt u deze direct gebruiken.

Mocht u ze opnieuw moeten genereren, dan zijn er diverse online tools beschikbaar, zoals:
https://whatsmychaincert.com/#generate

Let op: upload nooit uw private key-bestand.

Opmerking over het opnemen van het Root-certificaat

Veel systeembeheerders voegen voor het gemak het Root-certificaat toe aan het einde van het PEM-bestand. Houd hierbij rekening met het volgende:

  • Dit is meestal niet nodig; het root-certificaat is doorgaans al vooraf geïnstalleerd in de certificaatopslag van het besturingssysteem.
  • Als een client het root-certificaat niet in zijn opslag heeft, hoort hij de server niet te vertrouwen – ook niet als de server het root-certificaat meestuurt.
  • Wanneer de server bij elke SSL-handshake het root-certificaat meestuurt, voegt dit 1KB tot 2KB toe aan elke nieuwe verbinding, zonder functioneel voordeel.

Praat mee

Neem deel aan de discussie in ons Forum. Volg ons op X en LinkedIn om op de hoogte te blijven van het laatste nieuws en nieuwe functionaliteiten.