Squidman, dispositivos iOS, SSL y Docker

1

Quiero acceder a un sitio web y a una API que se ejecutan en contenedores Docker detrás de otro contenedor Nginx Docker (proxy inverso que administra SSL) desde un dispositivo iOS.

Así que tengo:
1 dispositivo iOS con IP 192.168.178.57
1 MacBook Pro con IP 192.168.178.64
1 contenedor Docker que ejecuta nginx con dos configuraciones server_name : app.dev y api.dev , ambas con certificados SSL autofirmados /etc/hosts points tiene estas entradas:

192.168.178.64 app.dev
192.168.178.64 api.dev

~/proxy.pac contiene estas entradas:

function FindProxyForURL(url, host){
  if (shExpMatch(host, "app.dev")) {
    return "PROXY app.dev:443; DIRECT";
  }
  if (shExpMatch(host, "api.dev")) {
    return "PROXY api.dev:443; DIRECT";
  }
  return "DIRECT";
}

Squidman está configurado en el puerto 9090 y los clientes permitidos son 192.168.178.0/24 .

La plantilla de Squidman permite acceder a localhost

# protect web apps running on the proxy host from external users
# http_access deny to_localhost

# rules for client access go here
http_access allow localhost
%HTTPACCESSALLOWED%

El proxy del dispositivo iOS está configurado como 192.168.178.64 , puerto 9090 .

MacBooks Networks Automatic Proxy Configuration apunta al archivo ~/proxy.pac .

Puedo navegar por los sitios web desde el sitio web de iOS como enlace .

Puedo navegar por enlace y llamar a enlace desde el MacBook.

No puedo navegar por enlace ni llamar a enlace desde el dispositivo iOS .

¿Qué estoy haciendo mal?

    
pregunta Alexander Zeitler 18.03.2017 - 18:14

2 respuestas

1

Lo resolví usando este contenedor Docker: enlace

Simplemente sigue las instrucciones y agrega, por ejemplo, 127.0.0.1 app.dev y 127.0.0.1 api.dev a su /etc/hosts .

Luego, cambie el DNS en el dispositivo macOS e iOS a 192.168.178.64 (después de la pregunta inicial).

    
respondido por el Alexander Zeitler 18.03.2017 - 21:34
0

[ en espera (la respuesta es correcta en determinadas circunstancias pero a veces es incorrecta) - en construcción ]

iOS no tiene idea de dónde y qué son api.dev y app.dev. Las entradas en el archivo de hosts son válidas solo para el host local.

Ya que no puedes modificar el archivo de hosts de iOS sin romper con jailbreak el dispositivo iOS, debes configurar un servidor DNS (por ejemplo, brew + dnsmasq) en tu MacBook Pro y apuntar a la configuración de DNS de iOS.

    
respondido por el klanomath 18.03.2017 - 18:59

Lea otras preguntas en las etiquetas