¿Por qué https://gmail.com/ no produce ningún error de SSL al utilizar un certificado incorrecto?

¿Por qué https://gmail.com/ no produce ningún error de SSL al utilizar un certificado incorrecto?

Parece quehttps://gmail.comutiliza un certificado SSL que es para el nombre de host mail.google.com. Como el nombre de host del certificado SSL no coincide con la URL del navegador, ¿por qué funciona esto? ¡Debería recibir una advertencia en su lugar!

Probé con Firefox y Chromium (pareceno funcionó antes).

Revisé el certificado con el comando: echo | openssl s_client -connect gmail.com:443que da:

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

Respuesta1

gmail.com usa un buen certificado, pero el servidor al que se está conectando está usandoIndicación del nombre del servidorpara ejecutar hosts virtuales en una sola dirección+puerto. Para que esto funcione, el cliente debe decirle al servidor qué host virtual está buscando antes de realizar la negociación SSL/TLS. Firefox y Chromium (y otros clientes de tamaño similar) hacen esto automáticamente.

Para obtener el certificado efectivo con openssl s_client, debe utilizar la -servernameopción.

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

resultados de google paralince snino te ves bien.

Respuesta2

https://gmail.com/no utiliza un certificado incorrecto. Aquí está su certificado actual, interceptado por 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

Nota la CN=gmail.com.

El tipo de respuesta real de la solicitud HTTP es 301 Moved Permanentlya https://mail.google.com/. Esto tiene dos efectos:

  1. El navegador redirigirá al destino, realizando una nueva solicitud, con un nuevo túnel (porque diferente dominio) y diferente certificado. Por eso ves un mail.google.comcertificado: este esdespuésla redirección. Si miras la barra de direcciones, el sitio real en el que te encuentras es http://mail.google.com/, no http://gmail.com/. Es un poco difícil capturar el certificado previo a la redirección en un navegador, por eso usé Fiddler2.

  2. El navegador almacenará en caché esta redirección y la realizará automáticamente en el futuro, sin realizar nunca otra solicitud https://gmail.com/(ese es el objetivo de Moved Permanently). Esto no es realmente significativo para esta pregunta, pero hace que sea un poco más difícil descubrir la redirección: primero debes borrar tus cachés o abrir una ventana de navegación privada.

información relacionada