web-dev-qa-db-fra.com

Cloudflare ne redirige pas vers HTTPS

Je l'ai configurée et j'ai réglé "ON" sur "Réécriture automatique HTTPS", MAIS cela ne me redirige toujours pas vers le https par défaut lorsque la page est demandée via http ... accéder à la page manuellement en mettant https à l'URL fonctionne bien.

Des idées comment résoudre ceci, s'il vous plaît?

4
prizzaloo

Si vous rencontrez des problèmes avec l'option Cloudflare "Réécriture automatique HTTPS", il est possible que CF ne soit pas en mesure de déterminer si votre site/vos ressources sont compatibles HTTPS. Depuis la documentation CF sur Réécriture automatique HTTPS :

Pour déterminer les URL qui ne prennent pas en charge HTTPS, nous utilisons, entre autres, les données de HTTPS Everywhere de EFF et la liste de préchargement de HSTS de Chrome.

Pour rediriger inconditionnellement tous les utilisateurs vers HTTPS, la méthode recommandée semble être la création d'une règle de page. D'après le document d'assistance des FC: Comment rediriger tous les visiteurs vers HTTPS/SSL?

Le moyen le plus efficace de rediriger les visiteurs vers HTTPS lors de l’utilisation de Cloudflare consiste à utiliser un règle de page . Vous pouvez également rediriger vers HTTPS à l'aide de la configuration de votre origine, mais les règles de page sont traitées sur notre Edge, ce qui entraîne une réponse plus rapide et réduit le nombre de requêtes adressées à votre serveur.

L'action "Toujours utiliser HTTPS" est l'option la plus simple pour rediriger les requêtes HTTP vers HTTPS.

Les étapes suivantes décrivent le processus d'utilisation de règles de page (qui se comportera comme une redirection 301):

règle de page Cloudflare 301, redirection de HTTP vers HTTPS

  1. Se connecter à Cloudflare
  2. Sélectionnez votre site à l'aide du menu déroulant situé dans le coin supérieur gauche.
  3. Cliquez sur l'icône Règles de page en haut de l'écran.
  4. Cliquez sur le bouton Créer une règle de page.
  5. Entrez http: //*example.com/* mais changez évidemment le domaine avec le vôtre.
  6. Sous "Alors les paramètres sont:" cliquez sur + Ajouter un paramètre
  7. Cliquez sur la liste déroulante, recherchez et cliquez sur l'option "Toujours utiliser HTTPS".
  8. Enfin, cliquez sur Enregistrer et déployer

Cependant, de nombreux utilisateurs utilisent toujours leur propre configuration de serveur (j'entends littéralement par là la configuration du serveur principal, l'hôte virtuel ou le fichier .htaccess) et mod_rewrite (Apache) pour effectuer la redirection. Cependant, dans l'option "Flexible SSL" de CF, vous devez faire attention à la boucle de redirection, car votre site fournit toujours du contenu via HTTP à CF. Par conséquent, les contrôles HTTPS ordinaires ne peuvent pas être appliqués. (L'option "Flexible SSL" de CF ne protège que la connexion de l'utilisateur final à CF, pas la connexion de CF à votre serveur.)

Donc, quelque chose comme ce qui suit près du haut de votre fichier .htaccess:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://example.com/$1 [R=301,L]

Avec "Flexible SSL", la variable de serveur HTTPS est toujours off (puisque votre site sert du contenu via HTTP), mais Cloudflare doit définir l'en-tête de la requête HTTP X-Forwarded-Proto lors du passage de la requête. Les serveurs de Cloudflare. Conserver la première condition garantit que cela fonctionne, que vous utilisiez la FK ou non. Si vous êtes toujours derrière un proxy (CF), vous pouvez supprimer la première condition.

... il semble donc que HTST n'est pas vraiment une bonne idée ...

Si vous vous engagez à utiliser HTTPS, alors HSTS est une excellente idée. Cependant, c'est un aller simple. Vous ne pourrez pas (facilement) revenir à HTTP.

3
MrWhite