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

Managed services in de kijker

Onze systeembeheerders hebben een paar schepen vol met containers met werk opgetild. (Ja, die woordspeling was expres, onder meer hierover)...

Lees meer

Welke service level garantie (SLA) is van toepassing op server housing (co-location)?

Ook server housing of co-location klanten kunnen rekenen op een uitstekende service garantie. Een Kinamo server housing dienst beschikt standaard...

Lees meer

How to fix a blocking error when upgrading ESXi 6.5 to 7.0 update 2 through vSphere Lifecycle Manager.

Kinamo maintains multiple VMware vSphere clusters, not only for our own infrastructure, but also for a variety of customers. As...

Lees meer

Extra hulp nodig?

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

Kinamo

Selecteer uw taal

Alle talen: