在我的Android项目中,我正在使用一个库(我公司内部),它有一个带有自定义X509TrustManager的自定义HTTP客户端。
我们需要允许用户选择是否信任或不信任不受信任的证书。最初这很好,但是一旦用户选择信任证书,如果用户决定不再允许连接到证书,我们需要一种方法将证书作为可信证书删除。
主要问题是,一旦我们尝试连接到用户选择信任的证书,就不会再次调用对重写的checkServerTrusted的调用。是否将证书缓存在某个地方以避免被调用,或者生命周期中的某个其他地方是否在它到达此点之前检查它是否受信任?我不能强制打电话,因为我不知道如何获得我选择信任的证书的证书链。
如果有人知道这些事情中的任何一个(是缓存还是如何获得证书链) - 那将是非常棒的。提前谢谢。
答案 0 :(得分:0)
你必须使SSLSession无效,这就是它被缓存的地方。