RPI4 - n8n - Et https

Bonjour a tous.
Je suis assez novice en terme de serveur, linux et autre.

J’ai installé n8n via npm sur min raspberry 4.
Après avoir désactivé les cookies sécurisés, pas de soucis pour y accéder en local, ou depuis mon IP fixe de chez Free.

Malheureusement, certains webhook n’apprecient pas que ce ne soit pas en https.
J’ai donc tenté pas mal de chose, mais toujours sans succès.

Ma problématique est que je souhaiterais garder ma configuration avec l’ip fixe de chez Free, sans avoir à passer par un nom de domaine.
Mais du coup… je ne trouve aucun tuto sur comment réaliser cette manipulation.

Sauriez-vous m’aider ? :slight_smile:

Merci à tous.

Impossible, un certificat SSL (pour le https) est utilisable uniquement avec un domain. Tu peux l’utiliser avec un DNS.

Ce DNS doit être accessible depuis Internet et que tu puisse compléter l’une des méthode de validation de Let’s Encrypt, pou un SSL gratuit.

Tu peux utiliser le SSL sur un IP avec le certificat générique, le problème c’est qu’il ne sera pas valide, sous Chrome tu devra confirmer ton envie de le visiter, avec un Webhoock, faudra lui demande d’ignorer la validation du certificat.

Hello @Mangaku
Tu ne veux pas payer de nom de domaine ou tu ne veux pas de nom de domaine ?
tu peux en avoir un chez free et utiliser Let’sEncrypt pour être en https
Je suis chez Free depuis plus de 15 ans en IP fixe.
Je suis passé à la fibre il y a 5 ans je pense et je suis en IP fixe Full Stack.
J’ai plusieurs vrais noms de domaines qui pointent chez moi mais aussi un nom de domaine freeboxos :


++

C’était par flemme surtout.
J’ai un ou deux noms de domaines inutile. Mais ca veut dire suivre les DNS etc. Bref…
La solution freeboxos . fr est clairement le plus simple. Je n’y avais pas du tout pensé !

Plus qu’à tester !

Merci

Bon, j’ai suivi ce tuto: Let's Encrypt with certbot for Raspbian

J’ai fait la redirection sur la freebox.
Mais avec le tuto, quand je veux relancer apache, cela ne fonctionne pas:
«  »"
Job for apache2 . service failed because the control process exited with error code.
See « systemctl status apache2 . service » and « journalctl -xeu apache2. service » for details.
«  »"
J’ai évidemment remplacé les sub . domaine . com par XXX . freeboxos . fr
Je ne sais pas du coup.

Regarde le journal pour avoir le message d’erreur, tu as peut-être mal formé la config.

Assure toi que les fichiers de certificat son accessibles pour Apache et qu’ils existent.

J’ai oublié:

sudo a2enmod ssl

Bon…
Ca doit merder dans la redirection des ports.
J’ai redirigé 80 vers 80 et 443 vers 443.

Maintenant que je veux acceder via xxx.freeboxos.fr, j’ai redirigé 443 vers 5678 (le port de n8n), mais ça ne veut pas.
Est-ce que je devrais forcer le 5678 directement dans le fichier de configuration de Apache ?

Yo,
Montre nous une capture de ta page de redirection (tu vires les parties non publiques avant :wink: évidemment)

J’ai pété un cable: j’ai tout changé…
En fait, j’ai un disque dans ma DELTA; j’avais oublié.

Donc j’ai tout repris à 0 directement sur ma DELTA.

J’ai donc créé une VM debian et ait suivi ces tutos:

Puis cette vidéo pour passer en HTTPS: https://www.Youtube.com/watch?v=Temh_Ddxp24

MAIS RIEN N’Y FAIT.
J’ai toujours avec mon 192.168.x.x :

Your n8n Server is configured To use a secure cookie,
however you are either visiting this via an insecure URL, or using Safari.

To fix this, please consider the following options:
Setup TLS/HTTPS (recommended), or
If you are running this locally, and not using Safari, try using localhost instead
If you prefer To disable this security feature (not recommended), set the environment variable N8N_SECURE_COOKIE To false

Et si je passe par xxxFreeboxOSfr, j’ai :

Welcome To nginx!
If you see this page, the nginx Web Server is successfully installed and working. Further configuration is required.

For online documentation and support please refer To nginx.org.
Commercial support is available at nginx.com.

Thank you for using nginx

J’ai bien fais l’ouverture des ports,

  • de 80 vers 80
  • de 443 vers 443
  • de 5678 vers 5678

Doit me manquer un truc stupide qui fait que N8N ne veut pas accepter le HTTPS et pourquoi le xxxfreeboxosfr ne veut pas pointer vers la VM n8n (192.168.1.45 actuellement chez moi)

  • Ta redirect DNS de Free doit etre sur le IP externe (Internet).
  • Ping le DNS de Free apres sur le port 80, 443 et 5678
  • Vérifie si n8n ne bloque pas les IP non local (par exemple avec Motion, il n’autorise que les connection local et non du réseau, faut lui indiqué)
  • Consulte tes logs, c’est souvent indiqué pourquoi sa bloque, par exemple n8n peut recevoir la demande mais décide de ne pas répondre, il l’indiquera surement dans le log, Apache le fait en tout cas.

Si tu accès depuis l’extérieur, tout les IP et redirect doivent être avec des adresse externe, Sauf que si tu crée tes redirect sur ton routeur (box), tu doit lui définir le pointage vers le RPi, ce qui donne un truc genre

