¿Cómo elimino por completo los redireccionamientos almacenados en caché de Safari?

Tengo un dispositivo con un panel de control basado en la web y accidentalmente lo configuré para redirigir todas las httppáginas a https, aunque algunas no funcionan con https. Aunque desde entonces he corregido esto, parece que Safari ha memorizado la redirección y se niega a olvidarla, sino que intenta redirigirme constantemente a la dirección no válida https.

Ya cerré Safari, borré ~/Library/Caches/com.apple.Safari/y ~/Library/Cookies/HSTS.plisttodavía parece recordar la redirección cuando lo vuelvo a abrir.

¿Dónde más podría Safari almacenar esta información? Puedo acceder a la página correcta a través de Firefox o Chrome, por lo que es posible que no sea un servicio de todo el sistema, o si lo es, no es uno que usan los otros navegadores.

Desafortunadamente, debido a que el panel web lo proporciona un dispositivo, no creo que pueda ajustar los encabezados o configurar un redireccionamiento a la URL correcta, que parecen ser opciones que se ofrecen en otras preguntas similares, por lo que realmente necesito averiguar dónde está este Los datos se almacenan para que pueda destruirlos con fuego.

¿Ha intentado tirar a la basura/mover a un lado su ~/Library/Safaricarpeta y ver si eso soluciona el problema? Si es así, puede experimentar con elementos dentro de la carpeta hasta que encuentre el archivo culpable.
¿Cómo configuró la redirección? ¿Con una extensión o hay una configuración en Safari para eso?
¿La redirección todavía ocurre con una ventana de navegación privada?
@AllInOne idea interesante, pero desafortunadamente todavía ocurre en navegación privada.
@owlswipe la redirección fue el resultado de habilitar por error HSTS en el servidor (lo que le dice al navegador que siempre use https), sin embargo, no todos los servicios en el dispositivo son compatibles con https, de ahí mi problema, ya que Safari sigue intentando cambiar a https y luego falla porque no se puede conectar. Deshabilité HSTS y eliminé el ~/Library/Cookies/HSTS.plistarchivo que se supone que debe manejarlo, pero aún sucede en Safari.

Respuestas (13)

Basado en la respuesta de quanta :

No pude usar launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plistporque tengo habilitada la Protección de integridad del sistema :

$ launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist
/System/Library/LaunchAgents/com.apple.nsurlstoraged.plist: Operation not permitted while System Integrity Protection is engaged

Sin embargo, pude solucionarlo haciendo lo siguiente:

  • killall nsurlstoraged(detiene el proceso nsurlstoraged de su usuario; en realidad lo ejecuté sudo killall nsurlstoraged, pero sospecho que no es necesario detener también el nsurlstoraged del sistema, ya que el caché está en la carpeta Biblioteca del usuario)
  • rm -f ~/Library/Cookies/HSTS.plist(borra la caché HSTS)
  • launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist(reinicia nsurlstoraged)
No puedo votar esta respuesta lo suficiente. Parece que, al menos en Sierra, simplemente eliminar el HSTS.plistarchivo no solucionará el problema porque seguirá reconstruyéndose. Sin embargo, después de matar nsurlstoragedy luego eliminar el archivo HSTS, ¡eso funcionó!
Muchas gracias, votado a favor, pero lo hice así. 1. Cierre Safari 2. Edite ~/Library/Cookies/HSTS.plisty elimine la entrada del sitio que quiero en http 3. Reinicie la computadora
Sí, reiniciar es el consejo que le dan todas las demás respuestas, pero con 20 aplicaciones abiertas, es mucho más conveniente y rápido reiniciar el proceso nsurlstoraged. ¡Gracias @nvahalik!
Actualización de Mojave: el comando rm -f ~/Library/Cookies/HSTS.plistvolverá Operation not permitteda menos que haya otorgado Acceso total al disco a Terminal.app en Preferencias del sistema => Seguridad y privacidad => Privacidad. De lo contrario, ¡la solución funcionó perfectamente! ¡Gracias!
@ nvahalik Lo que está pasando parece aún más extraño que el archivo que se está reconstruyendo; Ni siquiera rm ~/Library/Cookies/HSTS.plist ; touch ~/Library/Cookies/HSTS.plist ; chmod guo-wrx ~/Library/Cookies/HSTS.plistme ayudó, pero killall nsurlstoragedlo hizo.
Esto no parece hacer nada en Big Sur. El comando killall devuelve 'No se encontraron procesos coincidentes que le pertenezcan'

Si habilita el menú Desarrollar en las preferencias de Safari, puede borrar el caché desde allí (CMD+ALT+E).

¿Puedes confirmar que abrir el panel de control del dispositivo en la ventana privada de Safari (o en otro navegador web) funciona correctamente?

