Genera link https sulla porta 80

Devo implementare il server in modo che ascolti sulla porta 80 ma restituisca link in https. Come posso risolvere questo problema?

La mia configurazione attuale funziona così e tutti i link sono in http:
expose:
# - “443:443” # https
- “80:80” # https

Ho provato a rinominare in 443 ma non funziona.

Non credo che sia possibile farlo.

Let’s Encrypt è piuttosto rigido e quindi non credo che fornirà certificati SSL per qualsiasi porta diversa dalla 443, per motivi di sicurezza.

Forse dovresti attivare l’impostazione del sito force https?

Potresti spiegare perché devi fare questo?

Esiste un server interno su cui è installato Discourse ed è in ascolto sulla porta 80. Quando un visitatore richiede un sito, questo viene sempre aperto in HTTPS (reindirizzamento), ma tutti i link sono in HTTP. Non ho il controllo di questa infrastruttura, ma oltre alla porta 80 non ho altre vie di accesso.

Temo che nel mio caso questo non funzionerà, poiché in realtà non lavoro con HTTPS.

Posso disattivarlo, ma mi sembra che questo non risolverà il problema, poiché l’attivazione di HTTPS sulla porta 80 è impossibile a causa di SSL.

Discourse non supporta l’esecuzione su porte non standard.

Ciò include l’esecuzione di https sulla porta 80.

Vuoi dire che hai un proxy inverso configurato altrove che gestisce l’SSL per tutti i tuoi siti, incluso Discourse?

L’hai provato?

Allora cosa stai cercando di fare?

Non significa che vuoi che i link nelle pagine servite siano in https e che tu stia gestendo https in un altro modo?

Scusa, non ho capito completamente i tuoi messaggi.

Hai detto,

Devo configurare il server in modo che ascolti sulla porta 80 ma restituisca link in https. Come posso risolvere questo problema?

Se ho interpretato correttamente, vuoi che tutto il traffico HTTP sulla porta 80 venga reindirizzato alla porta 443 HTTPS, e non vuoi inviare traffico HTTPS sulla porta 80, ma solo reindirizzare la porta 80 alla porta 443.

Se è così, questa è la configurazione standard della maggior parte dei server web; ad esempio, se usi LetsEncrypt per configurare il traffico sulla porta 443 con Apache2 o nginx, LetsEncrypt ti chiederà se desideri impostare questo reindirizzamento e lo eseguirà per te.

Come ha chiesto @Falco, qual è la tua configurazione esatta? Stai eseguendo un server web come nginx o Apache2 davanti a Discourse come reverse proxy?

Se sì, quando configuri LetsEncrypt su nginx o Apache2, il software di configurazione di LetsEncrypt imposterà automaticamente il “reindirizzamento di tutto l’HTTP a HTTPS” per te (se selezioni “sì” quando il dialogo di configurazione lo richiede).

Sì, mi hanno capito correttamente


Non riesco più ad aprire altre porte e c’è un reverse proxy che rende il sito HTTPS, ma non i link all’interno di Discourse

Hmm, il mio flusso di output da Discourse è sempre 80. Non posso ascoltare altre porte e non c’è nulla di Let’s Encrypt al riguardo.

Ciao @anton21m,

Sì, ora abbiamo capito meglio che hai un reverse proxy davanti al tuo container.

Quale reverse proxy stai utilizzando, nginx? Apache2?

server: nginx/1.14.1
Ma non ho accesso ad esso
https://forum.qpay.uz/

Puoi vedere che tutti i link sono http

Che bel sito Discourse nuovo e pulito, @anton21m

Capiamo perfettamente la tua situazione ora. Grazie.

Se non hai accesso a nginx o al sistema, devi chiedere al tuo amministratore di sistema di installare LetsEncrypt e aggiungere SSL al tuo sito.

Questa è davvero l’unica opzione se intendi rimanere con quel provider di hosting e non hai accesso a nginx.

Mi dispiace doverlo comunicare. Forse dovresti considerare un altro provider di hosting?

Chiaramente, allora questo è impossibile !!!
Vorrei trovare una soluzione come questa

Quella “soluzione desiderata” di cui parli è esattamente ciò che ti abbiamo consigliato di fare; ad esempio, configurare il tuo server web per reindirizzare il traffico della porta 80 alla porta 443.

E quella soluzione richiede di modificare il server web, esattamente come ti è stato consigliato.

Quindi, @anton21m, stiamo iniziando a girare a vuoto…

Ma lasciami ripeterlo ancora una volta, proprio per te @anton21m :slight_smile: :slight_smile: perché vogliamo che tu abbia successo!

Devi avere accesso al server web e configurarlo in modo che il traffico della porta 80 venga reindirizzato alla porta 443, e devi anche configurare i certificati SSL sullo stesso server web. Se il tuo provider di hosting non lo consente, dovrai passare a un altro provider.

Potresti prendere in considerazione l’idea di ospitarlo con uno dei provider di hosting consigliati da Discourse, poiché si occuperanno di tutto questo per te in modo semplice.

Speriamo che questo ti aiuti.

Consigliato:

Dovresti essere in grado di ottenere ciò attivando l’impostazione del sito force_https di Discourse.