Não é possível acessar o site MAMP criptografado por SSL via LAN usando o proxy Squid (sites não SSL funcionando bem)

1

Eu tenho um site de desenvolvimento em execução em uma máquina host (mac os x) no MAMP que eu quero ver em uma máquina cliente (e também em dispositivos móveis - todos os mac os). Todos estão conectados à mesma LAN (wifi). Eu configurei com sucesso um proxy do Squid no host e posso visualizar hosts HTTP no cliente em navegadores regulares. Mas estou tendo problemas para visualizar os criptografados por SSL. É importante usar SSL no ambiente de desenvolvimento porque estou usando isso na produção. Espero que alguém possa me ajudar a descobrir como trabalhar isso! Agradecemos antecipadamente.

Eu acesso o site no host usando https://www.mydomain.dev:8899 . Ele funciona perfeitamente em todos os navegadores. Os IPs locais: host 192.168.0.99 , cliente 192.168.0.98 .

Eu configurei um pequeno host virtual de teste no MAMP usando o endereço http://test.dev:8898 , sem criptografia SSL (ele apenas lista uma pasta). Eu posso acessá-lo na máquina host digitando http://test.dev:8898 no navegador. Eu criei o seguinte arquivo .pac e configurei a máquina cliente para usá-lo para configuração de proxy:

function FindProxyForURL(url, host) {
  if (shExpMatch(url, "http://test.dev*")) {
    return "PROXY 192.168.0.99:3128; DIRECT";
  }
  return "DIRECT";
}

Quando eu iniciei o Squid, com a configuração do squid mostrada abaixo, eu poderia acessar http://test.dev:8898 na máquina cliente em todos os navegadores, assim como no host. Ótimo. Agora eu configurei o seguinte arquivo .pac para o site dev:

function FindProxyForURL(url, host) {
  if (shExpMatch(url, "https://www.mydomain.dev*")) {
    return "PROXY 192.168.0.99:3128; DIRECT";
  }
  return "DIRECT";
}

Mas não consegui me conectar a https://www.mydomain.dev:8899 na máquina do cliente, obtendo ERR_CONNECTION_REFUSED no Chrome e 'Unable to Connect' no Firefox (uma resposta muito rápida em ambos os casos, sem latência perceptível).

O access.log se parece com isso para os dois pedidos:

1486685792.999     58 192.168.0.98 TCP_MISS/200 1258 GET http://test.dev:8898/ - HIER_DIRECT/192.168.0.99 text/html
1486685793.556      1 192.168.0.98 TCP_MISS/404 443 GET http://test.dev:8898/favicon.ico - HIER_DIRECT/192.168.0.99 text/html
1486685797.211      1 192.168.0.98 TCP_DENIED/403 3992 CONNECT www.mydomain.dev:8899 - HIER_NONE/- text/html
1486685797.213      0 192.168.0.98 TCP_DENIED/403 3992 CONNECT www.mydomain.dev:8899 - HIER_NONE/- text/html

Há também um erro estranho em cache.log que diz:

2017/02/09 09:09:42 kid1| WARNING: 'Name-of-host-machine' rDNS test failed: (0) No error.
2017/02/09 09:09:42 kid1| WARNING: Could not determine this machines public hostname. Please configure one or set 'visible_hostname'.

Aqui está a saída de curvas:

→ curl -v --proxy 192.168.0.99:3128 https://www.mydomain.dev:8899
* Rebuilt URL to: https://www.mydomain.dev:8899/
* Hostname was NOT found in DNS cache
*   Trying 192.168.0.99...
* Connected to 192.168.0.99 (192.168.0.99) port 3128 (#0)
* Establish HTTP proxy tunnel to www.mydomain.dev:8899
> CONNECT www.mydomain.dev:8899 HTTP/1.1
> Host: www.mydomain.dev:8899
> User-Agent: curl/7.37.1
> Proxy-Connection: Keep-Alive
> 
< HTTP/1.1 403 Forbidden
< Server: squid/3.5.23
< Mime-Version: 1.0
< Date: Fri, 10 Feb 2017 01:54:06 GMT
< Content-Type: text/html;charset=utf-8
< Content-Length: 3516
< X-Squid-Error: ERR_ACCESS_DENIED 0
< Vary: Accept-Language
< Content-Language: en
< X-Cache: MISS from localhost
< Via: 1.1 localhost (squid/3.5.23)
< Connection: keep-alive
< 
* Received HTTP code 403 from proxy after CONNECT
* Connection #0 to host 192.168.0.99 left intact
curl: (56) Received HTTP code 403 from proxy after CONNECT

Eu tentei adicionar a linha https_port 3130 transparent na linha http_port 3128 transparent e usei o arquivo .pac para redirecionar para 192.168.0.99:3130 , mas isso não funcionou. O navegador simplesmente trava esperando por uma conexão e, eventualmente, diz que a conexão foi recusada.

Esperando que alguém saiba o que esses erros significam e o que estou fazendo de errado! Muito obrigado pelo seu tempo.

Este é o meu arquivo squid.conf :

acl localnet src 192.168.0.0/24 # local subnet

acl SSL_ports port 443 8899
acl Safe_ports port 8899
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http
acl Safe_ports port 8898  # testdev site
acl CONNECT method CONNECT

http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localnet
http_access allow localhost
http_access deny all

http_port 3128 transparent

coredump_dir /usr/local/var/cache/squid

refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern .       0   20% 4320
    
por nerdlinger 10.02.2017 / 03:04

0 respostas