Desafortunadamente, la opción del menú de desarrollo no parece borrar la redirección, tampoco lo hace cerrar Safari y eliminarlo manualmente ~/Library/Caches/com.apple.Safari, por lo que la redirección debe almacenarse en otro lugar. HSTS fue la característica que accidentalmente habilité pero ya eliminé ~/Library/Cookies/HSTS.plist.
También puedo confirmar que esta respuesta no lo soluciona.
Este funcionó para mí

Basado en la respuesta de @Haravikk: https://apple.stackexchange.com/a/267783/62907

¿Alguien tiene alguna idea de qué proceso es responsable del archivo ~/Library/Cookies/HSTS.plist?

fs_usage puede ayudar:

❯❯❯❯ sudo fs_usage | grep HSTS
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000238   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000009   nsurlstorage
16:11:03  open              /Users/quanta/Library/Cookies/HSTS.plist                                         0.016268   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000008   nsurlstorage
16:11:03    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000003   nsurlstorage
16:11:03  access            /Users/quanta/Library/Cookies/HSTS.plist                                         0.000011   dbfseventsd
16:11:04  lstat64           /Users/quanta/Library/Cookies/HSTS.plist                                         0.000008   fseventsd
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000006   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000002   nsurlstorage
16:11:08  open              /Users/quanta/Library/Cookies/HSTS.plist                                         0.000144   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000002   nsurlstorage
16:11:08    HFS_update      /Users/quanta/Library/Cookies/HSTS.plist                                         0.000003   nsurlstorage
16:11:08  access            /Users/quanta/Library/Cookies/HSTS.plist                                         0.000021   dbfseventsd
16:11:09  lstat64           /Users/quanta/Library/Cookies/HSTS.plist                                         0.000042   fseventsd

Para que podamos:

launchctl unload /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

después:

rm -f ~/Library/Cookies/HSTS.plist

e intenta de nuevo.

¡Gracias! Esto funcionó para mí. Eliminé HSTS.plist muchas veces (cerrando/reiniciando Safari antes y después) y siempre se recreaba con exactamente el mismo contenido que antes. Primero descargué nsurlstoraged, luego eliminé el plist y reinicié nsurlstoraged y obtuve un plist limpio.
Podría mejorar esto mencionando que necesita salir y reiniciar Safari para que funcione. Además, en lugar de eliminar el HSTS.plist, simplemente eliminé la clave de dominio del problema.

En Safari, Firefox y Chrome también, todo lo que tiene que hacer es abrir la barra lateral del desarrollador , seleccionar la pestaña de red y deshabilitar el almacenamiento en caché .

En Safari eso es un tubo tachado, el azul al lado del logo de la papelera. Activa eso, y la antigua redirección permanente debería ser ignorada.Safari deshabilita el chaching 503 redireccionamientos permanentes

El mayor beneficio es que no tiene que meterse con los archivos, no eliminará todas las entradas HTST y perderá los beneficios de seguridad. También funciona en todos los navegadores.

Si bien es muy útil saber esto, ¿puede confirmar si funciona como una solución permanente? es decir, si se vuelve a habilitar la memoria caché, ¿resurgirá el problema o la deshabilitará temporalmente?
@Haravikk en mis pruebas, no volvería a usar la redirección permanente cuando se podría cargar una nueva página en su lugar. Incluso después de cerrar la ventana de desarrollo, si eso responde a su pregunta

Así que encontré una solución al problema, aunque esta no es una respuesta definitiva a la pregunta real, así que no la marcaré como tal hasta que pueda encontrar más información.

Resultó que el archivo ~/Library/Cookies/HSTS.plistera de hecho la fuente del problema como sospechaba, sin embargo, eliminarlo de la cuenta de usuario afectada no funciona, incluso con Safari cerrado, ya que se vuelve a crear después de un período de tiempo desconocido, con el infractor entrada que estaba forzando la redirección no válida.

Así que mi solución fue la siguiente:

  1. Asegúrese de tener al menos otra cuenta de usuario en su Mac (si no es así, cree una).
  2. Cerrar sesión de la cuenta de usuario afectada.
  3. Inicie sesión en una cuenta de usuario diferente (una cuenta de invitado puede no ser suficiente, dependiendo de las restricciones).
  4. Averigüe el nombre abreviado de su cuenta de usuario afectada; si no lo sabe, la mejor manera de comprobarlo es buscar en Preferencias del sistema -> Usuarios. Por lo general, será el nombre completo, en minúsculas y sin espacios, por lo que si su nombre completo es "John Smith", entonces el nombre corto puede ser "johnsmith".
  5. Abra una ventana en Terminal, escriba su shortnamereemplazando "nombre corto" con el nombre corto de la cuenta de usuario afectada. Presione enter y, cuando se le solicite, ingrese la contraseña de la cuenta afectada.
  6. Ahora escriba el siguiente comando rm ~/Library/Cookies/HSTS.plisty presione enter, esto eliminará el archivo de almacenamiento HSTS.
  7. Finalmente escriba exit, presione enter y cierre la Terminal.

