为什么 squid 不处理来自 Linux 机器的 HTTPS 请求,而 Windows 客户端可以访问 https

为什么 squid 不处理来自 Linux 机器的 HTTPS 请求,而 Windows 客户端可以访问 https

我在 3128 端口上运行了 squid 代理,有 2 个网卡

eth0:192.168.2.22 with internet access.

eth1:192.168.1.1 connected to LAN.

LAN 中的每台机器都有该范围内的 IP

192.168.1.0/24 through DHCP.

它包括 Windows 和 Linux 机器(Ubuntu 10.04)。

所有 Windows 机器都可以访问HTTPS页面,但是没有任何一台 Linux 机器可以访问 https 页面。

当从 Linux 机器发出 https 请求时,其返回的网页不可用。在 Squid 访问日志中没有“连接“从 Linux 机器访问时发出请求。

原因何在?

鱿鱼跑:在 Ubuntu 12.04 64 位上

鱿鱼版:squid3-3.1.19

除了允许 localnet 连接外,默认 squid 配置中没有进行任何访问限制。

尝试设置

  export HTTP_PROXY=http://192.168.1.1:3128/ in bashrc 

但仍然无法访问任何 https 页面。

环境 https_proxy=http://192.168.1.1:3128/wget --debughttps://google.com/

 DEBUG output created by Wget 1.12 on linux-gnu.

 --2012-10-26 13:45:47--  https://google.com/
  Connecting to 192.168.1.1:3128... connected.
  Created socket 3.
  Releasing 0x08e0a430 (new refcount 0).
  Deleting unused 0x08e0a430.

  ---request begin---
  CONNECT google.com:443 HTTP/1.0
  User-Agent: Wget/1.12 (linux-gnu)

  ---request end---
  proxy responded with: [HTTP/1.0 200 Connection established

  ]
 Initiating SSL handshake.
 Handshake successful; connected socket 3 to SSL handle 0x08e0a678
 certificate:
  subject: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.google.com
  issuer:  /C=US/O=Google Inc/CN=Google Internet Authority
ERROR: certificate common name `*.google.com' doesn't match requested host name     `google.com'.
 To connect to google.com insecurely, use `--no-check-certificate'.
 Closed 3/SSL 0x08e0a678

答案1

您是否忘记在 Linux 机器上配置 HTTPS 代理?

相关内容