Source
IP 0.0.0.0
Port 80
Destination
IP 192.168.0.145
Port 80

Le DNS de Free serais (j’ai pas Free, alors je fait a peu près);
HOST mon.freebox.fr
IP 1.2.3.4 (ton IP statique de Free)

Même si tu as une redirection de ta box, le serveur n8n et apache verrons une adresse IP internet du client, en principe, grace au NAT, il va demander ou routeur, de manière transparente, un port pour partager les réponses du client, ceci est un processus normal. SI le NAT est désactivé, il peut rencontrer des problèmes.

Assure toi que le NAT et le uPnP soit activé, malgré que ce ne soit pas essentiel (uPnP), sa peut aider a surpasser certains problèmes.

Avant de passer en SSL, test tout en HTTP non SSL, comme sa, une fois tu passe en mode SSL, tu aura déjà valide que sans certificat sa marchait (et que le problème rencontré ce limiteras a la config SSL).

Si tu veux gérer tout sa facilement, install toi Webmin ou mieux; Virtualmin. Mais ne va pas résoudre ton problème en lui-même.

Mais li tes logs, c’est eu qui vont t’aligner vers la solution.

Tests faits.

  • Le ping de mon ip fixe free (et de mon domaine en freeboxos,fr) fonctionne:
    temps=2ms TTL=64
  • Le Telnet en 80, 443 et 5678 semble ok: Je passe sur une page vierge avec le curseur de PowerShell qui clignote et attend (pas de message d’erreur quoi)

Pour l’externe, j’ai testé avec mon IP en direct. Si je fais en http, sur le port 5678, j’ai bien mon message de demande TLS/HTTPS de n8n; donc il le trouve.
Et si je passe en https devant mon adresse ip: il me dit qu’il y a une erreur de communication:

xx.xx.xx.xx a envoyé une réponse incorrecte.
ERR_SSL_PROTOCOL_ERROR

Donc touut fonctionne, en http, que ce soit avec freeboxos ou l’IP direct.
Mais dès que je veux passer en S, impossible

Ton erreur indique que le protocole SSL n’est pas bon, soit tu utilise une version ancienne du support SSL, soit il est mal configuré.

Tu peux avoir un SSL sans certificat, mais Chrome, et autre navigateurs semblable, rencontrerons des erreurs.

Ce que dit l’AI de Google sur le sujet;
Le protocole TLS est la version successeur et améliorée du protocole SSL. Le SSL a connu les versions 1.0, 2.0 et 3.0, tandis que le TLS a évolué vers les versions 1.0, 1.1, 1.2 et 1.3. Les versions 1.2 et 1.3 de TLS sont les plus utilisées actuellement.

Voici une explication plus détaillée :

  • SSL (Secure Sockets Layer):

C’est le protocole initial qui a été développé par Netscape pour sécuriser les communications sur Internet. Il a connu trois versions principales : 1.0 (jamais publié), 2.0 (considéré comme obsolète) et 3.0 (considéré comme obsolète).

  • TLS (Transport Layer Security):

C’est le successeur du SSL, conçu pour corriger les faiblesses et vulnérabilités du SSL. Il est aujourd’hui le protocole de sécurité dominant pour les communications sur Internet. Les versions de TLS sont : 1.0, 1.1, 1.2 et 1.3, cette dernière étant la plus récente.

  • Différences principales:

    • TLS est plus sûr et plus flexible que SSL.
    • TLS a amélioré la sécurité cryptographique et l’interopérabilité par rapport à SSL.
    • TLS 1.3, la version la plus récente, est plus rapide et plus sûre que les versions précédentes, en utilisant notamment l’échange de clés éphémères pour réduire les risques de compromission.
  • Versions dépréciées:

SSL 2.0 et 3.0 sont considérées comme obsolètes et présentent des failles de sécurité connues.

  • Versions actuelles:

TLS 1.2 et TLS 1.3 sont les versions les plus utilisées.

Vu que le problème vient de n8n, il faut regarder comment il utilise SSL et c’est quoi les protocole qui peut gérer.

J’ai rencontré ce genre de problème avec SHOUTCast, la première version avec SSL n’avais pas de certificat géré, et utilisait de vieux protocoles, l’implantation était impossible, sauf via une passerelle via NGINX, mais j’ai pas touché, compliquant trop l’installation. Il a fallu la dernière version pour que le support SSL soit fiable et stable, sans problème, reste que l’admin est ingérable en SSL, mais l’écoute se fait bien et sans problème. (le problème vient de leur méthode d’identification obsolète, et non du SSL lui-même)

Alors n8n, que je ne connais pas, peut avoir ce même genre de problème, vu que le problème semble directement lié à lui, je te conseil, d’ouvrir un sujet sur leur espace dédié à l’aide pour ce produit, tu aura une réponse de connaisseurs du produit et surement de quelqu’un qui a rencontré le même genre de problème.

Vérifie aussi a vider tes cookie et cache, dans certains cas, ça entre en conflit. C’est un problème vu quand j’install un certificat et force le SSL avec Webmin/Virtualmin. Si j’était en non sécurisé ou en SSL avec un certificat non valide, une fois la modification faite, je suis incapable de me connecter au site. Je dois soit fermer/ouvrir Chrome, soit vider le cache et cookies du site en question. Même si je passe de la version IP au DNS après la modification.