我刚刚意识到SSL中间人攻击比我想象的要普遍得多,尤其是在公司环境中。我听说过一些企业,这些企业安装了透明的SSL代理服务器。所有客户端都配置为信任此代理的证书。基本上,这意味着从理论上讲,雇主甚至可以拦截SSL加密的流量,而不会在浏览器中弹出任何警告。如上所述,客户端附带证书是受信任的。这只能通过手动验证正在使用的证书来揭示。
在我看来,雇主似乎在利用自己的优势监视员工的SSL流量。对我来说,这使SSL的整个概念变得不可信。我自己使用mitmproxy成功地测试了类似的设置,并且能够读取客户端与我的电子银行服务器之间的通信。这是不应该透露给任何人的信息。
因此,我的问题很简单:如何验证服务器端的信任链?我想确保客户端使用我的服务器的证书并且只有一个信任链。我想知道这是否可以通过Apache的SSL配置来实现?这将很方便,因为它可以轻松地应用于许多应用程序。如果这不可能,那么有人知道用PHP做到这一点的方法吗?或者您还有其他建议吗?