SSL的透明代理问题

时间:2013-02-14 22:20:24

标签: linux ssl openssl transparentproxy

我在私有区域中有一台RHEL5服务器。我为端口80和443设置了透明代理。当我在443上尝试wget时,我得到以下内容:

# wget -O- https://www.google.com
  --2013-02-14 15:16:50--  https://www.google.com/
  Resolving www.google.com... 74.125.129.147, 74.125.129.104, 74.125.129.106, ...
  Connecting to www.google.com|74.125.129.147|:443... connected.
  OpenSSL: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
  Unable to establish SSL connection.

我认为代理有效,因为它正在连接。我不知道还有什么可能导致这种情况。

1 个答案:

答案 0 :(得分:1)

此OpenSSL错误表示wget发送了初始SSL ClientHello消息,但从服务器(或代理)收到的意外响应不是SSL ServerHello消息。

这可能是因为代理使用客户端而不是HTTPS来说明HTTP,因为配置错误(例如,如果端口443被重定向到http_port而不是https_port,则使用squid透明选项),或者因为它根本不支持SSL的透明代理。要进行调试,您可以尝试连接到http://www.google.com:443/以查看会发生什么。要知道发生了什么,您可能希望在连接时运行tcpdump以查看服务器响应的内容。另请检查透明代理的错误日志。

如果没有透明的代理配置,很难说出问题所在。