android - Android:使用 SSL 碰撞连接到 Squid 代理不起作用
问题描述
我有一个安装了 HTTPS/SSL 的 Squid 代理。当我在 Firefox 中安装生成的证书并设置代理时,一切看起来都很好——也就是说,我可以看到所有 HTTPS 请求 Squid 日志文件。
但是,当我在我的 Android 手机中安装相同的证书(并更改代理设置)时,它似乎只能在浏览器中工作。我首先更改了代理设置并且页面没有加载,然后我安装了证书,一切都很好。
由于连接问题,我尝试过的所有其他应用程序都出现错误。我可以在 Squid 日志中看到 CONNECT 请求,但没有其他请求(例如,GET、POST)。我知道有些应用程序完全忽略了系统代理设置,但很多人使用它们。
奇怪的是,一切都在旧的 Android 6.0 手机上运行。在这里,使用代理并依赖 HTTPS 请求的相同应用程序运行良好。现在我有一部更新的 Android 9.0 手机,到目前为止所有应用程序都失败了。应用程序显然使用代理(查看日志中的 CONNECT 条目),但不使用/确认已安装的证书。
我目前认为新手机或新的 Android 版本是问题的原因,因为它以前与旧手机和 Android 版本一起使用。我怎样才能最好地追踪这个问题?
解决方案
Android 连接到特定域以验证连接。将此位添加到squid.conf:
# Mobile
acl google-servers dstdom_regex "/etc/squid/google.txt"
always_direct allow google-servers
接下来,使用以下内容创建此文件 /etc/squid/google.txt:
(^|\.)android\.clients\.google\.com$
(^|\.)ggpht\.com$
(^|\.)google\.com$
(^|\.)www\.googleapis\.com$
(^|\.)gstatic\.com$
(^|\.)gvt1\.com$
(^|\.)1e100\.net$
(^|\.)google\.co\.uk$
激活,运行:
./squid -k reconfigure
推荐阅读
- eclipse - Maven 和 EJB (JEE)
- html - 主体上带有 Webpack 和 Symfony 的背景颜色
- ffmpeg - 使用 ss 后输出流中的非单调 DTS
- docker - docker私有注册表作为本地机器和服务器机器中的默认注册表
- elasticsearch - Elaticsearch 对单词少的文档有好处吗
- javascript - 在 lit-element 中重用 firebase 常量
- android - 为什么只获取用户名?
- phpmyadmin - PhpMyAdmin 无法加密到 MD5
- r - 加载Javascript后反应输入不起作用
- ruby - 将优雅的方式添加到已包含的模块中?