相当新的Java安全性,我正在尝试编写自定义X509TrustManager以验证当我连接到服务器时,它有一个受信任的证书链(来自我已配置的信任库),或者,如果没有,那么证书它提供了自定义信任管理器具有的SHA256指纹之一(我也提供了)。我认为编码这将是一个简单的灌篮(如JSSE ref暗示的那样) - 委托给默认的信任管理器,捕获指示类似"证书链不信任的特定异常",检查是否相反指纹匹配,如果匹配,则忽略该异常,否则传播它。显然,没有好的" CertificateUntrustedException"。我得到的是以下异常。是否没有供应商独立的解决此问题的方法(或检查可信证书或外部提供的指纹的更高级别问题)。
谢谢!
sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:387) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:324) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:229) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:124) 在com.company.TestConnection $ LocalExtendedX509TrustManager.checkServerTrusted(TestConnection.java:116)