微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

转换程序以通过 java-websockets 库使用安全套接字连接

如何解决转换程序以通过 java-websockets 库使用安全套接字连接

我正在尝试转换使用 org.java-websocket 库的现有应用程序,以允许网络服务器使用 https 而不是以前的 http 进行通信。经过研究,我能找到的唯一例子在这里

https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/example/SSLServerExample.java

public static void main(String[] args) throws Exception {
ChatServer chatserver = new ChatServer(
    8887); // Firefox does allow multible ssl connection only via port 443 //tested on FF16

// load up the key store
String STORETYPE = "JKS";
String KEYSTORE = Paths.get("src","test","java","org","java_websocket","keystore.jks")
    .toString();
String STOREPASSWORD = "storepassword";
String KEYPASSWORD = "keypassword";

KeyStore ks = KeyStore.getInstance(STORETYPE);
File kf = new File(KEYSTORE);
ks.load(new FileInputStream(kf),STOREPASSWORD.tochararray());

KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(ks,KEYPASSWORD.tochararray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(ks);

SSLContext sslContext = null;
sslContext = SSLContext.getInstance("TLS");
sslContext.init(kmf.getKeyManagers(),tmf.getTrustManagers(),null);

chatserver.setWebSocketFactory(new DefaultSSLWebSocketServerFactory(sslContext));

chatserver.start();

}

唯一的问题是我很犹豫,因为它似乎希望您访问 keystore.jks 并提供存储密码 + 密钥密码,并且似乎还希望 KeyStore 文件位于正在运行的计算机上(或随软件发布的某个地方)。这不是安全风险吗?

我已经用密钥库对 jar 进行了签名,也许我不需要做更多的事情了?如果这不是这样做的方法,有人可以给我指出一个不同的例子吗?

我使用的这个密钥库是由一家外部公司提供给我们的,用于签署我们的 Java 应用程序。也许这不是我应该使用的密钥库,需要独立于那个应用程序为这个应用程序创建一个

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。