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

Acheter un certificat SSL? Qu'est un certificat SSL?

Vous voulez acheter un certificat SSL? Mais, c'est quoi un certificat SSL? Et pourquoi est-ce que tous le monde dit...

En savoir plus

Algorithmes SHA1, SHA2, et SHA256

SHA est un algorithme mathématique employé en SSL pour vérifier la validité de la signature d'un certificat. Il existe plusieurs...

En savoir plus

Pourquoi un triangle d'avertissement s'affiche-t-il sur un site HTTPS?

Le triangle d'avertissement superposé sur le cadenas dans votre barre d'adresse s'affiche quand vous visitez un site web sécurisé via...

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!

Sélectionnez votre langue

Toutes les langues: