Hébergement en https (NGINX)

jdhjdh Messages 3Membre
septembre 2021 modifié dans Trucs et astuces
Je viens de faire la connaissance de Zwiicms (par Linux Pratique n° 127 de Sept/Oct 2021).
Ce cms me semble intéressant et assez puissant sans base de données.
(L'informatique est mon métier.)

Je me suis auto-hébergé (je dispose de la fibre avec une ip fixe) : serveur Linux Debian 11 + Apache2 + Php 7.14.
Et j'ai installé un reverse proxy avec Nginx. (quelle idée curieuse !)

En créant un certificat automatique avec Let's Encrypt pour Nginx, le site est passé en https (avec passage auto ).

Et bim : le site n'est plus fonctionnel :
- le site est appelé en https
- la plupart (ou tous) des liens mentionne http:// ... et donc ne fonctionnent pas (plus) !!

Je présume dans le code, les liens sont générés avec le préfixe 'http://', ce qui bloque, de facto, le passage en https.
Post edited by fred on

Commentaires

  • jdhjdh Messages 3Membre
    Sujet clos.


    Je précise ma config initiale :
    - serveur final : Debian 11 + Apache2 + Php 7.14 : config avec virtualhost :80 + servername cms.xxxxx, donc en http
    - serveur reverse proxy : Debian 11 + Nginx + Certbot (Let's Encrypt) : config reverse proxy 'proxypass / http://cms.xxxx/' et rewrite auto par Certbot (avec déf host local)

    Evidemment, de l'extérieur
    - si on appelle en http, Nginx rewrite en https
    - si on appelle en https, Nginx passe en reverse vers le serveur final en ... http
    - et Zwiicms, étant appelé en http, indique les liens en http !
    Bim !


    Correction :
    Le serveur final DOIT être en https (comme le reverse) !
    Donc adaptation config Apache :
    - virtualhost :80 -> rewrite / httpS://cms.xxxx/ + déf host local
    - virtualhost :443 -> config en https avec les certificats générés par Certbot du reverse proxy (copie à faire à chaque renouvellement)
    Et bien sur modif du reverse proxy : proxypass / httpS://cms.xxxxx/ !


    Piste cherchée :
    Dans 'core/class/helper.class.php', j'ai imaginé modifier la fonction 'isHttps' mais cela aurait été évidemment une erreur !
    Les fonctions 'isHttps' et 'baseUrl' sont correctement coordonnées.


    Finalement, 1 petite heure d'analyse, étape par étape, avec rien d'acquis, et le sujet se résout !
    (Je retiens : un reverse qui récrit en https = le serveur cible doit être en https.)


    NB : l'idée d'avoir un reverse proxy est de centraliser les certificats Let's Encrypt !



  • Bonsoir @jdh,

    Merci pour ton expérience qui pourra sans doute servir à d'autres membres.

    A bientôt sur ce forum
    Sylvain
  • jdhjdh Messages 3Membre
    Merci pour cet accueil sympathique.

    Nécessairement, dans un cms, il y a des liens (<a href=, <link href= ou <img src=, ...).
    On peut soit les écrire en 'valeur absolue' (http?://chemin/image.jpg) ou en valeur 'relative' (chemin/image.jpg).
    Perso, je préfère la 'valeur relative' qui me semble plus aisé, mais c'est un avis perso.
    Pour ZwiiCms, cela se passe avec la fonction 'baseUrl' qui doit être très utilisée ...

    Sinon, en tant qu'informaticien, je peux avoir une utilisation 'non standard', un peu éloigné de l'esprit ZwiiCms.
    Peut-être l'occasion d'un post d'explications générales sur le sujet ...
  • fredfred Messages 1,696Administrateur
    septembre 2021 modifié
    Bonjour,
    Je déplace ce sujet dans les astuces.
    @jdh pourrais-tu m'envoyer un scan de l'article en MP ?
    Merci,
    Fred


    The f....g boss
Connectez-vous ou Inscrivez-vous pour répondre.