Après activation de HTTPS, Discourse ne fonctionne plus

Bonjour,

Après avoir activé les modèles Lets Encrypt et reconstruit Discourse, rien ne fonctionne :

NGINX affiche une erreur cryptique :

Ce qui est étrange, c’est qu’il n’y a pas de répertoire nginx dans /ETC.

Ces modèles sont actifs :

Voici les paramètres avec lesquels l’application a été reconstruite :

Quelle pourrait être la cause de ces problèmes ?
Je pense que le certificat devrait être émis pour le nom d’hôte : discourse.itas-karlsruhe.de

J’ai déjà vérifié avec le launcher si l’application fonctionne vraiment… Oui, elle fonctionne…

I.

il semble que vous soyez dans votre répertoire personnel (~) lorsque vous tapez cd etc. cd /etc/nginx devrait fonctionner.

1 « J'aime »

Non, je l’ai vérifié dans le bon répertoire :

Si vous avez effectué une installation Docker standard, vous devrez également accéder à l’application en premier.

cd /var/discourse
./launcher enter app

En supposant que cela réussisse, vous pouvez afficher la ligne 46 du fichier de configuration avec sed :

sed -n '46p' /etc/nginx/conf.d/discourse.conf

Avec les mêmes modèles que vous et sans modifications spécifiques à ce fichier de configuration, je vois ceci :

  return 301 https://discourse.softpress.com$request_uri;
1 « J'aime »

Merci.
J’ai trouvé ce qui suit :

image

Comme vous pouvez le voir, le champ « Nom d’hôte Discourse » est rempli dans app.yml :

Il semble que la substitution du nom d’hôte échoue pour une raison quelconque, mais je ne suis pas sûr de savoir pourquoi. Lorsque vous avez reconstruit Discourse, l’avez-vous fait en exécutant ces commandes ?

cd /var/discourse
./launcher rebuild app

La seule différence que je vois entre votre configuration et la mienne est l’utilisation d’un tiret dans le nom de domaine, mais je serais très surpris que cela puisse causer un problème.

Ouais, c’est comme ça que j’ai reconstruit l’application…

Après la reconstruction, tout semble fonctionner :

Si vous avez reconstruit plusieurs fois, vous avez atteint les limites de taux de Let’s Encrypt.

Il n’y a pas de nginx sur le serveur, il est à l’intérieur du conteneur Discourse. C’est pourquoi vous ne pouvez pas le trouver.

Donc vous avez résolu votre problème en reconstruisant ?

Vous devriez marquer ce message comme la solution.

Je voulais simplement dire que je n’ai trouvé aucune erreur ni rien de tel dans le journal. (Voir capture d’écran)
Le processus de construction SEMBLE correct…

J’ai maintenant demandé le nom de domaine final. Je reconstruirai l’application avec celui-ci.

Après avoir supprimé tous les paramètres spécifiques à Let’s Encrypt et utilisé le nom d’hôte original de la machine virtuelle, tout fonctionne. Je ne sais pas ce qui ne va pas avec ces paramètres.

Bonjour Simon,

Je l’ai reconstruit à nouveau et j’ai constaté que le certificat a été émis avec le mauvais nom :

Est-il possible que le fichier app.yml soit mal configuré ?

app.txt (4,1 Ko)

Que voulez-vous dire ?

Je

ligne 51

DISCOURSE_HOSTNAME: deinbalkonnetz.de

ce n’est pas votre fichier de configuration. D’où l’avez-vous obtenu ?

???

C’est bien mon fichier de configuration… Nous avons redirigé ce domaine vers notre machine virtuelle et j’essaie de configurer Discourse sur ce serveur…

ensuite, partout dans la configuration où figure deinbalkonnetz.de, vous devez le modifier.

ensuite, vous devez reconstruire l’application.

Que voulez-vous dire par « partout » ?
Le nom d’hôte n’est utilisé qu’à la ligne 51…

Je ne connais pas d’autres fichiers de configuration que app.yml…

Cela pourrait peut-être vous aider ?

1 « J'aime »

Merci Jammy,

ce sont des points importants, sans aucun doute.

Le problème, c’est que mon nom d’hôte n’est pas utilisé du tout :
DISCOURSE_HOSTNAME: ‘deinbalkonnetz.de

Je pense qu’au lieu du nom de la variable, le vrai nom d’hôte « deinbalkonnetz.de » devrait être utilisé dans le certificat.

Pouvez-vous ajouter http://deinbalkonnetz.de/ comme deuxième domaine au certificat Let’s Encrypt, en guise de solution de contournement possible ?