java https x509trustmanager,java – 尝试连接到Web套接字服务器时,继续获取No X509TrustManager实现可用错误...

我有以下代码用于使用安全websockets连接到我的

Java应用程序中的Web套接字服务器.

private boolean openConnection(boolean tried) {

String sslFile =

ConfigMgr.getValue(Constants.SSL_CFG_NAME, "sslfile");

String sslPassword =

ConfigMgr.getValue(Constants.SSL_CFG_NAME, "sslpassword");

try {

System.setProperty("javax.net.ssl.trustStore",

//sslFile);

System.setProperty("javax.net.ssl.trustStorePassword", sslPassword);

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

System.out.println(System.getProperty("javax.net.ssl.trustStorePassword"));

} catch (Exception e) {

if (!tried) {

logger.error("unable to get certificates", e);

}

return false;

}

try {

WebSocketContainer container = ContainerProvider

.getWebSocketContainer();

container.connectToServer(this, new URI(websocketServer));

} catch (Exception e) {

// only log error trying to connection to web application first

// time

if (!tried) {

logger.error("error while trying to connect daemon to websocket"

+ " server", e);

}

return false;

}

return true;

}

我可以从我的印刷声明中看到

System.setProperty("javax.net.ssl.trustStorePassword", sslPassword);

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

那个正确的密码和证书(在这种情况下是一个.cer)与内容

-----BEGIN CERTIFICATE-----

MIIDmTCCAoGgAwIBAgIEB/pKmDANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJV

UzELMAkGA1UECBMCUEExGDAWBgNVBAcTD0ZvcnQgV2FzaGluZ3RvbjEXMBUGA1UE

ChMOTWlrcm9zIFN5c3RlbXMxFzAVBgNVBAsTDk1pa3JvcyBTeXN0ZW1zMRUwEwYD

VQQDEwxKYXNvbiBSaWNsZXMwHhcNMTYwNjIyMTcwOTQ0WhcNMTYwOTIwMTcwOTQ0

WjB9MQswCQYDVQQGEwJVUzELMAkGA1UECBMCUEExGDAWBgNVBAcTD0ZvcnQgV2Fz

aGluZ3RvbjEXMBUGA1UEChMOTWlrcm9zIFN5c3RlbXMxFzAVBgNVBAsTDk1pa3Jv

cyBTeXN0ZW1zMRUwEwYDVQQDEwxKYXNvbiBSaWNsZXMwggEiMA0GCSqGSIb3DQEB

AQUAA4IBDwAwggEKAoIBAQCsha/dfnWIibmtySZuE8H+3AOa8/QuARKsFgmZJmWZ

ZErjlzN6liUO1Q9pzYXoka69tiIOw0KDWwGAHCAK8mjNpdcs9XiYq3QMZjNAUhqP

rRU5oDn9jwCwQnpepBhH6uiMaBcvrMsvLTaD4HvwoVyMROEhIWywBYMdHk86gcGr

ALz+iMhE8017CAA2n/35fqwDjxeGxDgY3Ove/fTKoeA+ItKOwsYeFZUeej9omTz+

UcdXJ6fu312At/Sh7YZpgP3LsX+rMfdD9sHn80UTy46UoT5UNW0Me40+S47/oh4H

VeOeR5XpcBPHnqbAJAvPAqD/sF9xbvhESwfoSkMB26drAgMBAAGjITAfMB0GA1Ud

DgQWBBQ7YV0yIawkjCCp0crz52BGwMPHnzANBgkqhkiG9w0BAQsFAAOCAQEAdmwo

8ZXZMxKzyfolVKj2UQBzkeSies133nRns0jFbkzm8N4lNtcWiShfLtlTQAuUZNMl

JK7Eax+weLq7tNMZyBdLWse8E4oe8m3XY/Xe7oQGs2EzdlHVZk7JuDHU63mC33cz

xvoNutE+y1Zonce9WaxACuNNMuxyYTVg6yqz/psjYE2YOajc1MmXjI38FkfmQ1bL

ByeNEvnLT1IcQ0OmaSuk2ESj144y/EtkN9/GKFOTPjSRL3zIStNBytn7WNlFV/ch

qaF/eOJRQMlHDosX40IrkHHIoc/pbTKYmjoreC/+biMKc0gUk+EN/uBrcJrVRFnl

dXTNJe6/sNzvkTc/IA==

-----END CERTIFICATE-----

正确设置.

但是当我运行我的代码时,在container.connectToServer(这个,新的URI(websocketServer))时会打印以下错误;跑了

javax.websocket.DeploymentException: The HTTP request to initiate the WebSocket connection failed

at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:434) ~[tomcat7-websocket.jar:7.0.68]

at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:184) ~[tomcat7-websocket.jar:7.0.68]

at

cored.web.CoreWebSocket.openConnection(CoreWebSocket.java:278) [cored.jar:3.0.10.160712122615]

at cored.web.CoreWebSocket.establishConnection(CoreWebSocket.java:1150) [cored.jar:3.0.10.160712122615]

at

cored.web.CoreWebSocket.access$100(CoreWebSocket.java:85) [cored.jar:3.0.10.160712122615]

at

cored.web.CoreWebSocket$2.execute(CoreWebSocket.java:138) [cored.jar:3.0.10.160712122615]

at utils.AThread.run(AThread.java:51)

[utils.jar:3.0.10.160712122615]

Caused by: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$WrapperFuture.get(AsyncChannelWrapperSecure.java:511) ~[tomcat7-websocket.jar:7.0.68]

at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:379) ~[tomcat7-websocket.jar:7.0.68]

... 6 more

Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at sun.security.ssl.Handshaker.checkThrown(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.SSLEngineImpl.writeAppRecord(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.SSLEngineImpl.wrap(Unknown Source) ~[?:1.8.0_92]

at javax.net.ssl.SSLEngine.wrap(Unknown Source) ~[?:1.8.0_92]

at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$WebSocketSslHandshakeThread.run(AsyncChannelWrapperSecure.java:371) ~[tomcat7-websocket.jar:7.0.68]

Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at sun.security.ssl.Alerts.getSSLException(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.SSLEngineImpl.fatal(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker.fatalSE(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker.fatalSE(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker.processLoop(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$1.run(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$1.run(Unknown Source) ~[?:1.8.0_92]

at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$DelegatedTask.run(Unknown Source) ~[?:1.8.0_92]

at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$WebSocketSslHandshakeThread.run(AsyncChannelWrapperSecure.java:397) ~[tomcat7-websocket.jar:7.0.68]

Caused by: java.security.cert.CertificateException: No X509TrustManager implementation available

at sun.security.ssl.DummyX509TrustManager.checkServerTrusted(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker.processLoop(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$1.run(Unknown Source) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$1.run(Unknown Source) ~[?:1.8.0_92]

at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_92]

at sun.security.ssl.Handshaker$DelegatedTask.run(Unknown Source) ~[?:1.8.0_92]

at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$WebSocketSslHandshakeThread.run(AsyncChannelWrapperSecure.java:397) ~[tomcat7-websocket.jar:7.0.68]

我知道我使用的.cer文件没有损坏,因为它也在tomcat webserver上使用并且没有问题.

可能导致此No X509TrustManager实现可用错误的原因是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值