1 votes

Squidman, appareils iOS, SSL et Docker

Je souhaite accéder à un site Web et à une API, tous deux exécutés dans des conteneurs Docker derrière un autre conteneur Docker nginx (proxy inverse gérant SSL) depuis un appareil iOS.

C'est ce que j'ai fait :
1 appareil iOS avec IP 192.168.178.57
1 MacBook Pro avec IP 192.168.178.64
1 conteneur Docker exécutant nginx ayant deux server_name paramètres : app.dev y api.dev qui utilisent tous deux des certificats SSL auto-signés /etc/hosts points a ces entrées :

192.168.178.64 app.dev
192.168.178.64 api.dev

~/proxy.pac contient ces entrées :

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 configuré sur le port 9090 et les clients autorisés sont 192.168.178.0/24 .

Le modèle Squidman permet d'accéder à 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%

Le proxy du dispositif iOS est configuré comme 192.168.178.64 , port 9090 .

Les réseaux MacBooks Automatic Proxy Configuration pointe vers le ~/proxy.pac fichier.

Je peux parcourir des sites web à partir du site iOS comme http://apple.com .

Je peux naviguer https://app.dev et appeler https://api.dev du MacBook.

Je ne peux pas naviguer https://app.dev ni l'appel https://api.dev de l'appareil iOS.

Qu'est-ce que je fais de mal ?

1voto

Alexander Zeitler Points 233

Je l'ai résolu en utilisant ce conteneur Docker : https://github.com/jpillora/docker-dnsmasq

Il suffit de suivre les instructions et d'ajouter, par exemple, les éléments suivants 127.0.0.1 app.dev y 127.0.0.1 api.dev à votre /etc/hosts .

Ensuite, changez le DNS sur le MacOS et l'appareil iOS en 192.168.178.64 (suite à la question initiale).

0voto

klanomath Points 63400

[ en attente (la réponse est juste dans certaines circonstances, mais parfois fausse). en construction ]

iOS n'a aucune idée d'où et de ce que sont api.dev et app.dev. Les entrées dans le fichier hosts ne sont valables que pour l'hôte local.

Puisque vous ne pouvez pas modifier le fichier hosts d'iOS sans jailbreaker l'appareil iOS, vous devez configurer un serveur DNS (par exemple brew + dnsmasq) sur votre MacBook Pro et y faire pointer les paramètres DNS d'iOS.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X