SSL: hoe forceer ik HTTPS en voorkom ik onveilige content?

Veiligheid staat hoog in het vaandel bij Antagonist. Mijn collega Bart schonk recentelijk aandacht aan het voorkomen van malware en Sander, een andere collega, had het vorige week over containerisatie als nieuwe en veilige vorm van webhosting. Zodoende wil ik in dit blog een ander aspect van veiligheid aanboren en aandacht schenken aan SSL.

SSL: secure connection

UPDATE
Sinds 11 april 2017 hebben alle domeinnamen, subdomeinen, aliassen en pointers bij Antagonist gratis SSL en HTTP/2 gekregen. Iedere klant, ongeacht hun webhostingpakket, inclusief Resellers. Lees meer!

Introductie

In augustus 2014 kondigden wij met trots de mogelijkheid aan om, naast webhosting en domeinen, ook SSL-certificaten bij Antagonist te bestellen. Eén van de voornaamste voordelen van een certificaat bij Antagonist, is dat wij het automatisch voor je configureren en installeren. Normaliter is dat de taak van een webbouwer. Een certificaat dient namelijk na aanschaf op de juiste wijze aan je pakket gekoppeld te worden. Toch zijn er een aantal punten die belangrijk zijn bij de voorbereiding van je website voor een optimaal gebruik van SSL. Nieuwsgierig hoe je het maximale uit je certificaat haalt? Hieronder leg ik het puntsgewijs uit.

Wat is SSL?

In het kort: het protocol SSL staat voor ‘Secure Socket Layer’. SSL zorgt ervoor dat het dataverkeer tussen jouw website en de bezoekers versleutelt is. Ik wil dit blog echter niet wijden aan wat SSL precies is, welke soorten SSL-certificaten er zijn of waarom het zo belangrijk is. Tijdens onze introductie van SSL-certificaten hebben we daar immers al over gesproken. Dan weet je dus waar je alles over SSL en een uitgebreide handleiding kunt vinden. Mocht je overigens twijfelen over welk SSL-certificaat je het beste kunt kiezen, stuur gerust een e-mail naar support@antagonist.nl voor advies.

SSL: je website beveiligen met SSL

Goed, waar gaan we dan heen met dit verhaal? Dit blog richt zich op de fase dat je een SSL-certificaat hebt besteld en het inmiddels actief is op je pakket. Vervolgens wil je natuurlijk ervoor zorgen dat je het maximale eruit haalt voor je website. Een versleutelde verbinding, alles over HTTPS, veilige content en dat groene slotje in de browser. Zodoende ga ik in op de punten die nodig zijn om bovenstaande te realiseren. De veelvoorkomende vragen in die fase heb ik hieronder neergezet en zal ik beantwoorden.

“Ik zie dat het certificaat actief is, maar ik moet zelf https:// voor mijn domein typen. Hoe forceer ik dat de verbinding vanzelf over HTTPS verloopt?”

Wanneer je een SSL-certificaat hebt, dan wil je dat je bezoekers altijd over een beveiligde HTTPS-verbinding je website bezoeken. Om te voorkomen dat bezoekers alsnog over een onbeveiligde HTTP-verbinding de website benaderen, is het mogelijk om te forceren dat bezoekers automatisch en altijd over een HTTPS-verbinding worden geleid.

SSL: https vs. http

Dit doe je door middel van een zogeheten ‘RewriteRule’. Rewrite rules zijn regels die je kunt gebruiken om bijvoorbeeld de URL van je website te herschrijven naar een andere URL binnen je website. Rewrite rules kunnen ingewikkeld zijn en vallen in de categorie ‘websites bouwen voor gevorderden’. Het is daarom verstandig om als leek niet zomaar, zonder stappenplan met rewrite rules aan de slag te gaan.

Ondersteuning voor SSL

Als support zijnde bieden we echter ook geen directe ondersteuning voor dergelijke regels, we zijn immers geen webbouwers. Om je toch te helpen, leg ik hieronder uit hoe je dit kunt realiseren. Wees niet bang, de aanpassing om bezoekers over HTTPS te forceren, klinkt lastiger dan dat het daadwerkelijk is. Als je secuur het stappenplan volgt, dan heb je het zo voor elkaar.

Wat moet je doen? Allereerst dien je via een FTP-programma, of de File Manager in DirectAdmin, het bestand met de naam ‘.htaccess’ op te zoeken. Dit bestand staat doorgaans in de ‘/public_html/-map’ van je pakket, dat is de locatie waar ook je website in is geplaatst.

SSL: .htaccess aanpassen

Via de optie ‘Edit’ kun je dit bestand openen waar je vervolgens de volgende regels code in plaatst om het verkeer over HTTPS te forceren.

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

SSL: RewriteRule aanpassen

Let op!
Plaats de regels bovenin en zorg ervoor dat je geen (eventuele) andere regels overschrijft. Klik op ‘Save’ om de wijzigingen op te slaan.

“Ik zie dat er nu HTTPS gebruikt wordt, maar ik krijg nog steeds geen groen slotje in de adresbalk te zien?”

Wanneer het SSL-certificaat actief is en je HTTPS geforceerd hebt, dan is het alsnog mogelijk dat je nog niet het groene slotje in de adresbalk ziet, wanneer je website wordt bezocht. Hoe kan dit? Het certificaat is immers actief en HTTPS is geforceerd.

Dit ontstaat omdat er binnen de website nog bestanden (afbeeldingen of andere externe content) zijn die over HTTP worden geladen. De pagina wordt weliswaar over HTTPS geladen. Echter, er treedt een conflict op, wanneer delen van de content over HTTP wordt geladen. De browser merkt dit op en zal om die reden een beveiligingswaarschuwing in plaats van een groen slotje tonen. Dit wordt ook wel ‘insecure/mixed content’ of ‘onbeveiligde inhoud’ genoemd.

