服务器聊天java-SSLException

服务器聊天java-SSLException,java,ssl,server,sslexception,Java,Ssl,Server,Sslexception,我被困在一个严肃的地方…,我正在尝试创建一个安全的服务器。所以我不得不修改我的代码,以便能够以安全的方式发送,问题如下 它向我显示错误:javax.net.ssl.SSLException:连接已关闭:javax.net.ssl.SSLException:不支持或无法识别的ssl消息 我已经通过keytool制作了一个证书,但我觉得它不起作用 我到处找了,但我找不到解决问题的办法 这是我的密码: 服务器: System.setProperty("javax.net.ssl.keySto

我被困在一个严肃的地方…,我正在尝试创建一个安全的服务器。所以我不得不修改我的代码,以便能够以安全的方式发送,问题如下

它向我显示错误:
javax.net.ssl.SSLException:连接已关闭:javax.net.ssl.SSLException:不支持或无法识别的ssl消息

我已经通过keytool制作了一个证书,但我觉得它不起作用

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

这是我的密码:

服务器:

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();
        }
客户

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());
        }
我不认为给你服务器线程很重要,因为它没有用


谢谢,祝您愉快:)

您的服务器没有在SSL中侦听,因为您呼叫了错误的工厂。你需要的是。试一试

ServerSocketFactory serverSocketFactory = SSLServerSocketFactory.getDefault();