我们正在开发一个通过 SSL 上的 REST API 与后端通信的移动应用程序。移动设备对 API 调用执行证书验证(使用移动框架中的标准库)。如果我们尝试通过代理(例如 Charles)连接移动设备,我们会看到所有流量,但它是加密的 - 正如预期的那样。但是,如果我启用 SSL 代理,生成根证书并将该证书安装在我的设备上,我将通过 Charles 以明文形式看到所有数据 - 再次符合预期。
问题是,如何防止这种情况发生?当然,主要目标是仅当设备调用允许的服务器并使用该服务器的有效证书时才公开数据。