Как игнорировать SSL-сертификат в springframe.sock - PullRequest
0 голосов
/ 27 апреля 2020

В моей демонстрации сервера Springweb мне нужен клиент websocket для подключения моего сервера через sock Js. Но сейчас это ошибка:

SEVERE: TransportRequest[url=wss://localhost:8443/websocket/sj/endpoint-websocket/547/fbc08eaee4fd44dd9aadeb3fa5398e03/websocket] failed. Falling back on next transport.
javax.websocket.DeploymentException: The HTTP request to initiate the WebSocket connection failed
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:372)
    at org.springframework.web.socket.client.standard.StandardWebSocketClient$1.call(StandardWebSocketClient.java:152)
    at org.springframework.web.socket.client.standard.StandardWebSocketClient$1.call(StandardWebSocketClient.java:149)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.util.concurrent.ExecutionException: javax.net.ssl.SSLHandshakeException: General SSLEngine problem
    at org.apache.tomcat.websocket.AsyncChannelWrapperSecure$WrapperFuture.get(AsyncChannelWrapperSecure.java:511)
    at org.apache.tomcat.websocket.WsWebSocketContainer.connectToServer(WsWebSocketContainer.java:309)
    ... 5 more

и:

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:283)
    at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:138)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1325)
    ... 7 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)
    ... 13 more

Я учился java всего один год, и я не знаю, как это сделать. И это мой код:

     connect(String url){
       // Init
       List<Transport> transports = new ArrayList<>(2);
       transports.add(new WebSocketTransport(new StandardWebSocketClient()));
       transports.add(new RestTemplateXhrTransport());
       SockJsClient sockJsClient = new SockJsClient(transports);
       WebSocketStompClient stompClient = new WebSocketStompClient(sockJsClient);
       stompClient.setMessageConverter(new MappingJackson2MessageConverter());
       StompSessionHandler sessionHandler = new StompSessionHandlerImpl();
       // Connect
       StompSession stompSession = stompClient.connect(url, sessionHandler).get();
     }

Я хочу знать: могу ли я использовать sock Js и игнорировать сертификат в springframe? И как? Спасибо.

my spring mvc version : 4.3.2

...