Tags voor dit FAQ item:
Apache SSL SSL Certificaten

In welke mate heeft dit artikel uw vraag beantwoordt?

Score van 0 sterren, gebaseerd op 1 beoordelingen

Apache - SSL certificaat installeren

Laatste bijgewerkt: 12/01/2016

Dit artikel gaat ervan uit dat u uw certificaat ontvangen hebt van de certificaatuitgever en het wenst te installeren op uw Apache webserver. Om te weten hoe een certificaat aan te vragen, kan u het artikel « Hoe een certificaataanvraag met OpenSSL genereren? » raadplegen.

Apache maakt gebruik van twee SSL instellingen om de paden van uw SSL certificaten na te gaan, één voor uw eigen certificaat, en één voor de intermediate en root certificaten van de certificaatuitgever.

Afhankelijk van de Certificate Authority waarbij u uw certificaat bestelde, heeft u ofwel één enkel bestand met alle certificaten ontvangen, ofwel één bestand voor uw eigen certificaat en een bundel met certificaten van de CA, ofwel allemaal gescheiden bestanden. Het tweede scenario is het meest voorkomende, omdat dat een snelle installatie toelaat in Apache.

Als u afzonderlijke bestanden hebt ontvangen van uw CA, gebruik dan het volgende commando om ze samen te voegen in omgekeerde volgorde. Als er slechts één intermediair certificaat is, dient u er uiteraard maar één toe toe voegen.

cat intermediate_2.crt intermediate_1.crt CA_root.crt >> /etc/certs/bundle.crt

De volgorde waarin u de bestanden bijeenvoegt is van belang:

  • Eerst de intermediate certificaten - gewoonlijk is er één, soms twee
  • Dan het root certificaat

Het root certificaat hoeft strikt gezien niet mee opgenomen te worden, aangezien het reeds gekend is door de webbrowsers, maar het kan nuttig zijn om een volledige keten van certificaten op te bouwen.

Als u uw eigen certificaat en een certificatenbundel ontving, bewaar ze dan eenvoudig in de directory waar u uw certificaten en sleutels bewaart, bijvoorbeeld /etc/certs.

Open het SSL virtual hosts bestand van uw Apache server. Afhankelijk van uw distributie kan u dit vinden op één van de onderstaande plekken:

  • /etc/httpd voor Red Hat, CentOs, Fedora and vele andere
  • /etc/apache2 voor Debian, Ubuntu en afgeleiden

Als u twijfelt over de exacte locatie, kan u volgend commando uitvoeren vanuit de /etc directory of één van bovenstaande mappen om een lijst te krijgen van bestaande virtual hosts:

grep -r VirtualHost *

Voeg een nieuw VirtualHost blok toe aan het virtual hosts bestand. Let erop dat u in onderstaand voorbeelde de paden naar de root directory van uw website dient te laten verwijzen, en de SSL parameters naar de directory waar u uw sleutels en certificaten bewaart. Het is mogelijk eenvoudiger om een bestaand VirtualHost blok te kopiëren en aan te passen.

<Virtualhost :443="">
  DocumentRoot                   /home/www/public_html/www.mijndomein.com/public/
  ServerName                     www.mijndomein.com

  SSLEngine on
  SSLCertificateFile             /etc/certs/www.mijndomein.com.crt
  SSLCertificateKeyFile          /etc/certs/www.mijndomein.com.key
  SSLCertificateChainFile        /etc/certs/bundle.crt
</Virtualhost>

Bovenstaande configuratie is een absoluut minimale SSL configuratie, en het is aan te raden uw web server verder te configureren voor meer performantie en meer veiligheid. U kan de Kinamo artikels over Apache performantie en veiligheid hiervoor gebruiken.

Test uw configuratie alvorens de webserver te herstarten, zoniet loopt u de kans dat Apache door een foute configuratie niet wil opstarten en dat andere websites daardoor hinder ondervinden. U test de configuratie met één van volgende commando's:

httpd -t
apachectl configtest
apache2ctl configtest

Herstart Apache om uw nieuwe configuratie toe te passen met één van volgende commando's:

/etc/init.d/httpd restart
service httpd restart
apachectl -k restart

Als uw certificaat niet correct in een browser weergegeven wordt, controleer dan of de webserver de volledige keten van certificaten naar de browser stuurt, met het volgende commando, waarbij u www.kinamo.be vervangt door uw eigen domeinnaam:

openssl s_client -connect www.kinamo.be:443
...
Certificate chain
 0 s:/1.3.6.1.4.1.311.60.2.1.3=BE/businessCategory=Private Organization/serialNumber=0861.077.215/C=BE/ST=Antwerpen/L=antwerpen/O=Kinamo NV/CN=www.kinamo.be
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
 1 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Extended Validation SSL CA - G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Primary Certification Authority

U zou een reeks certificaten moeten te zien krijgen, te beginnen met het uwe, en eindigend met het root certificaat van de uitgever.

Surf naar de testpagina van Qualys SSL Labs om na te gaan of uw webserver en uw certificaat correct en veilig geconfigureerd zijn.