Jetty Websocket 连接 - 忽略自签名证书

Posted

技术标签:

【中文标题】Jetty Websocket 连接 - 忽略自签名证书【英文标题】:Jetty Websocket connection - ignore self signed certs 【发布时间】:2014-12-05 21:27:57 【问题描述】:

有没有办法(除了打开浏览器并接受自签名证书)告诉 Jetty WebSockets 在打开 websocket 连接时忽略自签名证书错误?我已经验证我的代码在存在有效证书的环境中工作,因此这肯定与在其他环境中使用自签名证书有关。

 public static void main(String[] args) 
    String destUri = "wss://example.ws.uri.com";
    if (args.length > 0) 
        destUri = args[0];
    


    SslContextFactory sslContextFactory = new SslContextFactory();
    WebSocketClient client = new WebSocketClient(sslContextFactory);
    SimpleEchoSocket socket = new SimpleEchoSocket();
    try 
        client.start();
        URI echoUri = new URI(destUri);
        ClientUpgradeRequest request = new ClientUpgradeRequest();
        client.connect(socket, echoUri, request);
        System.out.printf("Connecting to : %s%n", echoUri);
        socket.awaitClose(5, TimeUnit.SECONDS);
     catch (Throwable t) 
        t.printStackTrace();
     finally 
        try 
            client.stop();
         catch (Exception e) 
            e.printStackTrace();
        
    

【问题讨论】:

【参考方案1】:

你可以告诉 SslContextFactory 不要验证证书

SslContextFactory sec = new SslContextFactory();
sec.setValidateCerts(false);

【讨论】:

以上是关于Jetty Websocket 连接 - 忽略自签名证书的主要内容,如果未能解决你的问题,请参考以下文章

jetty 9,websockets 和关闭服务器端的 websocket 连接

Jetty Websocket连接中未退出的主要方法

Jetty 9.2.x Websocket Server连接在使用Firefox而不是Chrome时连接后自动关闭

Jetty Websocket 服务器在本地工作,但远程连接失败并出现“主机已关闭”错误,如何解决?

Jetty WebSocket 代理

让 Jetty Websocket 使用与 JavaScript Websocket 相同的语言