Déploiement de Discourse sur Lightsail : « connexion refusée »

Bonjour,

J’ai récemment suivi le guide install-cloud pour installer Discourse sur une instance AWS Lightsail. Malgré avoir suivi attentivement les instructions et recommencé plusieurs fois depuis le début, j’obtiens malheureusement une erreur « connection refused » lorsque j’essaie d’accéder à mon forum.

Les étapes que j’ai suivies sont :

  1. Créer une nouvelle instance Lightsail
  2. Attribuer une adresse IP statique
  3. Ouvrir le port 443
  4. Pointer mon sous-domaine (forum.procedural.audio) vers l’adresse IP
  5. Suivre les commandes d’installation de Discourse dans le guide, y compris la fourniture d’une adresse e-mail pour LETS_ENCRYPT
  6. Naviguer vers mon forum… connection refused

L’exécution de ./discourse-doctor indique que la version de Discourse à l’adresse forum.procedural.audio est NOT FOUND. Je peux recevoir avec succès un e-mail de test de Discourse.

L’exécution de ping forum.procedural.audio ne reçoit pas de données en retour mais trouve la bonne adresse IP statique.

J’ai remarqué les erreurs suivantes dans les logs :

$ ./launcher logs app
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
nginx: [emerg] cannot load certificate "/shared/ssl/forum.procedural.audio.cer": PEM_read_bio_X509_AUX() failed (S
SL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)
(se répète de nombreuses fois)

Il semble donc que le problème soit lié au SSL, bien que je ne sache pas comment le résoudre. Dans le répertoire shared/standalone/ssl/, il y a quatre fichiers :

  1. forum.procedural.audio.cer (le fichier est vide)
  2. forum.procedural.audio.key (le fichier contient une clé)
  3. forum.procedural.audio_ecc.cer (le fichier est vide)
  4. forum.procedural.audio_ecc.key (le fichier contient une clé)

Je ne suis donc pas sûr si le fait que les fichiers .cer soient vides fait partie du problème. Je remarque également, cependant, que les logs indiquent qu’il recherche le fichier à /shared/ssl/* au lieu de /shared/standalone/ssl/*, ce qui semble également pertinent.

Merci de votre aide.

1 « J'aime »

Le problème est que votre instance Lightsail n’est pas joignable de l’extérieur. C’est ce que discourse-doctor vous disait : si vous n’avez ouvert que le port 443, c’est probablement la raison.

HTTPS sur le port 443 ne fonctionnera pas tant que vous n’aurez pas de certificat. Vous n’avez pas de certificat (et ces fichiers de certificat sont vides) car Let’s Encrypt n’a pas pu s’enregistrer en raison du problème de communication.

En supposant que vous ayez attribué une adresse externe statique, ouvrez également le port 80, puis réessayez. Le port 80 devra de toute façon être ouvert pour que tout client se connectant via HTTP puisse être redirigé.

Je viens de vérifier et ce nom d’hôte est invalide. Vous devez d’abord corriger cela.

impossible de résoudre forum.procedural.audio : Hôte inconnu
1 « J'aime »

Les ports 22 et 80 sont ouverts par défaut pour les instances Lightsail. Je ne pense donc pas que l’ouverture du port 80 soit la solution.

Désolé, pourriez-vous en dire plus ? En quel sens le nom d’hôte est-il invalide ?

forum.procedural.audio n’apparaît pas dans le DNS, ou pour le dire autrement, le nom d’hôte ne se résout pas en IP. Je viens de vérifier via CloudFlare et Google DNS, aucun des deux ne trouve ce nom d’hôte. Si je ne peux pas le résoudre, alors discourse-doctor non plus.

Quand avez-vous créé l’enregistrement ‘a’ pour votre serveur ? Avez-vous vérifié leurs temps de réplication ?

Assurez-vous que cela est corrigé avant d’essayer de reconstruire le serveur. Let’s Encrypt donne un nombre fini d’essais pour s’inscrire/renouveler et lorsque vous atteignez cette limite, vous ne pourrez pas obtenir de certificat pendant sept jours.

1 « J'aime »

J’ai le domaine chez Namecheap depuis deux jours, qui pointe vers Route 53 (la couche supplémentaire d’indirection est due au fait que Route 53 ne prend pas en charge les domaines .audio). L’entrée du domaine principal existe depuis la majeure partie de ces deux jours. L’enregistrement du sous-domaine existe depuis environ une heure.

Si c’était le problème, je pense que l’exécution de ping forum.procedural.audio depuis mon instance échouerait à résoudre l’adresse IP. Mais l’adresse IP est résolue.

Il ne se résout pas en externe, Let’s Encrypt utilise le DNS pour s’assurer que le serveur est bien ce qu’il prétend être.

ping forum.procedural.audio                                                                                                               ✔  1909  10:59:47
ping: impossible de résoudre forum.procedural.audio : Hôte inconnu

Hmm. Eh bien, https://dnschecker.org/#A/forum.procedural.audio montre que le nom se résout dans plusieurs endroits, il s’agit donc peut-être d’un problème de propagation. Lorsque 1.1.1.1 ou 8.8.8.8 l’interrogent, je n’obtiens aucune réponse. NS-337.AWSDNS-42.COM le renvoie cependant, vous devrez donc peut-être simplement attendre un peu.

Mais discourse-setup essaiera de rechercher l’adresse et verra s’il peut se connecter à lui-même. Si cela échoue, il s’agit généralement d’un problème DNS ou de ports non ouverts.

1 « J'aime »

Bonjour,

Cela fait presque une semaine et je n’arrive toujours pas à déployer un forum. Quelqu’un a-t-il d’autres idées ? Les ports 80 et 443 sont ouverts. Je ne pense pas qu’il s’agisse d’un problème de DNS – discourse-doctor ne trouve pas la version de discourse à localhost (en plus de forum.procedural.audio). Toute aide est appréciée.

nslookup.exe forum.procedural.audio
Server:  dns.google
Address:  8.8.8.8

*** dns.google can't find forum.procedural.audio: Server failed

C’est un problème de DNS.

3 « J'aime »

Hmmm https://dnschecker.org/#A/forum.procedural.audio montre qu’il s’est propagé à 31/32 emplacements. Je n’ai jamais entendu parler d’enregistrements DNS prenant plus de 144 heures à se propager. Mais en vérifiant maintenant https://www.nslookup.io/domains/forum.procedural.audio/dns-records/#cloudflare, je vois que Cloudflare et Google ne peuvent pas le résoudre, bien que le serveur faisant autorité le puisse.

Donc, je suppose que je me trompais, mais je ne sais pas quoi faire à ce sujet. Je ne sais pas pourquoi discourse-doctor ne trouve pas la version discourse à localhost.

Vous avez donc un problème de DNS.

Et si vous avez effectué de nombreuses reconstructions, vous avez un problème de limitation de débit Let’s Encrypt.

1 « J'aime »