首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >服务器聊天java - SSLException

服务器聊天java - SSLException
EN

Stack Overflow用户
提问于 2021-04-29 18:23:20
回答 1查看 63关注 0票数 0

我被困在一个严重的地方.,我试图创建一个安全的服务器。因此,我必须修改我的代码才能以安全的方式发送,问题如下。

它显示错误:javax.net.ssl.SSLException: Connection has closed: javax.net.ssl.SSLException: Unsupported or unrecognized SSL message

我已经通过keytool做了一个证书,但是我没有感觉它能工作。

我到处都找过了,但我找不到解决问题的办法.

这是我的密码:

服务器:

代码语言:javascript
复制
System.setProperty("javax.net.ssl.keyStore", "test.store");
        System.setProperty("javax.net.ssl.keyStorePassword", "password");
        ServerSocketFactory serverSocketFactory =
      ServerSocketFactory.getDefault();
    ServerSocket    serverSocket =
      serverSocketFactory.createServerSocket(4444);
        System.out.println("Started...");
        while(true){
            new ServerThread(serverSocket.accept()).start();
        }

客户端

代码语言:javascript
复制
System.setProperty("javax.net.ssl.trustStore", "test.store");
        SocketFactory socketFactory = SSLSocketFactory.getDefault();
        Socket socket  = socketFactory.createSocket("localhost", 4444);
        BufferedReader bf1 = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        PrintWriter writer = new PrintWriter(socket.getOutputStream(), true);
        BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("enter username");
        writer.println(bf.readLine());
        String message = null;
        while(true){
            System.out.println("enter message send to server");
            message = bf.readLine();
            if(message.equals("quit")){
                socket.close();
                break;
            }
            writer.println(message);
            System.out.println("message from server : " + bf1.readLine());
        }

我不认为给你serverThread是很重要的,因为它没有用。

谢谢,祝你今天愉快:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-01 10:00:45

您的服务器没有在SSL中侦听,因为您正在调用错误的工厂。相反,您将需要SSLServerSocketFactory。试一试

代码语言:javascript
复制
ServerSocketFactory serverSocketFactory = SSLServerSocketFactory.getDefault();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67323088

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档