Con*_*rad 5 validation ssl android ssl-certificate x509certificate
我已经javax.net.ssl.X509TrustManager
在我的代码中实现了所以我可以验证我的软件访问的自签名证书.但是,我仍然需要验证其他一些"标准"网站SSL证书.我正在使用CertPathValidator.validate()
这个,但我刚刚意识到我传递的一个证书链(对于maps.googleapis.com)实际上并不包含完整的链 - 它包含整个链但是根CA(Equifax),在手机上确实存在,但validate()
仍然失败,因为(显然)它没有明确地在链中.我在这里缺少什么,以便验证成功?感谢您的任何意见.
编辑 - 相关代码(删除了异常检查):
CertificateFactory cf = CertificateFactory.getInstance("X.509");
// chain is of type X509Certificate[]
CertPath cp = cf.generateCertPath(Arrays.asList(chain));
CertPathValidator cpv = CertPathValidator.getInstance(CertPathValidator.getDefaultType());
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
FileInputStream is = new FileInputStream("/system/etc/security/cacerts.bks");
ks.load(is, null);
PKIXParameters params = new PKIXParameters(ks);
CertPathValidatorResult cpvr = cpv.validate(cp, params);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6368 次 |
最近记录: |