Comment detecter du traffic SSL sur le plateforme d'hébergement mutualisé Kinamo

Dernière mise à jour sur 6 sept. 2023 à 13:16:49.
Catégorie: Tout sur les certificats SSL | SSL questions techniques

PHP SSL

La plateforme d'hébergement web Kinamo vous permet d'utiliser plusieurs types de certificats SSL.

La plate-forme d'hébergement Web mutualisé utilise des équilibreurs de charge pour répartir les requêtes du serveur sur plusieurs nœuds de serveur Web (ceci afin d'obtenir un degré de redondance plus élevé et d'assurer une plate-forme d'hébergement PHP stable).

Travailler avec des certificats SSL sur la plateforme d'hébergement Kinamo

Sur la plate-forme d'hébergement partagé Kinamo, les certificats sont placés sur les équilibreurs de charge et le trafic est déchargé vers les nœuds de serveur Web sous-jacents via le déchargement SSL.
Quel impact cela a-t-il pour vous en tant que développeur : les connexions au site Web arriveront toujours en tant que trafic HTTP normal (c'est-à-dire sur le port 80 et non crypté) car les équilibreurs de charge se chargent de cette tâche (d'où le nom "Déchargement SSL ") ").

Comment détecter si le visiteur est entré via HTTPS ?

Il est souvent nécessaire de vérifier dans l'application si le visiteur est effectivement venu sur le site via HTTPS, et si ce n'est pas le cas, l'envoyer de cette façon quand même. Ce n'est pas un problème sur un serveur Web normal et vous pouvez facilement vérifier via le code PHP si le port sur lequel le visiteur est entré était le port 80 (trafic HTTP normal) ou le port 443 (trafic HTTPS), ou si le protocole était HTTP ou HTTPS . Cependant, sur la plate-forme d'hébergement Web Kinamo, cela ne fonctionnera pas pour les raisons mentionnées ci-dessus.
Pour résoudre ce problème, nous avons ajouté deux en-têtes. Sur la base de ces en-têtes, vous pouvez vérifier si le visiteur est entré via HTTPS ou non :

$_SERVER["HTTP_X_FORWARDED_PORT"]

Cet en-tête indiquera par quel port le visiteur est entré : dans le cas de HTTPS, il s'agit de 443, dans le cas d'un trafic HTTP normal, il s'agit de 80.

$_SERVER["HTTP_X_FORWARDED_PROTO"]

Cet en-tête indique par quel protocole le visiteur est entré, HTTPS ou HTTP.

Détection d'en-tête PHP HTTPS

L'exemple ci-dessous montre comment vous pouvez détecter sur le port ou le protocole si quelqu'un est venu dans le bon sens, et si ce n'est pas le cas, le visiteur sera redirigé vers la bonne URL du site Web.
Attention, ce code fonctionne UNIQUEMENT sur la plateforme d'hébergement Kinamo ! Pour PHP standard, d'autres en-têtes de serveur sont utilisés !

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);
}

Configurer Wordpress pour HTTPS

Wordpress nécessite quelques ajustements pour détecter correctement le trafic HTTPS. Pour cela, nous aimerions vous renvoyer à l'article FAQ sur la détection de trafic Wordpress et HTTPS.


Bon codage !

Articles connexes

Les services gérés à l'honneur

Nos administrateurs système ont soulevé quelques cargos remplis de conteneurs de travail. (oui, ce jeu de mots était intentionnel, plus...

En savoir plus

Quel niveau de service (SLA) est de vigueur sur un hébergement serveur (co-location)?

Nos clients ayant un hébergement serveur dans notre datacentre bénéficient également de garanties excellentes. Chaque hébergement serveur chez Kinamo dispose...

En savoir plus

Comment corriger une erreur de blocage lors de la mise à niveau d'ESXi 6.5 vers 7.0 update 2 via vSphere Lifecycle Manager.

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

En savoir plus

Besoin d'aide supplémentaire?

Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!

Kinamo

Sélectionnez votre langue

Toutes les langues: