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:
- Het Sectigo SSL-certificaat downloaden
- Het Sectigo SSL-certificaat installeren
- Een Let's Encrypt SSL-certificaat installeren
- Een Let's Encrypt SSL-certificaat aan je domein koppelen
- Voer de stappen in dit artikel uit als gebruiker met root-rechten.
- Deze handleiding is bedoeld om je op weg te helpen met het installeren van een SSL-certificaat op jouw VPS met DirectAdmin. Wij gaan er bij de stappen in dit artikel van uit dat je onze tutorial series gebruikt voor de configuratie van DirectAdmin op je VPS.
- Voor de beveiliging van je hostname raden wij Let's Encrypt aan. Het beveiligen van je hostname is belangrijk voor jezelf, resellers en users met eigen acounts op je DirectAdmin-VPS. Een betaald Domein Validatie SSL-certificaat van Sectigo heeft in deze situatie geen directe meerwaarde, aangezien Let's Encrypt dezelfde mate van veiligheid biedt.
De uitzondering is als je je bedrijfsnaam zichtbaar wil hebben achter het slot in de adresbalk, dan gebruik je een Uitgebreide Validatie SSL-certificaat. In het artikel 'Een Sectigo SSL-certificaat aanvragen' lees je meer over dit type SSL-certificaat en uiteraard hoe je deze aanvraagt.
Gebruikte installatie:
- DirectAdmin 1.51.4
- CentOS 7.2.1511
Randvoorwaarden:
- Een Sectigo (voorheen bekend als Comodo) SSL-certificaat. Heb je nog geen Sectigo SSL-certificaat in je bezit? Bezoek dan direct 'Een Sectigo SSL-certificaat aanvragen' voor een uitgebreide uitleg over hoe je een Sectigo SSL-certificaat aanvraagt.
- 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 DirectAdmin. Indien je van Let's Encrypt gebruik wilt maken, dan moet DirectAdmin minimaal versie 1.50.1 zijn.
- DirectAdmin heeft standaard al SNI ingeschakeld, waardoor je meerdere SSL-certificaten op 1 IP kunt installeren.
- Deze handleiding gaat er vanuit dat je reeds een pakket hebt aangemaakt binnen DirectAdmin en er een domein / website op user-level actief is waar je het SSL-certificaat op wilt gaan installeren.
- 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-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 in 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.
Stap 3
In het overzicht klik je nu op 'Downloaden'.
Stap 4
Voer nu de passphrase in van jouw SSL-certificaat en klik op '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:
- 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
De volgende stappen voer je uit binnen DirectAdmin:
Stap 1
Eerst schakel je ondersteuning voor SSL voor je domein in DirectAdmin in. Log in op 'User Level' als de gebruiker onder wiens naam het domein gehost wordt.
Stap 2
Klik op de naam van je domein. Als je één domein host zie je deze stap niet en kom je bij Stap 3 uit.
Stap 3
Vink 'Secure SSL' aan en klik op 'Save'.
Stap 4
Wanneer je SSL gebruikt, gebruikt DirectAdmin niet langer de public_html folder voor je website, maar de private_html folder. De eenvoudigste manier om hiermee te werken (die ook de minste schijfruimte kost) is om een symbolic link te gebruiken waarbij de private_html folder de inhoud van public_html gebruikt. Daarnaast is het het veiligst om SSL te forceren door een https redirect te gebruiken.
Selecteer op dezelfde pagina onder 'private_html setup for jedomein.nl - (SSL must be enabled above)' de opties:
- Use a symbolic link from private_html to public_html - allows for same data in http and https
- Force SSL with https redirect
Klik daarna op 'Save' onderaan rechts onder deze opties.
Stap 5
Ga in het user level naar het kopje 'Advanced Features' en klik daar op 'SSL Certificates'.
Stap 6
Het SSL-certificaat en de bijbehorende private key moeten worden ingevoerd onder Paste a pre-generated certificate and key. Je gebruikt dus NIET het huidige server-certificaat of een eigen request (CSR).
- Open eerst de private key (certificate.key) met jouw favoriete teksteditor en kopieer alle inhoud (dus ook het stuk -----BEGIN PRIVATE KEY----- & -----END PRIVATE KEY-----) in het veld onder Paste a pre-generated certificate and key.
- Open nu het certificaat (certificate.crt) met jouw favoriete teksteditor en kopieer wederom alle inhoud (dus ook het stuk -----BEGIN CERTIFICATE----- & -----END CERTIFICATE-----) en plak deze direct onder de inhoud van de private key.
Stap 7
Klik vervolgens op 'Save'. In het veld direct onder het certificaat wordt nu de informatie uit het certificaat getoond.
Stap 8
Nu zul je nog de 'root- en intermediate certificaten' moeten installeren. Deze certificaten bevatten alle informatie over bovenliggende certificaten en zorgen voor de "Chain of Trust" met de uitgevende instantie (in dit geval Sectigo). Standaard zullen veel desktopbrowsers van deze certificaten standaard al een kopie bevatten, maar veel mobiele browsers bijvoorbeeld niet. Daarom is het belangrijk om deze ook te installeren.
Klik op 'Click Here to paste a CA Root Certificate'.
Stap 9
Open nu de bundel met root- en intermediate certificaten (cabundle.crt) met jouw favoriete teksteditor en kopieer de gehele inhoud. Plak deze vervolgens in het daarvoor bestemde veld. Vink ook Use a CA Cert. aan.
Stap 10
Klik op 'Save' om de certificaten op te slaan. Het SSL-certificaat is nu succesvol geinstalleerd! Wanneer je nu naar https://www.jouwwebsite gaat zul je zien dat jouw website volledig via https beveiligd is!
Apache en e-mail beveiligen met je Sectigo-certificaat
Voor Apache en de e-mail wordt standaard een self-signed certificaat gebruiken. Om je eigen certificaat te gebruiken is het belangrijk dat je eerst de bestanden van je eigen certificaat hebt gedownload, zie hierboven.
Gebruik je voor je mail een subdomein zoals mail.jedomein.nl, dan heb je een Wildcard SSL-certificaat nodig om zowel het subdomein als je root-domein (e.g. voorbeeld.nl) te beveiligen, of twee aparte domeinvalidatie-certificaten. In dit laatste geval is het belangrijk dat je bij je Apache-certificaat in onderstaande instructie de gegevens van het SSL-certificaat van je root-domein gebruikt en bij het certificaat voor Exim het certificaat van je subdomein.
Stap 1
Open eerst de private key (certificate.key) met jouw favoriete teksteditor en kopieer alle inhoud (dus ook het stuk -----BEGIN PRIVATE KEY----- & -----END PRIVATE KEY-----). Open vervolgens één voor één de volgende bestanden en plak daar de inhoud van het bestand in:
nano /etc/httpd/conf/ssl.key/server.key
nano /etc/exim.key
Stap 2
Open nu het certificaat (certificate.crt) met jouw favoriete teksteditor en kopieer wederom alle inhoud (dus ook het stuk -----BEGIN CERTIFICATE----- & -----END CERTIFICATE-----). Open vervolgens één voor één de volgende bestanden en plak daar de inhoud van het bestand in:
nano /etc/httpd/conf/ssl.crt/server.crt
nano /etc/exim.cert
Het resultaat ziet er dan bijvoorbeeld als volgt uit in /etc/exim.cert:
-----BEGIN CERTIFICATE----- MIIGVjCCBT6gAwIBAgIQKTDZNuC6nJwl366VMfsbYjANBgkqhkiG9w0BAQsFADCB kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD QTAeFw0xODAzMjcwMDAwMDBaFw0xOTAzMjcyMzU5NTlaMFIxITAfBgNVBAsTGERv bWFpbiBDb250cm9sIFZhbGlkYXRlZDEUMBIGA1UECxMLUG9zaXRpdmVTU0wxFzAV BgNVBAMTDnN1cHBvcnR0ZXN0Lm5sMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB CgKCAQEAoluumhlz8xpBKw9sPoIFnzk62neQMClj8YM38sMXftnb/Enn8H8KTlMl ZPr26+OCzew4ZU2AymKhcSXdzN8NJCZ+xDzWCZz0vjIGiZD2jJRR29LJ1y2/MNmW 5r9ueV05892ARzFX7jUfcvZZDTEElqRm4qJrN2nm29JwR7pDFh9X93sB/96vOUyR 7glUuzo8JLDPG5Dr/Cq4VKiLB8qtHXyMueZadVL4XFpgz2XxJTB31ghNynKNum2r qYYEHXfteq8ln7p0A0O8qGzpu3nSHJIEN/eGq0fQxcJjByER7CIGLiRAgHLHGnX4 jdyjiZzmmJVyAI802pQLpntPwIpoBQIDAQABo4IC5zCCAuMwHwYDVR0jBBgwFoAU kK9qOpRaC9iQ6hJWc99DtDoo2ucwHQYDVR0OBBYEFLsBjfoH1uxiLaaOwZjRGyiJ CLG9MA4GA1UdDwEB/wQEAwIFoDAMBgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsG AQUFBwMBBggrBgEFBQcDAjBPBgNVHSAESDBGMDoGCysGAQQBsjEBAgIHMCswKQYI KwYBBQUHAgEWHWh0dHBzOi8vc2VjdXJlLmNvbW9kby5jb20vQ1BTMAgGBmeBDAEC ATBUBgNVHR8ETTBLMEmgR6BFhkNodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01P RE9SU0FEb21haW5WYWxpZGF0aW9uU2VjdXJlU2VydmVyQ0EuY3JsMIGFBggrBgEF BQcBAQR5MHcwTwYIKwYBBQUHMAKGQ2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NP TU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwJAYIKwYB BQUHMAGGGGh0dHA6Ly9vY3NwLmNvbW9kb2NhLmNvbTAtBgNVHREEJjAkgg5zdXBw b3J0dGVzdC5ubIISd3d3LnN1cHBvcnR0ZXN0Lm5sMIIBBAYKKwYBBAHWeQIEAgSB 9QSB8gDwAHYA7ku9t3XOYLrhQmkfq+GeZqMPfl+wctiDAMR7iXqo/csAAAFiZ4Du HgAABAMARzBFAiEA02FvptdFGZJUrgLpFxCvAgXJlJYKrhJzlpQ0jue0o8QCIG7J zYXTou+McpYylaNyZyUb0G/VzZCWYI7JUibp6gMxAHYAb1N2rDHwMRnYmQCkURX/ dxUcEdkCwQApBo2yCJo32RMAAAFiZ4GIiQAABAMARzBFAiAXxxcD12ijfxfCKSTa DBtNAGKfFz00WsS6MKRE/xN4sQIhAOHC7E/jJWSWNjf6quQWbxHmmvpSAoSY8AfF mScQvXKyMA0GCSqGSIb3DQEBCwUAA4IBAQB6AHVop2+fJyeokBSbnMs6UzfdacS6 tnUoHhPEgKXrsvX5LPD+9bsIgW9R6zyk1g8VnAG6g2RtBsdvLkJNzCa2DvQjK/3Y RKgnVOL1ph+iypJd4OfB7p+uExtl2BmSN5hnLdCGqPne5QUEGWolstZ2rItp6I9q bQ+JulT8nCp2lAhVK+uuD00Sv9/rokEWyAHPBIJ3dOsETlZUGxrLMOedPN4bL9/p WhWLLC+yHbjNtwK7A9q4yC7Ns6Nu9Ghk0jCebPtNa+XxvbUL+0+63REdNNyAyBmn 1htkXMi7Xos+vnun0TElmm0ZyPyg3No+PQuziZetArbHTjXUj4zCyKXl -----END CERTIFICATE-----
Stap 3
Herstart exim vervolgens om de wijzigingen te verwerken:
systemctl restart exim
Let's Encrypt inschakelen
Let's Encrypt is een gratis, geautomatiseerde en open 'Certificate Authority' uitgebracht door de non-profit organisatie Internet Security Research Group (ISRG). Het doel van Let's Encrypt is om het Internet veiliger te maken door iedereen de mogelijkheid te geven om van SSL gebruik te maken.
De volgende stappen voer je uit binnen vanuit de command-line (Let op! Dit werkt pas vanaf versie 1.50.1 van DirectAdmin). Deze stappen zorgen ervoor dat je Let's Encrypt voor je domeinen kunt gebruiken en beveiligen tegelijkertijd FTP, Apache en e-mail met Let's Encrypt.
Stap 1
Verbind met je VPS via SSH of de VPS-console.
Stap 2
In directadmin.conf vertel je DirectAdmin Let's Encrypt te gebruiken en forceer je het gebruik van de hostname (hierdoor wordt in de komende stappen je hostname met Let's Encrypt beveiligt). Open eerst directadmin.conf:
nano /usr/local/directadmin/conf/directadmin.conf
Voeg in het bestand dat opent de volgende regels toe / pas de bestaande waardes aan:
carootcert=/usr/local/directadmin/conf/carootcert.pemenable_ssl_sni=1
force_hostname=server.jedomein.nlletsencrypt=1 mail_sni=1
ssl=1 ssl_redirect_host=server.jedomein.nl
Vervang server.jedomein.nl door je daadwerkelijke hostnaam.
Stap 3
Sla de wijzigingen op (ctrl+X > Y > enter) en sluit het bestand.
Stap 4
Let op: is je VPS na mei 2018 geïnstalleerd? Gebruik dan enkel deze commando's om je wijzigingen te verwerken (de stappen voor het toestaan van SNI verder hier onder zijn standaard verwerkt in onze DirectAdmin images vanaf mei 2018):
cd /usr/local/directadmin/custombuild
./build update
./build letsencrypt
./build rewrite_confs
Is je VPS voor mei 2018 geïnstalleerd? Voer dan onderstaande commando's uit.
Hiermee controleer je dat je de laatste versie van Let's Encrypt gebruikt, maar minstens zo belangrijk: Als je meerdere domeinen host op je VPS en wil kunnen mailen vanaf deze domeinen met gebruik van SSL, dan gebruik je SNI (in dit geval mail_sni).
SNI staat je toe om voor verschillende domeinen certificaten te gebruiken. Gebruik je deze optie niet, dan krijg je een waarschuwing wanneer je een mailadres van een domein instelt in mail apps/software dat het certificaat niet overeenkomt met het domein dat je instelt.
Voor het gebruik van mail_sni in combinatie met Exim is versie 4.5 van de exim configuratie file vereist. Zonder update van Exim zelf werkt Exim daar echter niet correct mee. Hetzelde geld voor de Dovecot configuratie: om mail_sni te kunnen gebruiken moet ook deze geüpdate worden.
./build update
./build set exim yes
./build set eximconf yes
./build set eximconf_release 4.5
./build set dovecot_conf yes
./build set spamassassin yes
./build update
./build exim
./build exim_conf
./build dovecot_conf
./build letsencrypt
./build rewrite_confs
Stap 5
Voer het volgende commando als root uit om te zorgen dat je het script binnen haalt om Let's Encrypt certificaten te kunnen genereren:
wget -O /usr/local/directadmin/scripts.letsencrypt.sh http://files1.directadmin.com/services/all/letsencrypt/letsencrypt.sh
Stap 6
Voer het volgende commando als root uit om te zorgen dat Let's Encrypt je hostname correct gebruikt en niet 'localhost' als host in je certificaten meldt (pas server.jedomein.nl aan naar je daadwerkelijke hostnaam):
cd /usr/local/directadmin/scripts
./letsencrypt.sh request_single server.jedomein.nl 4096
Stap 7
Herstart tot slot DirectAdmin:
systemctl restart directadmin
Let's Encrypt aan je domein koppelen
Stap 1
Eerst schakel je ondersteuning voor SSL voor je domein in DirectAdmin in. Log in op 'User Level' als de gebruiker onder wiens naam het domein gehost wordt.
Stap 2
Klik op de naam van je domein. Als je één domein host zie je deze stap niet en kom je bij Stap 3 uit.
Stap 3
Vink 'Secure SSL' aan en klik op 'Save'.
Stap 4
Wanneer je SSL gebruikt, gebruikt DirectAdmin niet langer de public_html folder voor je website, maar de private_html folder. De eenvoudigste manier om hiermee te werken (die ook de minste schijfruimte kost) is om een symbolic link te gebruiken waarbij de private_html folder de inhoud van public_html gebruikt. Daarnaast is het het veiligst om SSL te forceren door een https redirect te gebruiken.
Selecteer op dezelfde pagina onder 'private_html setup for jedomein.nl - (SSL must be enabled above)' de opties:
- Use a symbolic link from private_html to public_html - allows for same data in http and https
- Force SSL with https redirect
Klik daarna op 'Save' onderaan rechts onder deze opties.
Stap 5
Log in DirectAdmin in op 'User Level' en klik onder 'Advanced Features' op 'SSL Certificates'.
Stap 6
Vervolgens selecteer je 'Free & automatic certificate from Let's Encrypt' en alle (sub)domeinen die je mee wil beveiligen. Je kunt hiermee dus in één keer Let's Encrypt aan alle (sub)domeinen koppelen voor de domeinen die gekoppeld zijn in het account van de gebruiker waarvoor je bent ingelogd. Geef tot slot een e-mailadres op en klik op 'Save'.
Daarmee is een gedegen SSL-beveiliging van je VPS opgezet. 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.