Gerar links https na porta 80

Preciso implementar o servidor para que ele escute na porta 80, mas forneça links em HTTPS. Como posso resolver esse problema?

Minha configuração atual funciona assim e todos os links estão em HTTP:
expose:
# - “443:443” # https
- “80:80” # https

Tentei renomear para 443, mas falhei.

Não acho que isso seja possível de fazer.

O Let’s Encrypt é bastante rigoroso e, por isso, acredito que eles não fornecerão certificados SSL para nenhuma porta além da 443, por motivos de segurança.

Talvez ative a configuração do site force https?

Você poderia explicar por que precisa fazer isso?

Existe um servidor interno onde o Discourse está instalado e que escuta na porta 80. Quando um visitante solicita um site, ele sempre abre em HTTPS (há redirecionamento), mas todos os links permanecem em HTTP. Não tenho controle sobre essa infraestrutura, e além da porta 80, não tenho outra saída.

Tenho medo de que, no meu caso, isso não funcione, pois na verdade não trabalho com https.

Posso desativá-lo, mas parece-me que isso não resolverá o problema, já que habilitar HTTPS na porta 80 é impossível por causa do SSL.

O Discourse não suporta execução em portas não padrão.

Isso inclui a execução de HTTPS na porta 80.

Você está se referindo a ter uma configuração de proxy reverso em outro lugar que está lidando com SSL para todos os seus sites, incluindo o Discourse?

Você já tentou?

Então o que você está tentando fazer?

Isso não significa que você quer que os links nas páginas servidas sejam HTTPS e que você está lidando com HTTPS de outra forma?

Desculpe, não estou acompanhando (compreendendo totalmente) suas mensagens.

Você disse,

Preciso configurar o servidor para que ele escute a porta 80, mas forneça links em HTTPS. Como posso resolver esse problema?

Se entendi corretamente, você deseja que todo o tráfego HTTP da porta 80 seja redirecionado para a porta 443 HTTPS, e que não envie tráfego HTTPS na porta 80, apenas redirecione a porta 80 para a porta 443.

Se for esse o caso, é assim que a maioria dos servidores web é configurada; e, por exemplo, se você usar o LetsEncrypt para configurar seu tráfego na porta 443 usando o Apache2 ou o nginx, o LetsEncrypt perguntará se deseja configurar esse redirecionamento e fará isso por você.

Como perguntou @Falco, qual é a sua configuração exata? Você está executando um servidor web como o nginx ou o Apache2 na frente do Discourse como um proxy reverso?

Se for esse o caso, ao configurar o LetsEncrypt no nginx ou no Apache2, o software de configuração do LetsEncrypt configurará automaticamente o “redirecionar todo o HTTP para HTTPS” para você (se você selecionar “sim” quando o diálogo de configuração perguntar).

Sim, eles me entenderam corretamente


Não consigo mais abrir outras portas, e há um proxy reverso que torna o site HTTPS, mas não os links internos do Discourse.

Hmm, minha saída do Discourse é sempre na porta 80. Não consigo ouvir outras portas e não há nada sobre o Let’s Encrypt nisso.

Olá @anton21m,

Sim, agora entendemos mais claramente que você tem um proxy reverso na frente do seu container.

Qual proxy reverso você está usando, nginx? Apache2?

servidor: nginx/1.14.1
Mas não tenho acesso a ele
https://forum.qpay.uz/

Você pode ver que todos os links são http

Que site Discourse novo e limpo, @anton21m!

Entendemos perfeitamente sua situação agora. Obrigado.

Se você não tem acesso ao nginx ou ao sistema, precisa pedir ao seu administrador de sistema para instalar o LetsEncrypt e adicionar SSL ao seu site.

Essa é realmente sua única opção se você pretende continuar com esse provedor de hospedagem e não tem acesso ao nginx.

Sinto muito em informar isso. Talvez considere outro provedor de hospedagem?

Claramente, então, isso é impossível !!!
Gostaria de encontrar uma solução como esta

Essa “solução desejada” da qual você está falando é exatamente o que recomendamos que você fizesse; por exemplo, configurar seu servidor web para redirecionar o tráfego da porta 80 para a porta 443.

E essa solução exige que você modifique o servidor web, da mesma forma como você já foi orientado.

Então, @anton21m, estamos começando a dar voltas…

Mas deixe-me repetir novamente, só para você, @anton21m :slight_smile: :slight_smile: porque queremos que você tenha sucesso!

Você precisa ter acesso ao servidor web e configurá-lo de modo que o tráfego da porta 80 seja redirecionado para a porta 443, além de configurar os certificados SSL no mesmo servidor web. Se seu provedor de hospedagem não permitir isso, você precisará migrar para outro provedor.

Você pode considerar hospedar em um dos provedores de hospedagem recomendados pelo Discourse, pois eles farão tudo isso para você com facilidade.

Esperamos que isso ajude.

Recomendado:

Você deve ser capaz de alcançar isso ativando a configuração de site force_https do Discourse.