2014-12-05 834 views
0

有没有办法告诉码头的WebSockets打开WebSocket连接时忽略自签名证书的错误(比打开浏览器并接受自签名证书等)?我已验证我的代码在存在有效证书的环境中工作,因此这与在其他环境中使用自签名证书有关。码头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);