En este punto, ahora puede volver a iniciar sesión en la cuenta de usuario afectada y la redirección HSTS infractora debería desaparecer para siempre.

Ahora, si bien esto proporciona una solución utilizable, realmente me gustaría saber por qué no funcionó la eliminación del archivo HSTS.plist de mi cuenta afectada; el hecho de que se vuelva a crear significa que algún proceso en segundo plano es responsable de ello, lo que significa que debería ser posible eliminar el archivo de la cuenta de usuario afectada simplemente deteniendo ese proceso, eliminando el archivo y luego reiniciando el proceso.

¿Alguien tiene alguna idea de qué proceso es responsable del ~/Library/Cookies/HSTS.plistarchivo? Una vez que sepamos eso, debería ser posible dar una solución más simple al problema.

Obtendrá buenos resultados si utiliza la línea de comando en curlel dispositivo para asegurarse de que no esté realizando la redirección. Safari realmente no tiene un motor para reescribir direcciones, especialmente si accede a la navegación privada para eliminar cualquier historial, cookies, etc.

Si no está seguro de haber limpiado su safari lo suficiente, también puede probar abriendo las preferencias del sistema y creando una cuenta de usuario limpia/nueva en la Mac y probar el sitio en una versión totalmente limpia de Safari después de cerrar la sesión de su usuario normal .

Definitivamente no hay redirección (la función a la que estoy tratando de conectarme no es compatible con HTTPS, razón por la cual habilitar HSTS para todo el dispositivo fue un error terrible); Puedo conectarme sin problemas desde otras cuentas de usuario y navegadores, así que hay algo almacenado en algún lugar de mi cuenta principal que está almacenando esto en caché :(
"Safari realmente no tiene un motor para reescribir direcciones": actualmente tengo el mismo problema que ocurre en Safari con un sitio web alojado en mi computadora portátil y curl (junto con Firefox, Chrome y una ventana de Navegación privada allí mismo en Safari) en la misma cuenta de usuario carga el sitio correctamente. Así que debe tener algo que ver con el propio Safari.

Después de probar todas estas soluciones, lo que funcionó para mí fue:

  • Eliminar todas las instancias del dominio del historial de Safari
  • Salir de Safari
  • Borrar~/Library/Cookies/HSTS.plist
  • Reanudar
Esta es la respuesta correcta para borrar el caché de redirección 301. Nada de lo anterior funciona a menos que también elimine instancias del dominio del historial de Safari.

¡Aquí tienes una idea!

Dice que no puede deshacer la redirección configurando el servidor para redirigir las solicitudes https a http (ya que no tiene acceso de administrador para hacerlo).

Pero, ¿qué pasa si engañas a Safari para que se conecte a un servidor diferente que ofrece esta redirección inversa?

Puede configurar esto en el /etc/hostsarchivo de su máquina local.

Por ejemplo, supongamos que la redirección en caché actual es de http://example.coma https://example.com.

Ahora configure o identifique una URL que pueda solicitar en cualquier servidor del mundo que redirija de https a http. Digamos que el servidor tiene la dirección de https://redirecting.example.com.

Luego busque la dirección IP de redirecting.example.com. En Terminal puedes hacer esto:

host redirecting.example.com

Obtienes un resultado algo como esto:

redirecting.example.com has address 69.69.69.69

Ahora abra su archivo /etc/hosts y agregue una nueva línea que dirija las solicitudes de example.com a la dirección IP de redirecting.example.com, así:

### point host example.com at the ip address of redirecting.example.com
69.69.69.69 example.com

Guarde sus cambios y borre su caché de DNS en la terminal así:

sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder; say DNS cache flushed

Luego, en Safari, haga una solicitud para que https://example.comla respuesta sea una redirección de regreso a http://example.com, en cuyo punto (crucemos los dedos) se sobrescribirá su redirección de Safari de hace 6 meses.

Cuando haya terminado, elimine la línea que agregó a su archivo /etc/hosts y vuelva a vaciar su caché de DNS.

Si bien es una buena idea, no resuelve el problema real; No estoy buscando soluciones alternativas, sino que quiero saber dónde se almacena en caché esta redirección para que Safari continúe usándola aunque ya no sea válida (el servidor no tiene HSTS habilitado, simplemente lo habilité brevemente por error ). Debe estar almacenado en algún lugar, pero no puedo averiguar dónde.
Esto no es lo que yo llamaría una solución alternativa, ya que espero que resuelva el problema real . Solo funciona en torno al hecho de que no tienes el control del dispositivo. Pero te escucho: sería bueno poder borrar la configuración almacenada en caché directamente. ¿Safari Technology Preview también exhibe el mal comportamiento?
Desafortunadamente así; No creo que sea un problema con Safari como tal, sino con algún servicio de macOS del que depende, ya que parece que ~/Library/Cookies/HSTS.plistfue el culpable, pero eliminarlo de la cuenta afectada no funciona (ya que se recrea algún tiempo después, completo con mala redirección). Sin embargo, no estoy seguro de qué proceso lo está haciendo.

Mis dos centavos para el nuevo macOS Mojave 10.14 Beta (18A365a)

a) No puedes parar definitivamente nsurlstoraged, se relanza en 2 segundos, aunque sudo

