Java 尝试使用ssl发送消息soap时发生证书链接错误
我正在编写本教程,用于向服务器发送带有soap和ssl的消息: 我使用linux(ubuntu),我用于连接的属性是 (“changeit”是默认密码): 但我得到了这个错误:Java 尝试使用ssl发送消息soap时发生证书链接错误,java,security,ssl,soap,certificate,Java,Security,Ssl,Soap,Certificate,我正在编写本教程,用于向服务器发送带有soap和ssl的消息: 我使用linux(ubuntu),我用于连接的属性是 (“changeit”是默认密码): 但我得到了这个错误: javax.net.ssl.SSLHandshakeException: Certificate chaining error at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131) at java.base/sun.s
javax.net.ssl.SSLHandshakeException: Certificate chaining error
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:325)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:268)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:423)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:167)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1462)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1370)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:171)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
at com.SSLClient.setSSLConnection(SSLClient.java:42)
at com.SSLClient.sendRequest(SSLClient.java:69)
at com.Proyecto.main(Proyecto.java:99)
Caused by: sun.security.validator.ValidatorException: Certificate chaining error
at java.base/sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:208)
at java.base/sun.security.validator.Validator.validate(Validator.java:264)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629)
... 16 more
Entra a la excepción del envío de datos en Proyecto.java
java.lang.NullPointerException
at com.SSLClient.releaseConnection(SSLClient.java:54)
at com.SSLClient.sendRequest(SSLClient.java:91)
at com.Proyecto.main(Proyecto.java:99)
我不知道我的配置是否有问题,因为我导入了服务器企业在“/etc/ssl/certs/java/keystore.jks”和“/etc/ssl/certs/java/cacerts”中提供给我的所有3个证书使用以下命令:sudo keytool-import-trustcacerts-alias Cams1-file/home/xxx/Escritorio/xxx.crt-keystore cacerts和sudo keytool-import-trustcacerts-alias Cams1-file/home/xxx/Escritorio/xxx.crt-keystore keystore.jks
非常感谢你的帮助
javax.net.ssl.SSLHandshakeException: Certificate chaining error
at java.base/sun.security.ssl.Alert.createSSLException(Alert.java:131)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:325)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:268)
at java.base/sun.security.ssl.TransportContext.fatal(TransportContext.java:263)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:645)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:464)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:360)
at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:396)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:445)
at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:423)
at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:182)
at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:167)
at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1462)
at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1370)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:437)
at java.base/sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:567)
at java.base/sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:171)
at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:142)
at com.SSLClient.setSSLConnection(SSLClient.java:42)
at com.SSLClient.sendRequest(SSLClient.java:69)
at com.Proyecto.main(Proyecto.java:99)
Caused by: sun.security.validator.ValidatorException: Certificate chaining error
at java.base/sun.security.validator.SimpleValidator.engineValidate(SimpleValidator.java:208)
at java.base/sun.security.validator.Validator.validate(Validator.java:264)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231)
at java.base/sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:132)
at java.base/sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:629)
... 16 more
Entra a la excepción del envío de datos en Proyecto.java
java.lang.NullPointerException
at com.SSLClient.releaseConnection(SSLClient.java:54)
at com.SSLClient.sendRequest(SSLClient.java:91)
at com.Proyecto.main(Proyecto.java:99)