Knowledge base

Correct detecteren van SSL verkeer op het Kinamo hosting platform

Laatst bijgewerkt op 6 sep. 2023 13:16:49.
Categorie: Alles over SSL certificaten | SSL technisch

PHP SSL

Het hosting platform maakt gebruik van load balancers, dit om een hogere graad van redundantie te bekomen en dus te zorgen voor een uiterst stabiele PHP hosting omgeving.

Werken met SSL certificaten op het Kinamo hosting platform

Op het Kinamo shared hosting platform worden de certificaten op de load balancers geplaatst en wordt het verkeer via SSL off-loading naar de onderliggende webserver nodes gebracht.
Welke impact heeft dit voor u als ontwikkelaar: de verbindingen op de website zullen steeds als normaal HTTP verkeer toekomen (met andere woorden op poort 80 en niet geëncrypteerd) aangezien de load balancers deze taak voor zich nemen (vandaar de naam "SSL off-loading").

Hoe detecteren of de bezoeker via HTTPS binnen kwam?

Soms is het nodig om in de toepassing na te gaan of de bezoeker daadwerkelijk via HTTPS op de website kwam en indien dit niet het geval is deze toch via die weg te sturen.

Op een gewone webserver is dit geen probleem en kan u via PHP code eenvoudig nagaan of de poort waarop de bezoeker binnenkwam poort 80 (normaal HTTP verkeer) of poort 443 (HTTPS verkeer) was, of het protocol HTTP of HTTPS was.
Echter, op het Kinamo web hosting platform zal dit niet werken om eerder vermelde reden.

Om dit probleem op te lossen hebben wij twee headers toegevoegd. Aan de hand van deze headers kan u nagaan of de bezoeker via HTTPS binnen kwam of niet:

$_SERVER["HTTP_X_FORWARDED_PORT"]

Deze header zal meegeven via welke poort de bezoeker is binnen gekomen: in het geval van HTTPS is dit 443, in het geval van normaal HTTP verkeer is dit 80.

$_SERVER["HTTP_X_FORWARDED_PROTO"]

Deze header geeft mee via welk protocol de bezoeker is binnen gekomen, HTTPS of HTTP.

PHP HTTPS header detectie

Onderstaand voorbeeld geeft weer hoe u op poort of protocol kan detecteren of iemand via de juiste weg binnen kwam, en indien dit niet het geval is zal de bezoeker doorverwezen worden naar de juiste website url.
Opgelet, deze code werkt ENKEL en ALLEEN op het Kinamo hosting platform! Het is mogelijk dat andere webservers andere server headers gebruiken!

if ($_SERVER['HTTP_X_FORWARDED_PORT'] != 443 || $_SERVER['HTTP_X_FORWARDED_PROTO'] != 'https')
{
 $redirect = "Location: https://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
 header( $redirect, true, 301 );
 exit(0);
}

Wordpress opzetten voor HTTPS

Wordpress vereist enkele aanpassingen voor correct detecteren van HTTPS verkeer.
Hiervoor verwijzen we u graag door naar het FAQ item rond Wordpress en HTTPS verkeer detecteren.

Happy coding!


Gerelateerde artikels

Kinamo mail server instellingen (mail server cheat sheet)

Volgend artikel geeft de basis instellingen en server namen (domeinnamen) weer voor de Kinamo mail infrastructuur. Aan de hand van...

Lees meer

Instellen van een automatische SPAM filter met de Kinamo Webmail client

Volgend artikel legt uit hoe u een speciale filter kan aanmaken die automatisch SPAM berichten in een daartoe bestemde map...

Lees meer

Een SSL certificaat kopen? Wat is een SSL certificaat?

U heeft beslist om een SSL certificaat te kopen? Maar wat is een SSL certificaat? Waarom is dit belangrijk en...

Lees meer

Extra hulp nodig?

Werden niet al uw vragen beantwoord?
Geen nood, via een support aanvraag helpen wij u graag verder!

Selecteer uw taal

Alle talen: