0

I'm trying to convert some python web socket code to Java (code that talks to a consumer device:)

        ssl_context = ssl.create_default_context()
        ssl_context.check_hostname = False
        ssl_context.verify_mode = ssl.CERT_NONE
        ws_connection_local = connect(f"wss://{target_ip}:{WEBSOCKET_SSL_PORT}", ssl_context=ssl_context)

my Java .. (actually groovy) replacement is this...

CountDownLatch latch = new CountDownLatch(1);

String url = "wss://$host:$port"
WebSocket ws = HttpClient
        .newHttpClient()
        .newWebSocketBuilder()
        .buildAsync(URI.create(url), new WebSocketClient(latch))

whereupon I get the error:

java.util.concurrent.CompletionException: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

On the theory that the problem is something to do with SSL certificates or host verification, I followed this advice prior to opening the connection: How to disable SSL verification?

and set trust all certificates with the recommended no-op HttpsURLConnection.setDefaultSSLSocketFactory etc and HttpsURLConnection.setDefaultHostnameVerifier etc. However that didn't help, I get the same error. I also set debugger breakpoints in the TrustManager and HostnameVerifier to see if they were invoked, and they were not.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.