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