【发布时间】:2022-01-27 03:40:14
【问题描述】:
是否可以创建 Java SSL Websocket,以便对等方可以使用wss://127.0.0.1 进行连接?
我目前的实现是使用org.java_websocket.server.DefaultSSLWebSocketServerFactory:
WebSocketServerFactory socketFactory = new DefaultWebSocketServerFactory();
// Make it secure
char[] passphrase = tempPassword.toCharArray();
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
try (FileInputStream fis = new FileInputStream(keystoreFile)) {
keystore.load(fis, passphrase);
KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
keyManagerFactory.init(keystore, passphrase);
TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
trustManagerFactory.init(keystore);
SSLContext ctx = SSLContext.getInstance("TLS");
ctx.init(keyManagerFactory.getKeyManagers(), trustManagerFactory.getTrustManagers(), null);
socketFactory = new DefaultSSLWebSocketServerFactory(ctx);
} catch (Exception e) {
System.out.println(e.getMessage());
throw e;
}
但是当我尝试使用它时,我从 OkHttp3 收到以下错误:
Transport exception caused by javax.net.ssl.SSLHandshakeException: connection closed。
这是完整的堆栈跟踪:https://pastebin.com/raw/Y3RvqRrt
【问题讨论】:
-
通常异常堆栈跟踪更广泛并且包含更多信息。请编辑问题以包含异常的整个堆栈跟踪。
-
@PresidentJamesK.Polk 添加了堆栈跟踪 :)
标签: java ssl websocket okhttp java-websocket