Générer des liens https sur le port 80

Je dois configurer le serveur pour qu’il écoute le port 80, mais qu’il renvoie des liens en HTTPS. Comment résoudre ce problème ?

Ma configuration actuelle fonctionne comme suit et tous les liens sont en HTTP :
expose:
# - “443:443” # https
- “80:80” # https

J’ai essayé de renommer le port en 443, mais cela a échoué.

Je ne pense pas que ce soit possible.

1 « J'aime »

Let’s Encrypt est assez strict, et je ne pense donc pas qu’ils fourniront des certificats SSL pour un port autre que 443, pour des raisons de sécurité.

2 « J'aime »

Peut-être activer le paramètre de site force https ?

1 « J'aime »

Pourriez-vous m’expliquer pourquoi vous devez faire cela ?

1 « J'aime »

Il existe un serveur interne sur lequel Discourse est installé et qui écoute sur le port 80. Lorsqu’un visiteur demande un site, celui-ci s’ouvre toujours en https (redirection), mais tous les liens sont en http. Je ne contrôle pas cette infrastructure, mais à part le port 80, je n’ai aucune autre issue.

J’ai peur que cela ne fonctionne pas dans mon cas, car je n’utilise pas réellement le protocole https.

Je peux le désactiver, mais il me semble que cela ne résoudra pas le problème, car l’activation de HTTPS sur le port 80 est impossible à cause de SSL.

Discourse ne prend pas en charge l’exécution sur des ports non standard.

Cela inclut l’exécution de https sur le port 80.

1 « J'aime »

Voulez-vous dire que vous avez une configuration de proxy inverse ailleurs qui gère le SSL pour tous vos sites, y compris Discourse ?

1 « J'aime »

L’avez-vous essayé ?

Alors, que cherchez-vous à faire ?

Cela ne signifie-t-il pas que vous souhaitez que les liens sur les pages servies soient en HTTPS et que vous gérez le HTTPS d’une autre manière ?

Désolé, je ne suis pas tout à fait sûr de comprendre vos messages.

Vous avez dit :

Je dois configurer le serveur pour qu’il écoute le port 80, mais qu’il renvoie des liens en HTTPS. Comment résoudre ce problème ?

Si je comprends bien, vous souhaitez que tout le trafic HTTP sur le port 80 soit redirigé vers le port 443 en HTTPS, et que vous ne vouliez pas envoyer de trafic HTTPS sur le port 80, mais uniquement rediriger le port 80 vers le port 443.

Si c’est le cas, c’est ainsi que la plupart des serveurs web sont configurés ; par exemple, si vous utilisez Let’s Encrypt pour configurer votre trafic sur le port 443 avec Apache2 ou nginx, Let’s Encrypt vous demandera si vous souhaitez configurer cette redirection et le fera pour vous.

Comme l’a demandé @Falco, quelle est votre configuration exacte ? Exécutez-vous un serveur web comme nginx ou Apache2 devant Discourse en tant que proxy inverse ?

Si oui, lorsque vous configurez Let’s Encrypt sur nginx ou Apache2, le logiciel de configuration de Let’s Encrypt configurera automatiquement la « redirection de tout le HTTP vers HTTPS » pour vous (si vous sélectionnez « oui » lorsque la boîte de dialogue de configuration le demande).

2 « J'aime »

Oui, ils m’ont bien compris


Je ne peux plus ouvrir d’autres ports, et il y a un proxy inverse qui rend le site en HTTPS, mais pas les liens à l’intérieur de Discourse

Hmm, mon flux de sortie de Discourse est toujours sur le port 80. Je ne peux pas écouter d’autres ports, et il n’y a rien de Let’s Encrypt à ce sujet.

Bonjour @anton21m

Oui, nous comprenons maintenant plus clairement que vous avez un proxy inverse devant votre conteneur.

Quel est le proxy inverse que vous utilisez, nginx ? Apache2 ?

serveur : nginx/1.14.1
Mais je n’y ai pas accès
https://forum.qpay.uz/

Vous pouvez constater que tous les liens sont en http

C’est un nouveau site Discourse très propre et bien présenté, @anton21m.

Nous comprenons tous parfaitement votre situation maintenant. Merci.

Si vous n’avez pas accès à nginx ou au système, vous devez demander à votre administrateur système d’installer LetsEncrypt et d’ajouter SSL à votre site.

C’est vraiment votre seule option si vous souhaitez rester chez ce fournisseur d’hébergement et que vous n’avez pas accès à nginx.

Désolé de vous l’annoncer. Peut-être devriez-vous envisager un autre fournisseur d’hébergement ?

1 « J'aime »

Il est donc clair que c’est impossible !!!
Je souhaiterais trouver une solution comme celle-ci

Cette « solution souhaitée » dont vous parlez est exactement ce que nous vous avons conseillé de faire ; par exemple, configurer votre serveur web pour rediriger le trafic du port 80 vers le port 443.

Et cette solution nécessite que vous modifiiez le serveur web, tout comme on vous l’a déjà conseillé.

Donc, @anton21m, nous commençons à tourner en rond…

Mais laissez-moi le répéter encore une fois, uniquement pour vous, @anton21m :slight_smile: :slight_smile: car nous voulons que vous réussissiez !

Vous devez avoir accès au serveur web et le configurer de manière à ce que le trafic du port 80 soit redirigé vers le port 443, et vous devez installer les certificats SSL sur le même serveur web. Si votre fournisseur d’hébergement ne le permet pas, vous devez alors passer à un autre fournisseur d’hébergement.

Vous pourriez envisager de l’héberger chez l’un des fournisseurs d’hébergement recommandés par Discourse, car ils s’occuperont de tout cela facilement pour vous.

J’espère que cela vous aidera.

Recommandé :

1 « J'aime »

Vous devriez pouvoir y parvenir en activant le paramètre de site force_https de Discourse.

3 « J'aime »