我想做的事:
我的目标是使用 Squid 缓存通过 SSL 传输的数据 - 而不仅仅是通过 Http 传输的数据。用户不应该在他们接触的每个 Https 网页上都被 SSL 证书错误所困扰。下载其他学生缓存的数据需要无缝且轻松。
我为什么要这么做:
请花点时间考虑一下这里的用例,然后再向我解释为什么这是“违反 SSL”的原因,以及我在许多其他帖子中读到的所有其他类型的暴行。此设置旨在使外国一所互联网速度不是很快的小学校的 Wifi 使用速度更快。虽然缓存 HTTP 数据可以显著加快学生的互联网使用速度,但越来越多的流量通过 SSL 发送,学生需要更快地访问这些流量。简而言之,现在不再只有电子邮件和银行业务通过 SSL 传输 - 如今,Youtube 等视频内容甚至安装文件也越来越多地通过 SSL 传输(例如 Android Studio、Arduino IDE、Wireshark、FileZilla 等的安装文件)。
到目前为止我已经尝试过:
在 pfSense 2.3.3-RELEASE-p1 中设置 Squid 包 0.4.36_2。正确设置缓存,使其在 Http 站点上完美运行。在 pfSense 的“系统”-->“证书管理器”下创建 CA,使用“Shalla 的黑名单”安装 SquidGuardhttp://www.shallalist.de,以及通过所有其他来源列入白名单的流量。
- 此时一切正常 - 通过 Wifi 连接的系统进行浏览,无需担心证书和 Http 数据的缓存 - 但 HTTPS 数据的缓存不起作用。
- 如何实现这一点?
答案1
如果您尝试完成的事情不需要客户付出额外的努力就能实现,那么 SSL 就毫无用处。
SSL 最重要的方面之一是它保证连接的端点确实是客户端尝试连接的端点。证书系统保证了这一点。
因此,如果您想使用 Squid 实现透明的 SSL 代理,您需要为其颁发自签名证书,然后将该证书分发给您的用户,以便他们可以将其添加到其浏览器的受信任证书列表中。
这是避免用户浏览器出现证书警告的唯一方法。
您还需要向用户明确说明,在这种情况下,SSL 图标并不真正意味着连接是安全的。
如果要求建立安全的端到端连接,那么中间的缓存就不可能实现。