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

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

Parecehttps://gmail.comusa 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 Firefox e Chromium (parecenão funcionou antes).

Verifiquei o certificado com o comando: echo | openssl s_client -connect gmail.com:443que dá:

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

Responder1

gmail.com usa um bom certificado, mas o servidor ao qual você está se conectando está usandoIndicação do nome do servidorpara executar hosts virtuais em um único endereço + porta. Para que isso funcione, o cliente deve informar ao servidor qual host virtual ele está procurando antes que a negociação SSL/TLS seja concluída. Firefox e Chromium (e outros clientes de tamanho semelhante) fazem isso automaticamente.

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

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

Resultados do Google paralince SNInão parece bem.

Responder2

https://gmail.com/não usa um certificado incorreto. Aqui está seu certificado atual, 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

Note o CN=gmail.com.

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

  1. O navegador irá redirecionar para o destino, fazendo uma nova solicitação, com um novo túnel (porque domínio diferente) e certificado diferente. É por isso que você vê um mail.google.comcertificado - este édepoiso redirecionamento. Se você olhar a barra de endereço, verá que o site em que você está é http://mail.google.com/, não http://gmail.com/. É um pouco difícil capturar 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 https://gmail.com/(esse é o objetivo Moved Permanently). Isso não é realmente significativo para esta questão, mas torna um pouco mais difícil descobrir o redirecionamento - você precisa primeiro limpar seus caches ou abrir uma janela de navegação privada.

informação relacionada