如何阻止不受信任的证书?

时间:2013-05-20 11:58:38

标签: android ssl fiddler charles-proxy

我有SSL连接。如果我使用feddler或Charles app,我可以看到解密的SSL数据。我怎么能防止这个错误?

更新: 我没有为Charles导入证书,我的Android设备已植根,我使用Proxy Droid应用程序并允许不受信任的应用程序。在这种操作之后,我可以看到解密数据。我想阻止这个错误...

UPDATE2: 我使用类EasyX509TrustManager.java(apache)来检查证书。你可以看到void checkServerTrusted。如果我使用“certificates [0] .checkValidity();” - 证书始终有效,但如果我使用“standardTrustManager.checkServerTrusted(certificates,authType);” - 证书可以有效(查尔斯关闭)或无效(使用查尔斯)。没有“证书[0] .checkValidity();”它工作正常,但我不确定这是否正确。

1 个答案:

答案 0 :(得分:0)

如果您尚未导入Charles'或Fiddler的证书,并且您仍然看到来自设备的流量,则表示您未正确使用HTTPS。您需要配置代码,以便对用于保护HTTPS连接的证书执行正确的链检查。在大多数语言/框架堆栈中,这会自动发生,您必须完全覆盖它。

您使用的语言/框架是什么,以及您使用什么对象发送请求?

如果已将将调试器的证书导入设备,则默认情况下大多数语言/框架都会认为它是受信任的。为了防止这种情况,您的代码大多数手动从服务器评估证书链,然后才允许继续进行通信。这种技术称为“证书锁定”。