Forum Linux.général Haproxy

Posté par  . Licence CC By‑SA.
Étiquettes :
2
8
nov.
2024

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  (site web personnel, Mastodon) . Évalué à 3 (+2/-0).

    Je ne comprends pas ta phrase :

    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….

    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  . É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 :

      citation

      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

      citation

      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  . É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.

        if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
            $_SERVER['HTTPS'] = 'on';

        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

        Désolé, vous n’avez pas l’autorisation d’accéder à cette page.

        s'affiche après avoir rentré mes identifiants

  • # commençons par le navigateur

    Posté par  . É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  . É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  . É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.

        citation

        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 :

        citation

        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.