Me estoy encontrando con un problema en el que Siri no puede conectarse a sus servidores desde detrás de nuestra conexión proxy corporativa. Lo interesante es que esto no es un problema en nuestros iPhones detrás del mismo proxy.
¿Alguna idea?
Me estoy encontrando con un problema en el que Siri no puede conectarse a sus servidores desde detrás de nuestra conexión proxy corporativa. Lo interesante es que esto no es un problema en nuestros iPhones detrás del mismo proxy.
¿Alguna idea?
Gestiono un proxy Squid para mi organización y cuando intento utilizar Siri en Sierra, se registran las siguientes entradas de registro:
1474540244.610 0 macos-sierra-host.local TAG_NONE/400 4410 NONE error:invalid-request - HIER_NONE/- text/html
No estoy del todo seguro de lo que está solicitando, así que es hora de sacar el martillo tcpdump, supongo. Voy a informar si tengo más ideas.
EDIT 1 - 22-Sep-2016 10:58 UTC
Parece que Siri no está usando una URL válida cuando solicita a través de un proxy. Aquí están las cabeceras HTTP de Squid después de que se intente una conexión con Siri:
HTTP/1.1 400 Bad Request
Server: squid/3.5.20
Mime-Version: 1.0
Date: Thu, 22 Sep 2016 10:42:01 GMT
Content-Type: text/html;charset=utf-8
Content-Length: 4064
X-Squid-Error: ERR_INVALID_REQ 0
Vary: Accept-Language
Content-Language: en
X-Cache: MISS from proxy.local
Via: 1.1 proxy.local (squid/3.5.20)
Connection: close
Los detalles del mensaje de error (enviado desde Squid pero nunca visto por el usuario) son:
Se ha encontrado un error de solicitud no válida al intentar procesar la solicitud:
&# 22;&# 3;&# 1;
Algunos posibles problemas son:
- Método de solicitud ausente o desconocido.
- Falta el identificador HTTP (HTTP/1.0).
- La solicitud es demasiado grande.
- Falta la longitud del contenido en las solicitudes POST o PUT.
- Carácter ilegal en el nombre de host; los guiones bajos no están permitidos.
- HTTP/1.1 Esperar: se está pidiendo la función desde un software HTTP/1.0.
Así que - parece que hay más tcpdump-hammer en mi futuro mientras trato de encontrar lo que este requst original parece (donde va etc). Permanezcan atentos.
EDIT 2 - 22-Sep-2016 11:16 UTC
El problema es que Siri utiliza TCP/443 pero no utiliza HTTPS. En consecuencia, un proxy HTTP como Squid se ahoga en estas conexiones. La buena noticia es que he identificado que las conexiones salientes de Siri están resolviendo un registro A para origin.guzzoni-apple.com.akadns.net
y luego conectarse a él en el puerto 443. En este punto se inicia un handshake TLS y el resto está encriptado. Así que, gracias Apple por encriptarlo, pero FU por usar un puerto reservado para el tráfico no HTTPS. En serio - ¡¿WTF?!
He aquí una solución
He husmeado en muchos ( muchos ) consultas DNS y parece que todas se resuelven origin.guzzoni-apple.com.akadns.net
en el 17.252.0.0/16
gama de direcciones: se trata de una porción de la gama más amplia de Apple 17.0.0.0/8
gama. Esto debería permitirle enviar cualquier cosa destinada a 17.252.0.0
directo (a través de la configuración del proxy o del PAC/WPAD). Desafortunadamente, esto también puede engullir otro tráfico que no quieres que pase por tu proxy también :-/
Hasta que Apple no decida utilizar un protocolo HTTPS real para Siri en Sierra o, utilizar un puerto diferente (¡¡¡a diferencia del actual secuestro de TCP/443!!!), estamos bastante jodidos.
Encontré esta solución para el archivo pac:
if ( (shExpMatch(url, "*guzzoni.apple.com*")) || (shExpMatch(url, "*.guzzoni-apple.com.akadns.net*")) ) return "DIRECT";
Fuente: http://blog.mansshardt.net/siri-ios-MacOS-hinter-squid-proxy-zum-laufen-bringen/
No es tanto una respuesta como un "por dónde empezar a buscar"...
Hay una lista completa de los números de puerto utilizados por Apple en
Apple KB : Puertos TCP y UDP utilizados por los productos de software de Apple
[demasiado para copiarlo aquí]
También puedes abrir prácticamente todo el espacio de direcciones 17.x.x.x, ya que todo es propiedad de Apple.
Afirma que Siri sólo necesita el puerto 443, https/SSL [que imagino que estará abierto de todos modos]
Puedo confirmar los hallazgos de James en mi org: Siri (MacOS) sólo funciona con el proxy desactivado. Estamos usando un producto proxy diferente (a través de un archivo PAC, para tu información), pero los mismos resultados. Probado con la versión pública de MacOS Sierra 10.12.2 (16C68).
@Tetsujin - A pesar del "8 de enero de 2017", Apple no lo ha actualizado para incluir "Siri (MacOS)"; actualmente sólo especifican "Siri (iOS)". Parafraseando el comentario de James, "este no es el Siri de tu iPhone".
Además, si sus registros de Squid son correctos y origin.guzzoni-apple.com.akadns.net
es lo que usa Siri (MacOS); entonces la exención de comodines para el 17.0.0.0/8 de Apple sería discutible (por el dominio "akadns.net").
AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.