Atualmente, tenho o seguinte problema e ficaria muito feliz se alguém pudesse me ajudar a encontrar a abordagem correta.
Instalei o Discourse em um servidor Ubuntu 21.10 na Vultr.
Segui a configuração padrão e já criei um certificado Let’s Encrypt (para www.example.com) durante a instalação.
Meu objetivo é que meu fórum seja acessível apenas através de www → www.example.com e não example.com.
Situação atual:
→ http://example.com redireciona corretamente (301) para https://www.example.com.
→ http://www.example.com redireciona corretamente (301) para https://www.example.com.
→ https://example.com gera um erro de certificado e não é redirecionado para o https://www.example.com correto (o certificado foi emitido para www.example.com e não para example.com).
Qual é a melhor abordagem para fazer https://example.com redirecionar para https://www.example.com e como posso atingir meu objetivo?
Esta é uma área em que não sou muito bom. Qual seria a maneira recomendada? Atualmente, tenho um registro A para o domínio e o subdomínio www que resolvem para minha instância digital ocean.
Apenas uma rápida atualização para informar o que funcionou para mim.
Eu tentei, mas isso não funcionou para mim. Parecia que nenhum certificado adicional foi emitido.
Eu também tentei resolver meu problema seguindo esta sugestão, mas isso também não funcionou para mim.
A única coisa que resolveu meu problema até agora foi seguir as instruções aqui http://www.forcewww.com/
No entanto, acho que esta ainda não é uma solução desejável, pois depende de um serviço externo. Claro, é gratuito, mas você precisará encontrar uma nova solução assim que este serviço cair.
Espero que você não me entenda mal @michaeld, é realmente uma solução agradável e fácil que você está oferecendo e eu aprecio muito.
Seria algo muito legal se você pudesse decidir durante a instalação padrão ir apenas com uma versão www ou não www para tornar nossas vidas um pouco mais fáceis
Embora eu não tenha testado no último mês, tenho certeza de que funciona. Se você não configurou seu DNS corretamente e o executou várias vezes, então você foi limitado pela taxa.
Você quer dizer “e solicitar um certificado com ambos os nomes de host?” Isso é muito difícil. A probabilidade de quebrar coisas para muitas pessoas que não sabem como configurar o DNS dessa maneira é muito, muito alta.
Se você criar um certificado para a versão apex e a versão www, você terá ambas cobertas. :smiley Como você afirmou, o certificado não inclui seu domínio apex… daí o erro.
Seus redirecionamentos devem ser:
http://example.com → https://example.com
http://www.example.com → https://www.example.com.
Em seguida, redirecione https://example.com → https://www.example.com (seu domínio preferido declarado).
Assim, não importa se alguém digita o domínio apex ou a versão www, eles acessarão seu https://www.example.com sem erros. A melhor prática é incluir tanto o apex quanto o www em seu certificado. Apenas certifique-se de que seu certificado alterado/novo seja o que está sendo servido pelo seu servidor, e não o antigo.
Eu vejo. E agora que você mencionou, vou começar a me lembrar — esse foi o segundo motivo pelo qual coloquei o Discourse atrás do Nginx “normal”. O primeiro motivo foi a necessidade de fazer alguma filtragem. Bem, minha solução não é nada sofisticada ou tecnicamente exigente, mas não é tão popular neste círculo.
Devo dizer que o docker não é uma solução muito amigável se uma coisa tão trivial precisa ser feita usando um serviço web de terceiros. Caso contrário, o docker deve ser muito útil, suponho, a menos que não se torne tão popular.
Obrigado pelo conselho @pfaffman. Vou tentar novamente durante o fim de semana.
E sobre o segundo tópico. Entendo seu ponto, mas isso pode ser algo como uma configuração avançada ou opcional, porque é realmente crucial que o mesmo conteúdo seja acessível apenas através de um domínio.
Na verdade, não é (a menos que o próprio Discourse não funcione). Mas se você estiver se referindo a SEO e Google, esse problema de subdomínio não é tão sério há muito tempo. O Google pode lidar com isso, porque há apenas um domínio — um é um FQDN stub’ish e um com www é o real.