Squidman, dispositivos iOS, SSL y Docker

Quiero acceder a un sitio web y una API que se ejecutan en contenedores Docker detrás de otro contenedor Docker nginx (SSL de administración de proxy inverso) 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 que tiene dos server_nameconfiguraciones: app.devy api.devambos puntos con certificados SSL autofirmados /etc/hoststienen estas entradas:

192.168.178.64 app.dev
192.168.178.64 api.dev

~/proxy.paccontiene 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 9090y los clientes permitidos son 192.168.178.0/24.

La plantilla de Squidman permite el acceso alocalhost

# 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.64puerto 9090.

MacBooks Networks Automatic Proxy Configurationapunta al ~/proxy.pacarchivo.

Puedo navegar por sitios web desde el sitio web de iOS como http://apple.com .

Puedo navegar por https://app.dev y llamar a https://api.dev desde la MacBook.

No puedo navegar por https://app.dev ni llamar a https://api.dev desde el dispositivo iOS.

¿Qué estoy haciendo mal?

Intenté esto ya con /etc/hostspero usando /private/etc/hosts/tampoco lo arreglé.
Lo configuraré en un entorno virtual para comprender su problema.
¿Tiene una guía de configuración rápida (u otras instrucciones) para instalar la imagen acoplable del proxy inverso (SSL) (¿cuál usó?) y las otras dos imágenes acoplables nginx?
Consulte xip.io la próxima vez; a menudo, es mucho más fácil usar FQDN para toda la IP no enrutable que necesita para probar proxies, contenedores, VM y dispositivos.

Respuestas (2)

Lo resolví usando este contenedor Docker: https://github.com/jpillora/docker-dnsmasq

Simplemente siga las instrucciones y agregue, por ejemplo, 127.0.0.1 app.devy 127.0.0.1 api.deva su archivo /etc/hosts.

Luego cambie el DNS en el dispositivo macOS e iOS a 192.168.178.64(siguiendo la pregunta inicial).

[ en espera (la respuesta es correcta en ciertas circunstancias pero a veces 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.

Dado que no puede modificar el archivo de hosts de iOS sin liberar el dispositivo iOS, debe configurar un servidor DNS (por ejemplo, brew + dnsmasq) en su MacBook Pro y apuntar la configuración DNS de iOS hacia él.