Laravel Forge

Problème de redirections

a marqué ce sujet comme résolu.

Bonjour à toutes et tous. Voilà, j’ai créé il y a déjà quelques années plusieurs sites web, au moyen de Laravel 5.1. J’ai loué les noms de domaines sur OVH, puis souscrit au service Laravel Forge.

Tout a bien fonctionné depuis, sans problème, en HTTP. Seulement hier, j’ai reçu un certificat HTTPS que j’ai acheté et j’ai voulu l’installer (Forge propose une interface graphique pour simplifier la manipulation). Après avoir suivi les étapes, le site était totalement inaccessible. Le browser indiquait qu’il y avait trop de redirections.

Après avoir cherché un bon moment sur google, j’ai finalement décidé de supprimer le certificat et de revenir en HTTP pour le moment (c’est un site dédié à l’enseignement et si les élèves ne peuvent plus faire leurs devoirs dessus, ça va être gênant pour mon épouse qui l’utilise - il est vrai que j’aurais dû attendre les vacances de fin d’année pour faire cet màj…).

Après avoir supprimé le certificat (c’est simple sur Forge, un clic à faire), le fichier de configuration Nginx semblait être revenue à la "normale" (écoute du port 80 uniquement, et plus du 443). Seulement voilà, j’ai un souci que je ne parviens pas à résoudre :

  • si je me connecte au site teraro.ch via mon smartphone 4g, pas de problème. Idem si je connecte sur un de mes deux ordis en partage de connexion avec la 4g du smartphone, le site s’affiche.
  • TOUTES les tentatives d’accéder au site via le wifi du réseau domestique se sont soldées par un échec. Message affiché : "This page isn’t working teraro.ch redirected you too many times. Try clearing your cookies. ERR_TOO_MANY_REDIRECTS". J’ai essayé d’effacer les cookies, de supprimer les données de navigation, ou en navigation privée, de redémarrer les ordis, de changer de navigateur (Firefox, Chrome), rien ne marche. J’ai regardé du côté du routeur s’il y avait une sorte de "blacklist", mais je n’ai rien trouvé.

Voilà, j’aurais aimé savoir s’il y avait un moyen de monitoring pour trouver d’où provient cette erreur. Je suis amateur et je ne connais pas grand chose en configuration de serveur.

Merci d’avance pour votre aide !

Salut leir,

Pour ton problème d’accès depuis ton ordinateur je n’ai pas trop d’idée. En revanche il est assez courant d’avoir des problèmes de redirection dans ce genre. Pour la prochaine fois vérifie bien les points suivants :

  • L’écoute sur le port 80 (Http) doit rediriger vers le port 443 HTTPS, pour forcer le HTTPS pour tous les utilisateurs.
  • En revanche le port 443 ne doit pas avoir de redirection vers le port 80 sinon tu boucle à l’infini, ce qui engendre le genre d’erreurs que tu à eues.
  • Si ces deux points sont bons vérifie que tu n’a pas d’autres redirections (toto.com vers www.toto.com) qui pourraient rentrer en conflit avec les HTTPS ;)

Je ne connais pas bien les offres d’ovh, mais en général tout ce qui est redirections est géré par un logiciel comme Nginx. Peut être peux tu accéder à des logs qui te donneront une piste ;)

Bonne continuation Anto59290

Salut,

Les ERR_TOO_MANY_REDIRECTS et les choses du genre, c’est super facile à débugger avec cURL (ou n’importe quel outil du genre qui ne suit pas les redirections et qui peut afficher les headers HTTP).

Par exemple :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
$ curl -i http://zestedesavoir.com
HTTP/1.1 301 Moved Permanently
Server: nginx/1.10.3
Date: Tue, 07 Nov 2017 08:00:42 GMT
Content-Type: text/html
Content-Length: 185
Connection: keep-alive
Location: https://zestedesavoir.com/
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
X-Xss-Protection: 1
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.10.3</center>
</body>
</html>

Là, tu vois que http://zestedesavoir.com redirige vers https://zestedesavoir.com/ (avec le header Location). Mais https://zestedesavoir.com/ ne doit pas rediriger vers http://zestedesavoir.com, sinon ça boucle. Voilà, c’est tout :)

+1 -0

@anto59290 Merci pour tes précisions. Pour le moment, je ne veux pas remettre en place le https, j’ai pas envie de planter le site à nouveau. J’aimerais juste que tout fonctionne en http à nouveau déjà :-)

@motet-a Merci pour l’utilisation de curl. J’ai testé mais je ne vois pas ce qui peut clocher. Voilà l’output :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
curl -i http://www.teraro.ch
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Tue, 07 Nov 2017 08:24:33 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://teraro.ch/

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.8.0</center>
</body>
</html>

Donc là http://www.teraro.ch est redirigé vers teraro.ch. Et voilà l’output pour http://teraro.ch :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
$ curl -i http://teraro.ch
HTTP/1.1 301 Moved Permanently
Server: nginx/1.8.0
Date: Tue, 07 Nov 2017 08:29:20 GMT
Content-Type: text/html
Content-Length: 184
Connection: keep-alive
Location: http://teraro.ch/

<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.8.0</center>
</body>
</html>

Il y a une redirection de trop ? Il redirige teraro.ch vers lui-même ? Et si je fais un curl avec https, il me met :

1
2
curl -i https://teraro.ch
curl: (7) Failed to connect to teraro.ch port 443: Connexion refusée

Ce qui est normal je suppose, vu que j’ai shooté les certificats.

Attention au / à la fin. Location: http://teraro.ch/ c’est pas la même chose que Location: http://teraro.ch :)

Mais chez moi ça marche bel et bien en fait. J’ai accès à ton site correctement sur http://teraro.ch/. Mais tu as peut-être un problème de cache avec ton navigateur, vu que les redirections 301 sont généralement mises en cache un peu violemment (essaye de le vider ou d’utiliser un autre navigateur ou un autre appareil, ça devrait marcher).

+2 -0

Merci pour ton retour @motet-a. J’ai continué à chercher entre-temps et il y avait un bout de code introduit avant ma configuration nginx. Ce fichier ’before’ a été généré automatiquement par le service Forge :

1
2
3
4
5
6
7
8
# Redirect To Primary Domain...
server {
    listen 80;
    listen [::]:80;

    server_name www.teraro.ch;
    return 301 $scheme://teraro.ch$request_uri;
}

Du coup ça tournait en boucle je pense. J’ai mis des # devant chaque ligne pour tester, et ça fonctionne à nouveau après redémarrage de nginx. Un immense merci à vous deux en tout cas d’avoir pris le temps de m’aider. :D Je ferai une tentative pour mettre le site en https durant les prochaines vacances scolaires ;)

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte