在独立的WebSocket中使用SSLContext加载.keystore和.truststore文件

问题描述

我是Java SSL集成概念的新手。

https://github.com/TooTallNate/Java-WebSocket的帮助下,我编写了一个独立的WebSocket(服务器)应用程序。

在我的用例中,我的服务器在创建SSLContext时需要加载.keystore和.truststore文件

 String keyStoreLocation = Paths.get("src","webSocket","resource","server.keystore").toString();

 String trustStoreLocation = Paths.get("src","server.truststore").toString();

 KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
 File keyStoreFile = new File(keyStoreLocation);
 keyStore.load(new FileInputStream(keyStoreFile),keyStorePassword.tochararray());

 KeyManagerFactory keyManagerFactory = 
 KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
 keyManagerFactory.init(keyStore,keyStorePassword.tochararray());

 TrustManagerFactory trustManagerFactory = 
 TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
 trustManagerFactory.init(keyStore);

 SSLContext sslContext = null;
 sslContext = SSLContext.getInstance("TLS");
 sslContext.init(keyManagerFactory.getKeyManagers(),trustManagerFactory.getTrustManagers(),null);

MyWebSocketServer socket = new MyWebSocketServer(new InetSocketAddress(port));
socket.setWebSocketFactory(new DefaultSSLWebSocketServerFactory(sslContext));

按照上述API,我只能在KeyStore中加载一个文件。 我如何在KeyStore中加载两个文件?在理解时我是否缺少某些东西? 我没有使用任何Web应用程序服务器。它只是一个独立的WebSocket服务器,将负责处理外部WS客户端请求。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)