Certificados curinga SSL e à direita 'www'

2

Eu tenho um certificado SSL curinga para * .example.com.

Estou usando o nginx e redirecionando todo o tráfego de http para https e também reescrevendo os URLs sem um www à direita (se houver um).

Então tem,

  1. http://subdomain.example.com --- > https://subdomain.example.com
  2. http://www.subdomain.example.com --- > https://subdomain.example.com
  3. https://www.subdomain.example.com --- > %código%
  4. https://subdomain.example.com --- > %código%

No entanto, como meu certificado é para * .example.com, o caso 3 recebe um erro SSL no chrome ("Este provavelmente não é o site que você está procurando!"), mas se você clicar nele ele será redirecionado e tudo está bem.

Eu entendo o porquê, já que a conexão inicial é para https com um www (2 níveis de subdomínios), que não corresponde ao que está no certificado curinga.

Eu pensei que uma solução seria obter um certificado adicional para https://subdomain.example.com para cobrir https://subdomain.example.com . Mas parece que não vai funcionar. Falei com agentes do namecheap e do comodo, e ambos disseram que *.*.example.com não era possível. Eu também deparei com este artigo

Existe uma solução para isso? Para poder cobrir www.*.example.com ?

    
por user173326 03.07.2013 / 16:56

3 respostas

3

Certices curinga só vão um nível de profundidade. Você precisará obter um caractere curinga que também tenha nomes alternativos de assunto para todos os www.<subdomain>.example.com sites. Isso permitirá que o redirecionamento aconteça.

Qualquer outra solução além de colocar certificados válidos em subdomínios de dois níveis de profundidade não funcionará, porque o handshake SSL sempre ocorrerá antes de qualquer redirecionamento ou reescrita.

    
por 03.07.2013 / 17:43
1

Uma pequena solução alternativa é reescrever URLs antes de estabelecer a conexão SSL, mas você nunca obterá o link funcionando sem um aviso antes de obter o certificado para este nome de domínio. Algo assim:

server {
 listen 111.222.333.444:80;
 server_name www.subdomain.mydomain.com;

 rewrite ^ https://$host$request_uri permanent;
}

server {
 listen 111.222.333.444:443
 server_name subdomain.mydomain.com
 ssl on;
 ...
}
    
por 03.07.2013 / 18:04
0

O problema é como os certificados curinga funcionam. Eles só funcionam em subdomínios de primeiro nível, como você está vendo. Para contornar isso, você gostaria de usar um registro PTR para apontar www.subdomínio.domínio.com para subdomínio.domínio.com e ele deve ficar invisível para o servidor.

    
por 03.07.2013 / 17:38