Java应用程序中的PKIX路径构建失败

JavaCake的

将我的应用程序从Windows 2000迁移到Windows 2008 R2 Server之后,我一直在努力运行我的应用程序近一周。

程序,流程:

  1. 已安装Java JDK 1.7.0_25
  2. 将系统环境变量设置JAVA_HOMEC:\Progra~1\Java\jdk1.7.0_25\
  3. 使用以下命令将证书导入到cacerts中 keytool
  4. 确保证书存在于keytool-list

我尝试重复执行步骤3InstallCert以确保没有弄乱任何内容。

上面的方法不能解决我的问题,所以我尝试以编程方式做到这一点:

System.setProperty("javax.net.ssl.trustStore",
"C:/Progra~1/Java/jdk1.7.0_25/jre/lib/security/cacerts");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");

仍然没有运气。我被困住了,不太确定从这里走哪条路。

堆栈跟踪:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1886)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:804)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:515)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
    at util.SMS.send(SMS.java:93)
    at domain.ActivationSMSSenderMain.sendActivationMessagesToCustomers(ActivationSMSSenderMain.java:80)
    at domain.ActivationSMSSenderMain.<init>(ActivationSMSSenderMain.java:44)
    at domain.ActivationSMSSenderMain.main(ActivationSMSSenderMain.java:341)
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385)
    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:326)
    at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323)
    ... 14 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
    at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
    at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
    at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380)
    ... 20 more

更新:

双方System.out.println(System.getProperty("javax.net.ssl.trustStore"));System.out.println(System.getProperty("javax.net.ssl.keyStore"));

返回null

b1

我遇到了类似的问题,其原因和解决方案都非常简单:

主要原因:未使用keytool导入适当的证书

注意:仅导入根CA(或您自己的自签名)证书

注意:不要导入中间的非证书链根证书

imap.gmail.com解决方案示例

  1. 确定根CA证书:

    openssl s_client -showcerts -connect imap.gmail.com:993
    

    在这种情况下,我们发现根CA是Equifax安全证书颁发机构

  2. 下载根CA证书
  3. 通过与此处找到的信息进行比较,验证下载的证书具有正确的SHA-1和/或MD5指纹
  4. 进口证书javax.net.ssl.trustStore

    keytool -import -alias gmail_imap -file Equifax_Secure_Certificate_Authority.pem
    
  5. 运行您的Java代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

GlassFish 4和Java Mail:PKIX路径构建失败

来自分类Dev

GlassFish 4和Java Mail:PKIX路径构建失败

来自分类Dev

Jenkins 因“PKIX 路径构建”错误而失败

来自分类Dev

Wikipedia Android应用程序构建失败

来自分类Dev

Wikipedia Android应用程序构建失败

来自分类Dev

Proguard 构建应用程序失败:transformClassesAndResourcesWithProguardForDebugAndroidTest

来自分类Dev

Java“ sun.security.validator.ValidatorException:PKIX路径构建失败”证书验证错误

来自分类Dev

Flutter应用程序构建中的任务“:sms:verifyReleaseResources”的执行失败,并且线程“ main”中的异常java.lang.NullPointerException

来自分类Dev

在Visual Studio 2013中构建Cordova应用程序时构建失败

来自分类Dev

Java / jsp Web应用程序中的FileOutputStream路径

来自分类Dev

在发布模式Xamarin Android中构建应用程序时,“链接程序集”任务意外失败

来自分类Dev

在发布模式Xamarin Android中构建应用程序时,“链接程序集”任务意外失败

来自分类Dev

简单的双向RMI SSL连接,PKIX路径构建失败

来自分类Dev

连接到URL时出错-PKIX路径构建失败

来自分类Dev

PKIX路径构建失败错误在Oracle JDK上仍然存在

来自分类Dev

简单的双向RMI SSL连接,PKIX路径构建失败

来自分类Dev

PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException

来自分类Dev

Keycloak 适配器 pkix 路径构建失败

来自分类Dev

在Windows Service应用程序中构建输出文件路径

来自分类Dev

Gradle Android应用程序构建因IntelliJ而失败(找不到Java,但设置正确)

来自分类Dev

Travis构建在Yeoman Angular生成的应用程序中失败

来自分类Dev

Hello World应用程序构建失败(Eclipse Juno中的CodenameOne)

来自分类Dev

使用“gradle-3.5”构建Web应用程序但在JPA中总是失败

来自分类Dev

失败-上下文路径中已部署的应用程序/但上下文无法启动

来自分类Dev

无法在 Firebase 中构建应用程序

来自分类Dev

ROR应用程序中的WKHTMLTOPDF路径

来自分类Dev

django 中应用程序的媒体路径

来自分类Dev

任务应用程序的Gradle构建失败:processReleaseResources

来自分类Dev

由于Crosswalk,构建Ionic应用程序失败

Related 相关文章

  1. 1

    GlassFish 4和Java Mail:PKIX路径构建失败

  2. 2

    GlassFish 4和Java Mail:PKIX路径构建失败

  3. 3

    Jenkins 因“PKIX 路径构建”错误而失败

  4. 4

    Wikipedia Android应用程序构建失败

  5. 5

    Wikipedia Android应用程序构建失败

  6. 6

    Proguard 构建应用程序失败:transformClassesAndResourcesWithProguardForDebugAndroidTest

  7. 7

    Java“ sun.security.validator.ValidatorException:PKIX路径构建失败”证书验证错误

  8. 8

    Flutter应用程序构建中的任务“:sms:verifyReleaseResources”的执行失败,并且线程“ main”中的异常java.lang.NullPointerException

  9. 9

    在Visual Studio 2013中构建Cordova应用程序时构建失败

  10. 10

    Java / jsp Web应用程序中的FileOutputStream路径

  11. 11

    在发布模式Xamarin Android中构建应用程序时,“链接程序集”任务意外失败

  12. 12

    在发布模式Xamarin Android中构建应用程序时,“链接程序集”任务意外失败

  13. 13

    简单的双向RMI SSL连接,PKIX路径构建失败

  14. 14

    连接到URL时出错-PKIX路径构建失败

  15. 15

    PKIX路径构建失败错误在Oracle JDK上仍然存在

  16. 16

    简单的双向RMI SSL连接,PKIX路径构建失败

  17. 17

    PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException

  18. 18

    Keycloak 适配器 pkix 路径构建失败

  19. 19

    在Windows Service应用程序中构建输出文件路径

  20. 20

    Gradle Android应用程序构建因IntelliJ而失败(找不到Java,但设置正确)

  21. 21

    Travis构建在Yeoman Angular生成的应用程序中失败

  22. 22

    Hello World应用程序构建失败(Eclipse Juno中的CodenameOne)

  23. 23

    使用“gradle-3.5”构建Web应用程序但在JPA中总是失败

  24. 24

    失败-上下文路径中已部署的应用程序/但上下文无法启动

  25. 25

    无法在 Firebase 中构建应用程序

  26. 26

    ROR应用程序中的WKHTMLTOPDF路径

  27. 27

    django 中应用程序的媒体路径

  28. 28

    任务应用程序的Gradle构建失败:processReleaseResources

  29. 29

    由于Crosswalk,构建Ionic应用程序失败

热门标签

归档