Site Discourse non chargé après installation sans activer Let's Encrypt

Je connais assez pour être dangereux quand je suis assis devant une session SSH ouverte. J’ai suivi l’installation sans problème l’autre jour et tout a fonctionné.

Aujourd’hui, cependant, j’ai dû reconstruire (j’étais sur un serveur de développement, pas de production) et après avoir suivi les mêmes étapes, rien ne s’affiche après avoir exécuté ./discourse-setup et visité le site une fois l’installation terminée.

J’ai aussi lancé ./launcher start app et toujours rien.

Quelles sont les actions typiques que je devrais entreprendre pour dépanner l’installation ?

Aucun message, aucune erreur d’aucune sorte après ./discourse-setup ou ./launcher start app ?

Dites-nous en quoi les environnements diffèrent.

Utilisez-vous un proxy inverse ? CloudFlare ?

Où hébergez-vous l’installation de production ?

Non, l’installation semble avoir réussi. Lorsque je vérifie docker info, je vois que le conteneur est également en cours d’exécution.

J’utilise Amazon Linux 2 sur AWS et cela a fonctionné l’autre jour sur ce même système d’exploitation. CloudFlare est utilisé uniquement pour le DNS de ce domaine.

Voici l’ordre exact de mes actions. Git, docker et ncat ont été installés via amazon-linux-extras, comme indiqué lors de l’installation (mais cela ne devrait pas poser de problème puisque j’avais un forum de développement fonctionnel l’autre jour).

  1. Installer git
  2. Installer et démarrer docker
  3. Installer ncat
  4. Installer Discourse
  5. Installer nginx1.12

Pourquoi as-tu fait cela ?

Question légitime. :joy: Je l’ai fait parce que ça ne fonctionnait plus après l’étape 4… haha. Dois-je désinstaller ?

Oui. Désinstallez.

C’est probablement un problème DNS.

Que renvoie curl localhost ?

Que montre tail /var/discourse/shared/logs/var-log/nginx/access.log ?

Discourse intègre un serveur web dans le conteneur.

curl: (7) Échec de la connexion à localhost port 80 : Connexion refusée

tail : impossible d'ouvrir ' /var/discourse/shared/logs/var-log/nginx/access.log' pour la lecture : Aucun fichier ou dossier de ce type

J’ai effectué l’installation normale, mais j’ai confirmé que le dossier shared n’existe même pas.

Merci pour votre aide, au fait ! Comme je l’ai dit, je sais assez pour être dangereux… et pas toujours dans le bon sens. :smiling_face_with_sunglasses:

Désolé.

tail /var/discourse/shared/standalone/logs/var-log/nginx/access.log

Ou, si c’est toujours incorrect,

find /var/discourse/shared -name access.log

pour voir où se trouve le fichier journal.

Je l’ai trouvé ici :

/var/discourse/shared/standalone/log/var-log/nginx/

Il n’y avait pas de access.log, mais il y avait un error.log.

La même ligne y apparaissait encore et encore (le vrai domaine remplacé par example.com ici) :

2020/04/08 19:46:34 [emerg] 2112#2112: cannot load certificate "/shared/ssl/example.com.cer": PEM_read_bio_X509_AUX() failed (SSL: error:0909006C:PEM routines:get_name:no start line:Expecting: TRUSTED CERTIFICATE)

Je n’ai pas suivi la procédure de certificat avec Let’s Encrypt car j’ai déjà un certificat pour ce domaine. Dois-je quand même utiliser Let’s Encrypt ?

Vous avez besoin d’un certificat.

Vous pouvez rechercher et trouver les instructions d’installation de votre propre certificat, qui indiquent que c’est une corvée énorme, ou vous pouvez en obtenir un gratuitement et sans aucun problème en permettant à Let’s Encrypt de l’obtenir pour vous.

Eh bien, regardez ça. Ça a marché.

Merci @pfaffman et à tous les autres qui ont répondu. :+1:

En fait, je me ravise. Chrome a chargé la fenêtre dans un mode où il affichait le dernier chargement de page réussi, mais un rafraîchissement en navigation privée montre que cela ne fonctionne toujours pas. Échec total de ma part. :man_facepalming:

Y a-t-il un lien expliquant comment configurer le certificat Let’s Encrypt ? J’ai besoin de revoir ce que j’ai fait (ou ce que je n’ai pas fait).

Lancez simplement discourse-setup. Lorsqu’il vous demandera des informations pour Let’s Encrypt, indiquez n’importe quelle adresse e-mail ou la vôtre si vous souhaitez recevoir un e-mail en cas de besoin de renouvellement.

Ok, c’est ce que j’ai fait… J’ai supposé que tout cela était basé sur le guide d’installation, mais j’obtiens toujours des pages vides.

Il semble que Discourse recherche le certificat dans le répertoire /shared/ssl/, mais l’emplacement réel de mon certificat est /shared/standalone/ssl/

Ma configuration app.yml est définie comme suit :

   ## Le conteneur Docker est sans état ; toutes les données sont stockées dans /shared
volumes:
  • volume:
    host: /var/discourse/shared/standalone
    guest: /shared
  • volume:
    host: /var/discourse/shared/standalone/log/var-log
    guest: /var/log

Vous pouvez essayer

cd /var/discourse
rm -r shared/standalone/ssl shared/standalone/letsencrypt
./launcher rebuild app

La ligne rm est de mémoire. Si ces dossiers n’existent pas, indiquez ce que j’aurais dû taper.

Donc, il semble que je sois confronté à une limite de 10 certificats par semaine avec Let’s Encrypt. Je suppose que cela explique en partie pourquoi je ne peux pas continuer au-delà de cette étape.

Voici ce que j’ai trouvé auprès d’une autre personne ayant rencontré ce problème après plusieurs reconstructions : Trouble with SSL after lots of rebuilds - #14 by pfaffman

Donc, je suppose que je n’ai d’autre choix pour le moment que d’installer mon propre certificat que je possède déjà ?