Проблемы с сертификатом HTTPS-соединения клиента SignalR JAVA - PullRequest
1 голос
/ 17 февраля 2020

Попытка создать соединение между моим клиентом и сервером (ASP. Net Core 2.2 - SignalR). Сервер имеет самозаверяющий сертификат, от которого клиент отказывается:

Имя хоста XXX не проверено:

сертификат: XXX

DN: XXX, O = XXX, L = XXX , ST = XXX, C = XXX

subjectAltNames: [] в io.reactivex.internal.util.ExceptionHelper.wrapOrThrow (ExceptionHelper. java: 46) в io.reactivex.internal.observers.BlockingMultiObserver. blockingGet (BlockingMultiObserver. java: 93) в io.reactivex.Completable.blockingAwait (Completable. java: 1227)

Есть ли способ добавить мой недействительный сертификат в качестве исключения? Очевидно, он не использует мои cacerts в jre / lib / security, потому что выполнение простого запроса get на моем сервере работает без каких-либо проблем.

Как собирается мой клиент SignalR:

public Messenger(String address) {
        h = HubConnectionBuilder.create(address+"/ChatHub").build();
        h.on("Send", (message) -> {
                System.out.println("New message: " + message);
            }
        }, String.class);

        h.onClosed( (error) -> {
            JOptionPane.showMessageDialog(null, "Connection to the server lost.", "Error", JOptionPane.ERROR_MESSAGE);
            boolean connection = false;

            while(!connection) {
                //System.out.println("Trying to reconnect..");
                h.start();
                if( h.getConnectionState() == HubConnectionState.CONNECTED) {
                    connection = true;
                    JOptionPane.showMessageDialog(null, "Reconnected to the server.", "Success", JOptionPane.ERROR_MESSAGE);
                }
                try {
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });

        h.start().blockingAwait();
    }
...