b) no puede eliminar "HSTS.plist": si escribe:

sudo rm -f ~/Library/Cookies/HSTS.plist

obtienes: Operación no permitida

c) incluso si intentas:

ls -la ~/Library/Cookies/

obtienes: Operación no permitida

lo mismo para

nano ~/Library/Cookies/HSTS.plist 

(archivo vacío..)

Así que definitivamente no puedes acceder a él. (¿quizás SIP?)

d) extrañamente puedes eliminar si del Finder:

CMD Shift G"~/Biblioteca/Cookies/"

ingrese la descripción de la imagen aquí

y puedes eliminar con el mouse:

ingrese la descripción de la imagen aquí

e) más extraño: puede moverse al escritorio con el mouse, editarlo y volver a colocarlo .

(una verdadera tontería, la GUI es más poderosa que sudo ..)

eso se debe al permiso Acceso total al disco como se explica aquí apple.stackexchange.com/questions/227662/…

Primero asegúrese de que el servidor no esté enviando el encabezado Strict-Transport-Security
Puede hacer esto con curl -I( -Isolo obtiene los encabezados)

curl -I http://my-http-domain.com

Si el servidor envía el encabezado Strict-Transport-Security, eliminarlo de su navegador no tendrá ningún efecto, ya que la próxima vez que acceda al sitio, se configurará nuevamente.

Elimine su sitio de la base de datos Http Secure Transport Security de Safari

  1. Cerrar Safari
  2. Editar ~/Library/Cookies/HSTS.plist
    Busque la entrada del sitio al que desea acceder a través de http, elimínela y guarde el archivo.
    • Prefiero editar en lugar de eliminar, ya que no es necesario eliminar las entradas válidas.
    • Edito archivos plist usando Xcode, pero si no está instalado, puede usar un editor de texto.
  3. Reinicia tu computadora.
    • En lugar de reiniciar su computadora, puede reiniciar, nsurlstoragedpero eso puede estar involucrado debido a SIP , por lo que reiniciar la computadora puede ser más simple. Vea la respuesta de Grant y la respuesta de Quanta sobre reiniciarnsurlstoraged

Hice un guión a partir de la respuesta de Grand Heaslip:

#!/bin/sh

osascript -e 'quit app "Safari"'
sleep 2
killall nsurlstoraged
sleep 2
rm -f ~/Library/Cookies/HSTS.plist
launchctl start /System/Library/LaunchAgents/com.apple.nsurlstoraged.plist

Finaliza elegantemente el safari, detiene nsurlstoraged, elimina HSTS.plist y vuelve a iniciar nsurlstoraged. Esto funcionó bien para mí aquí en macOS 10.13.5

Estoy usando Mojave (10.14). Probé los métodos proporcionados hasta ahora para eliminar HSTS.plist. Además, necesitaba agregar Terminal a Preferencias del sistema > Seguridad y privacidad > Lista de acceso total al disco para curar el síntoma "Operación no permitida" al enumerar el contenido de ~/Library/Cookies/.

Pero, eliminar el archivo y reiniciar el demonio no funcionó. Así que intenté abrir Safari nuevamente, fui a Preferencias, Privacidad, Administrar datos del sitio web. Luego eliminé todas las "cookies de caché, almacenamiento local" para el nombre de dominio infractor. Eso resolvió mi problema.

No puedo decir ahora si fue necesario eliminar HSTS o no.

Intenté lo mismo y reinicié dos veces, pero solo me funcionó usar la interfaz de usuario de Safari. ¡Gracias!

Intente esto entonces, vaya al Paso 1: Vaya a la carpeta ~/Biblioteca, Paso 2: Elimine la carpeta Safari de ~/Biblioteca/Soporte de aplicaciones, Paso 3: Elimine las carpetas a continuación de ~/Biblioteca/Cachés, Paso 4: luego elimine ~/ Carpeta Biblioteca/Safari PD: Mantenga Safari cerrado durante las operaciones anteriores

Las respuestas en Ask Different deben ser algo más que un enlace. Está bien incluir un enlace, pero resúmalo o extráigalo en la respuesta. La idea es hacer que la respuesta sea independiente.