SignalR JAVA 客户端 HTTPS 连接证书问题

问题描述 投票:0回答:1

尝试在我的客户端和服务器之间创建连接(ASP.Net Core 2.2 - SignalR)。服务器有一个自签名证书,但客户端拒绝:

主机名 XXX 未验证:

证书:XXX

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

主题替代名称:[] 在 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)

有没有办法将我的无效证书添加为例外?显然它没有在 jre/lib/security 中使用我的 cacerts,因为在我的服务器上执行一个简单的 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();
    }
java asp.net-core ssl-certificate signalr signalr.client
1个回答
0
投票

对我有用的是使用

setHttpClientBuilderCallback
设置
OkHttpClient.Builder
接受任何具有特定证书指纹的“自签名证书”。

仅供参考,我正在使用 Signalr Java 客户端 8.0.1。

© www.soinside.com 2019 - 2024. All rights reserved.