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