实现自定义X509TrustManager以验证证书或提供指纹的最佳方法

时间:2017-03-24 20:41:49

标签: x509certificate java-security x509trustmanager

相当新的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)

  

0 个答案:

没有答案