Bonjour à tous,
Nouvel inscrit sur ce forum.
Je suis étudiant en archi sys et réseaux avec une direction Open source.
Je ne sais pas vraiment ou poster donc si cela ne convient pas, vous pouvez déplacer le sujet.
Je viens demander un peu de vos lumières car j 'ai un souci pour un projet.
Celui se décompose en 2 parties + deux sous parties.
Je dois mettre en place un Wordpress avec apache2 sous debian12, Un HaProxy fait office de reverse sous Ubuntu.
L'ensemble tourne sur un Proxmox dernière version, j ai donc deux vm plus une autre faisant office de Firewall via Opnsense.
Au niveau réseau, les deux vm ont une IP privée
Une Ip publique tape directement sur le Haproxy sur une autre patte.
Le firewall est en One to One directement sur le HAProxy (+forward des protocoles HTTP+HTTPS+DNS sur le HA).
La partie 1/1/2 doit se dérouler comme suit :
citation IP publique -> HTTP -> haproxy |--> Worpresse/Apache2 (machine privée A)
Celle-ci fonctionne correctement, j ai accès au site (via le nom de domaine en lien avec L'Ip publique du HA) sans souci.
Pour la partie 2/1/2 cela se complique :
citation IP publique/Nom de domaine -> HTTPS -> haproxy + letsencrypt |--> Worpresse/Apache2 (machine privée A)
Le HA doit gérer l'ensemble des requêtes en HTTP et HTTPS et rediriger si besoin le HTTP vers HTTPS.
La par contre, j'ai accès à la page de garde mais avec des erreurs de formatage et je n’accède pas a la page secondaire ou alors uniquement en HTTP et avec un formatage….
J'ai changer plus de 10 fois la conf HA ou celle d'apache mais rien, je n'y arrive pas.
7 jours que je suis dessus.
Je vous post des photos des confs avec HTTP et HTTPS du HA ainsi que des logs et un visuel du site Wordpresse avec et sans HTTPS.
**
Bon, je n'arrive pas à poster les photos, ca pointe sur une URL…quand je clique sur l’icône Pict
Je vais faire autrement, la configuration HA en HTTP:
frontend http_front
bind *:80
default_backend wordpress_servers
backend wordpress_servers
mode http
server nimrod 10.1.1.7:80 check
**
la configuration HA en HTTPS:
frontend http_front
bind *:80
redirect scheme https if !{ ssl_fc }
default_backend wordpress_servers
frontend https_front
bind *:443 ssl crt /etc/haproxy/certs/nimrod-racing.com.pem
mode http
option http-server-close
default_backend wordpress_servers
backend wordpress_servers
mode http
option forwardfor
http-request set-header X-Forwarded-Proto https
server nimrod 10.1.1.7:80 check
# Pas tout compris mais...
Posté par raspbeguy (site web personnel, Mastodon) . Évalué à 3 (+2/-0).
Je ne comprends pas ta phrase :
Si tu arrive à joindre ton backend alors il y a très peu de chances que le problème vienne de ton reverse proxy. Je parierai plutôt sur wordpress mal configuré (il faut lui dire si tu veux y accéder en https par exemple).
Un gentil du net
[^] # Re: Pas tout compris mais...
Posté par Lightrasher . Évalué à 2 (+1/-0). Dernière modification le 08 novembre 2024 à 14:41.
Bonjour et merci de ta réponse.
Je me suis sans doute mal exprimé, je n'ai aucun souci en HTTP et oui, cela fonction correctement au niveau du backend.
Le problème survient quand je mets en place le HTTPS et demande à HAproxy de gérer cette partie.
La, c est la bérezina visuelle et technique.
Texte du lien
Par contre, j ai mis en place le même site sans passer par HAproxy et en implémentent le certificat directement via certbot et la, ça fonctionne…
Si tu désactives la protection de Firefox tu verras le site tel qui doit être (c'est minimaliste pour mes tests).
Je ne sais pas si le souci vient de HA, apache2 ou Wordpress.
Je tourne en rond.
Hypothèses :
HA ne renvoi pas complètement les infos
Wordpress n'a pas l'info que c est HA qui gère la partie HTTPS
Apache n'a pas cette info non plus.
LOGS en HTTPS
2024-11-08T00:47:03.469558+00:00 haproxy haproxy[2495]: 213.232.87.230:57863 [08/Nov/2024:00:47:03.412] https_front~ wordpress_servers/nimrod 0/0/0/31/32 404 22747 - - ---- 34/34/27/27/0 0/0 "GET /config/database.php HTTP/1.1"
2024-11-08T00:47:03.469585+00:00 haproxy haproxy[2495]: 213.232.87.230:61947 [08/Nov/2024:00:47:03.412] https_front~ wordpress_servers/nimrod 0/0/0/43/44 404 22747 - - ---- 33/33/29/29/0 0/0 "GET /config/production.json HTTP/1.1"
2024-11-08T00:47:03.469607+00:00 haproxy haproxy[2495]: 213.232.87.230:38631 [08/Nov/2024:00:47:03.414] https_front~ wordpress_servers/nimrod 0/0/0/43/44 404 22747 - - ---- 32/32/31/31/0 0/0 "GET /server.key HTTP/1.1"
2024-11-08T00:47:03.469645+00:00 haproxy haproxy[2495]: 213.232.87.230:55367 [08/Nov/2024:00:47:03.411] https_front~ wordpress_servers/nimrod 0/0/0/51/52 404 22747 - - ---- 31/31/30/30/0 0/0 "GET /api/.env HTTP/1.1"
[^] # Re: Pas tout compris mais...
Posté par Lightrasher . Évalué à 2 (+1/-0). Dernière modification le 08 novembre 2024 à 19:32.
Bon,
J'ai réussi à régler une partie du souci en ajoutant ca dans wordpress au niveau du fichier wp-config.php.
Maintenant, j ai un autre souci que je n'avais pas.
Quand tu vas sur la page et que tu ajoutes:
/wp-admin
Pour accéder à la page d'administration, la page pour rentrer son pswd et log n'est pas sécurisé mais en plus un message
s'affiche après avoir rentré mes identifiants
[^] # Re: Pas tout compris mais...
Posté par raspbeguy (site web personnel, Mastodon) . Évalué à 3 (+2/-0).
En vrac, essaye de configurer haproxy pour ajouter le header X-Forwarded-Proto.
Ça fait longtemps que j'ai pas touché à du wordpress mais il réserve ce genre de petites surprises.
Un gentil du net
# commençons par le navigateur
Posté par jigso . Évalué à 4 (+2/-0).
regarde au debuggeur dans le navigateur, il est possible que certaines requetes comme les css passent pas ; ça peut donner une piste.
[^] # Re: commençons par le navigateur
Posté par Lightrasher . Évalué à 3 (+2/-0). Dernière modification le 08 novembre 2024 à 15:02.
Bonjour,
Ma réponse se chevauche avec la tienne.
J'ai pu régler une partie du souci, une partie.
J'ai déjà cherche dans les logs apaches, rien a signaler.
Edit : Rien sur le debugger d'apache, c est vierge.
[^] # Re: commençons par le navigateur
Posté par Lightrasher . Évalué à 4 (+3/-0). Dernière modification le 08 novembre 2024 à 17:15.
Alors, j'ai résolu le problème.
Dans Wordpress, j'avais rajouté cette ligne dans le fichier wp-config.php mais à la fin de celui-ci.
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
define('FORCE_SSL_ADMIN', true);
Oh l'erreur…., il fallait la mettre en dessous de :
define( 'WP_DEBUG', false );
Wordpress lit séquentiellement ce fichier (et pt les autres aussi).
Il fallait le savoir…
Merci à vous et sans doute à un prochain blocage.
Envoyer un commentaire
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.