SSL: insecure content fixer

In deze handleiding van Google kun je terugvinden, onder het kopje ‘Controleren of je website een beveiligde verbinding gebruikt’, welke pictogrammen bijvoorbeeld Google Chrome gebruikt, of een website wel of niet over een beveiligde verbinding verloopt, en of er nog sprake is van ‘insecure’ of ‘mixed content’.

“Hoe controleer ik welke bestanden via HTTP in plaats van HTTPS worden geladen?”

Daar zijn meerdere mogelijkheden voor. Er zijn tools zoals Why No Padlock, waarin je jouw domeinnaam kunt invoeren. Deze tools scannen dan je website en tonen vervolgens een overzicht van bestanden waarin nog HTTP in plaats van HTTPS gebruikt wordt. Bij die bestanden zul je ‘http’ moeten wijzigen naar ‘https’ of ‘//’.

In veel browsers, bijvoorbeeld Google Chrome, zitten ook functionaliteiten om binnen de browser zelf op te sporen welke bestanden er nog over een onbeveiligde verbinding worden geladen. Dat werkt als volgt.

  • Ga naar de pagina waarop je wilt controleren of er sprake is van onbeveiligde content. Indien dat het geval is, dan zie je in de browserbalk een slotje met een oranje driehoek.
  • Open de ‘JavaScript-console’ door naar ‘Instellingen’ > ‘Meer hulpprogramma’s > ‘JavaScript-console’ te gaan. Je kunt tevens de onderstaande toetsbordcombinaties gebruiken om deze console te openen:
    • Command – Option – J (Mac)
    • Control -Shift – J (Windows/Linux)
  • Onder het tabblad ‘Console’ worden dan bestandspaden aangegeven die nog over HTTP verlopen.

TIP!
In Firefox kun je de ontwikkellaarsconsole opvragen door F12 of CTRL + Shift + i in te toetsen.

“Ik weet nu welke bestanden over HTTP lopen. Maar hoe pas ik het aan?”

Je kunt dit wijzigen middels een programma, waarmee je bestanden op je webhostingpakket kunt aanpassen. Denk hierbij aan een FTP-programma maar ook de File Manager van DirectAdmin, de beheeromgeving van je webhostingpakket, volstaat. In dit voorbeeld gaan we uit van de File Manager binnen DirectAdmin.

  • Zoek het betreffende bestand op, waarvan je gevonden hebt dat het nog broncode bevat waar een URL ‘http’ bevat en klik naast het bestand op ‘Edit’.
  • Pas in de broncode van dat bestand alles waar ‘http’ in naar voren komt naar ‘https’ of ‘//’.
Stel, er staat in dat bestand de de onderstaande regel: http://www.antagonist.nl/webhosting.png

Dan dien je dat te wijzigen naar: https://www.antagonist.nl/webhosting.png

Of naar: //www.antagonist.nl/webhosting.png
  • Sla vervolgens de wijzigingen op door op ‘Save’ te klikken.
  • Controleer na de aanpassing middels de eerder genoemde tools of het betreffende bestand als nog als onbeveiligde content wordt aangemerkt.

TIP!
Voor WordPress zijn er ook plugins beschikbaar die het meeste werk al voor je uit handen nemen. Handige plugins zijn bijvoorbeeld Really Simple SSL en Insecure Content Fixer. Het kan je een hoop handwerk besparen!

“Help! Het klinkt allemaal erg ingewikkeld! Ik dacht dat jullie alles in zouden stellen?”

Wanneer je bij ons een SSL-certificaat bestelt, dan zorgen wij ervoor dat het certificaat correct wordt geconfigureerd en vervolgens wordt geïnstalleerd op je pakket. Normaliter zou je bij een derde partij een SSL-certificaat moeten bestellen. Vervolgens dien je deze op handmatig wijze te configureren en te koppelen aan je pakket. Daarna moet je alsnog je website forceren over HTTPS en controleren op onbeveiligde content.

SSL-certificaat: Domein SSL

Door je het configureren en installeren van SSL-certificaten uit handen te nemen, willen we je graag op weg helpen richting een beveiligde website. Juist deze eerste stappen zijn vaak het lastigste om uit te voeren en kosten veel tijd. Vervolgens kun je zelf aan de hand van bovengenoemde stappen de rest instellen.

SSL: het eindresultaat

Als het certificaat actief is en de verwijzingen binnen de website zijn aangepast dat alles over HTTPS verloopt, dan heb je het gewenste eindresultaat. Het verkeer van en naar je website wordt versleuteld en het groene slotje, of groene balk, wordt overal aan de bezoekers van je website getoond.

SSL-certificaat: Uitgebreide SSL

Heb je al wel webhosting, maar is je site nog niet beveiligd met SSL? Via Mijn Antagonist koppel je met een paar stappen een certificaat aan je pakket. Nog geen webhosting, maar wel nieuwsgierig alles wat mogelijk is en wat je erbij krijgt? Neem rustig een kijkje op onze vergelijkingspagina.

Vergelijk hostingpakketten →

P.S. Wil je op de hoogte blijven van alle artikelen, updates, tips en trucs die verschijnen op ons blog? Dat kan! Via RSS, per e-mail, het liken op Facebook, het +1’en op Google+ of het volgen op Twitter.

Deel Deel Deel Deel

2 reacties op “SSL: hoe forceer ik HTTPS en voorkom ik onveilige content?

    • Jazeker! Sterker nog, Google vindt het juist fijn dat je website alleen nog maar te bereiken is via een beveiligde HTTPS-verbinding.

Geef een reactie

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