El dominio falso ".dev" agregado al archivo de hosts con fines de desarrollo redirige a HTTPS en Chrome en Windows incluso cuando el servidor de desarrollo local no está activo

El dominio falso ".dev" agregado al archivo de hosts con fines de desarrollo redirige a HTTPS en Chrome en Windows incluso cuando el servidor de desarrollo local no está activo

estoy construyendo unexpreso.jsaplicación localmente. Para probar esto en algo que no sea localhost, agregué la siguiente entrada a mi archivo de hosts:

127.0.0.1       mynewapp.dev

Sin siquiera iniciar la aplicación, lo intenté accidentalmente http://mynewapp.dev:3000(aquí es donde pretendía que se ejecutara la aplicación) en Chrome. Para mi sorpresa, Chrome me redirigió a https://mynewapp.dev:3000.

Los encabezados en la consola del navegador muestran:

General:

  • URL de solicitud:http://mynewapp.dev:3000/
  • Método de solicitud: OBTENER
  • Código de estado: 307 Redirección interna
  • Política de referencia: sin referencia cuando se baja de categoría

Encabezados de respuesta:

  • Ubicación:https://mynewapp.dev:3000/
  • Motivo no autoritativo: HSTS

Encabezados de solicitud:

  • Se muestran encabezados provisionales.
  • Solicitudes de actualización inseguras: 1
  • Agente de usuario: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como
  • Gecko) Chrome/68.0.3440.106 Safari/537.36
  • X-DevTools-Emulate-Network-Conditions-Client-Id: 23A0CBD658A51DF4CA3B25A263078DA4

¿Cómo pasó esto?¡No tengo ningún software que redirija la solicitud y mi aplicación ni siquiera se está ejecutando!

Estoy usando:

  • Versión de Chrome 68.0.3440.106 (compilación oficial) (64 bits)
  • Windows 10 Empresa

Sin embargo esto no sucede en:

  • Microsoft Edge 40.15063.674.0 (muestra el código de error: INET_E_RESOURCE_NOT_FOUND)
  • IE 11 (muestra código de error: INET_E_RESOURCE_NOT_FOUND)

Para responder a los comentarios:

  • curl -I http://mynewapp.dev:3000se queda atascado y no muestra nada.
  • También lo intenté chrome://net-internals/#eventsy encontré la solicitud. Esto es lo que vi:

    100382: URL_REQUEST
    http://mynewapp.dev:3000/
    Start Time: 2018-08-17 07:32:03.853
    
    t=16751 [st=   0] +REQUEST_ALIVE  [dt=1007]
                       --> priority = "HIGHEST"
                       --> url = "http://mynewapp.dev:3000/"
    t=16751 [st=   0]   +URL_REQUEST_DELEGATE  [dt=1]
    t=16751 [st=   0]      DELEGATE_INFO  [dt=1]
                           --> delegate_blocked_by = "extension AdBlock"
    t=16752 [st=   1]   -URL_REQUEST_DELEGATE
    t=16752 [st=   1]   +URL_REQUEST_START_JOB  [dt=6]
                         --> load_flags = 18432 (MAIN_FRAME_DEPRECATED | MAYBE_USER_GESTURE)
                         --> method = "GET"
                         --> url = "http://mynewapp.dev:3000/"
    t=16752 [st=   1]      URL_REQUEST_REDIRECT_JOB
                           --> reason = "HSTS"
    t=16752 [st=   1]      URL_REQUEST_FAKE_RESPONSE_HEADERS_CREATED
                           --> HTTP/1.1 307 Internal Redirect
                               Location: https://mynewapp.dev:3000/
                               Non-Authoritative-Reason: HSTS
    t=16752 [st=   1]     +URL_REQUEST_DELEGATE  [dt=6]
    t=16752 [st=   1]        DELEGATE_INFO  [dt=6]
                             --> delegate_blocked_by = "MojoAsyncResourceHandler"
    t=16758 [st=   7]     -URL_REQUEST_DELEGATE
    t=16758 [st=   7]      URL_REQUEST_REDIRECTED
                           --> location = "https://mynewapp.dev:3000/"
    t=16758 [st=   7]   -URL_REQUEST_START_JOB
    t=16758 [st=   7]   +URL_REQUEST_DELEGATE  [dt=0]
    t=16758 [st=   7]      DELEGATE_INFO  [dt=0]
                           --> delegate_blocked_by = "extension AdBlock"
    t=16758 [st=   7]   -URL_REQUEST_DELEGATE
    t=16758 [st=   7]   +URL_REQUEST_START_JOB  [dt=1000]
                         --> load_flags = 18432 (MAIN_FRAME_DEPRECATED | MAYBE_USER_GESTURE)
                         --> method = "GET"
                         --> url = "https://mynewapp.dev:3000/"
    t=16759 [st=   8]      URL_REQUEST_DELEGATE  [dt=0]
    t=16759 [st=   8]      HTTP_CACHE_GET_BACKEND  [dt=0]
    t=16759 [st=   8]      HTTP_CACHE_OPEN_ENTRY  [dt=0]
                           --> net_error = -2 (ERR_FAILED)
    t=16759 [st=   8]      HTTP_CACHE_CREATE_ENTRY  [dt=0]
    t=16759 [st=   8]      HTTP_CACHE_ADD_TO_ENTRY  [dt=0]
    t=16759 [st=   8]     +HTTP_STREAM_REQUEST  [dt=999]
    t=16759 [st=   8]        HTTP_STREAM_JOB_CONTROLLER_BOUND
                             --> source_dependency = 100392 (HTTP_STREAM_JOB_CONTROLLER)
    t=17758 [st=1007]        HTTP_STREAM_REQUEST_BOUND_TO_JOB
                             --> source_dependency = 100393 (HTTP_STREAM_JOB)
    t=17758 [st=1007]     -HTTP_STREAM_REQUEST
    t=17758 [st=1007]   -URL_REQUEST_START_JOB
                         --> net_error = -102 (ERR_CONNECTION_REFUSED)
    t=17758 [st=1007]    URL_REQUEST_DELEGATE  [dt=0]
    t=17758 [st=1007] -REQUEST_ALIVE
                       --> net_error = -102 (ERR_CONNECTION_REFUSED)
    
  • Se borró la caché del host de chrome://net-internals/#dns. No funcionó.
  • Detuve todas las extensiones de Chrome. Ningún cambio de comportamiento.

Respuesta1

A partir de 2018, Chrome y Firefox ahora obligan a HSTS para el .devdominio de nivel superior.

Comoexplicado en esta publicación de blog, aunque los desarrolladores de escritorio han estado utilizando el redireccionamiento local (a través de hosts) .devdesde casi siempre, aparentemente ahora (a partir de mayo de 2018)un .devdominio genérico de nivel superior (gTLD) legítimopropiedad de Google. Y ahí estáeste compromiso de Chromium del 4 de enero de 2018 que establece explícitamente:

Preload HSTS for the .dev gTLD.

¡Qué divertido! Además,A partir de julio de 2018, Firefox también hace esto..

La solución más simple y práctica, para cualquiera que no quiera configurar HTTPS para el desarrollo local, es usar otro sufijo como .localhosto incluso .localo honestamente cualquier cosa en el mundo como *.foobary tal.

Pero en 2018, el final de todo esto es que usar *.devel sufijo para desarrollo local solo causará más dolores de cabeza y confusión involuntarios que cualquier otra cosa.

información relacionada