当调用checkServerTrusted
实现类的方法时X509TrustManager
,我需要获取与证书链相关的所有验证错误,包括
- 证书路径验证问题。例如 CA 不受信任
- 证书字段验证问题。例如过期的证书,无效的扩展密钥使用
这背后的动机是,我可以在用户将其添加为“例外”之前向用户展示证书验证问题,就像 Firefox 现在所做的那样。但是,现在,一旦发现路径验证问题,CertPathValidatorException
就会抛出 a,但它没有提供有关证书中字段有效性的信息。我该如何实施?
经过一番阅读,我发现CertPath
API 提供了这样的功能,并发现 PKIX 实现是对此的包装,但只是不返回CertPathValidatorResult
. 我想在返回所有验证问题的同时最大限度地利用现有的 JAVA 功能(无需将我自己的自定义包装器写入 API)。