Por que o https://gmail.com/ não produz nenhum erro SSL ao usar um certificado inválido?

5

Parece que o link usa um certificado SSL que é para o nome do host mail.google.com . Como o nome do host do certificado SSL não corresponde ao URL do navegador, por que isso funciona? Eu deveria receber um aviso em vez disso!

Testei com o Firefox e o Chromium (parece que não funcionou antes ).

Eu verifiquei o certificado com o comando: echo | openssl s_client -connect gmail.com:443 , que fornece:

Certificate chain
 0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=mail.google.com
    
por Totor 28.07.2014 / 16:55

2 respostas

7
gmail.com usa um bom certificado, mas o servidor ao qual você está se conectando está usando Indicação de nome de servidor para executar virtual hosts em um único endereço + porta. Para que isso funcione, o cliente deve informar ao servidor qual host virtual está procurando antes que a negociação SSL / TLS seja feita. O Firefox e o Chromium (e outros clientes de tamanho similar) fazem isso automaticamente.

Para obter o certificado efetivo com openssl s_client , você precisa usar a opção -servername .

openssl s_client -servername gmail.com -connect gmail.com:443

Os resultados do Google para o SNI do lince não parecem bons.

    
por 28.07.2014 / 21:30
9

https://gmail.com/ não usa um certificado inválido. Aqui está o seu certificado atual, como interceptado pelo Fiddler2:

== Server Certificate ==========
[Subject]
  CN=gmail.com, O=Google Inc, L=Mountain View, S=California, C=US

[Issuer]
  CN=Google Internet Authority G2, O=Google Inc, C=US

[Serial Number]
  4F4A246099981C2C

[Not Before]
  16/07/2014 10:04:37 PM

[Not After]
  14/10/2014 11:00:00 AM

[Thumbprint]
  8F1065D237732F71CAD350A3FD0089AEEAAB675E

Observe o CN=gmail.com .

O tipo de resposta real da solicitação HTTP é de 301 Moved Permanently a https://mail.google.com/ . Isso tem dois efeitos:

  1. O navegador redirecionará para o destino, fazendo uma nova solicitação, com um novo túnel (porque domínio diferente) e um certificado diferente. É por isso que você vê um certificado mail.google.com - isso é após o redirecionamento. Se você observar a barra de endereço, o site real em que você está é http://mail.google.com/ , não http://gmail.com/ . É um pouco difícil pegar o certificado de pré-redirecionamento em um navegador, e é por isso que usei o Fiddler2.

  2. O navegador armazenará esse redirecionamento em cache e o executará automaticamente no futuro, nunca fazendo outra solicitação para https://gmail.com/ (esse é o ponto de Moved Permanently ). Isso não é realmente significativo para essa questão, mas torna um pouco mais difícil descobrir o redirecionamento - você precisa limpar seus caches ou abrir uma janela de navegação privada primeiro.

por 28.07.2014 / 17:20