Dernière mise à jour sur 6 sept. 2023, 13:16:49.
Catégorie:
Tout sur les certificats SSL
| SSL questions techniques
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).
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 ") ").
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.
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); }
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.
Vous n'avez pas obtenu de réponse à toutes vos questions?
Ne vous inquiétez pas, faites une demande d'assistance!