Não www para www sem erro de certificado

Olá comunidade,

Atualmente, tenho o seguinte problema e ficaria muito feliz se alguém pudesse me ajudar a encontrar a abordagem correta.

  1. Instalei o Discourse em um servidor Ubuntu 21.10 na Vultr.
  2. 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 wwwwww.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?

Atenciosamente,
Elmi

1 curtida

Segui este conselho e adicionei uma linha ao meu app.yml:

Embora eu não me importe se as pessoas me encontrarem no domínio raiz ou no subdomínio www, então eu não tentei com redirecionamentos.

2 curtidas

Cuidado com conteúdo duplicado nos motores de busca.

3 curtidas

Esta é uma área em que não sou muito bom. :slightly_smiling_face: 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.

2 curtidas

A maneira mais fácil é usar o www.forcewww.com para isso. (Aviso: esse é o meu próprio serviço)

4 curtidas

Muito obrigado pelo seu feedback @JammyDodger. Vou tentar, embora pareça que lida com um problema ligeiramente diferente. Mas talvez funcione.

É uma boa prática ter apenas uma versão do seu site. Duplicate Content: Why does it happen and how to fix issues - Moz

2 curtidas

Esse redirecionamento é tão trivial em qualquer servidor web e uma pesquisa no Google revela como fazê-lo. Por que é diferente aqui?

2 curtidas

Tenho quase certeza de que, se você solicitar ambos os certificados, ele redirecionará como você deseja. A solução forcewww.com é mais fácil.

Porque está dentro de um contêiner Docker e nenhuma das soluções dentro do host que você encontra em qualquer outro lugar provavelmente será útil.

2 curtidas

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 :slight_smile:

2 curtidas

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.

2 curtidas

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.comhttps://example.com
  • http://www.example.comhttps://www.example.com.
  • Em seguida, redirecione https://example.comhttps://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.

2 curtidas

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.

2 curtidas

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.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.