Нет наборов шифров в общих сокетах Java

Я недавно использовал сокеты SSL для системы обмена сообщениями.

Я наконец начал использовать выданный CA сертификат. Я импортировал его в свое хранилище ключей, установил свойство хранилища ключей и запустил свой клиент, но я продолжаю получать исключения рукопожатия при попытке отправить данные.

Я включил режим отладки и обнаружил, что это связано сno cipher suites supported, Есть мысли по этому поводу?

Если это помогает, он также говорит, что игнорирует около 10 наборов шифров из TLSV1 и TLSV1.1.

Я также установил Криптографическую политику неограниченной силы.

Код клиента

public static void Message(String args){
    System.setProperty("https.protocols", "TLSv1");
    System.setProperty("javax.net.debug", "all");

    try
    {
        String host = "localhost";
        int port = 3498;
        InetAddress address = InetAddress.getByName(host);

        socket = (SSLSocket)SSLSocketFactory.getDefault().createSocket(address, port);

        //Send the message to the server
        OutputStream os = socket.getOutputStream();
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);

        String number = "Hello from the other side!";

        String sendMessage = number + "\n";
        bw.write(args);
        bw.flush();
        System.out.println("Message sent to the server : "+sendMessage);

        //Get the return message from the server

    }
    catch (Exception exception)
    {
        exception.printStackTrace();
    }
    finally
    {
        //Closing the socket
        try
        {
            socket.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

Код сервера

private void initListen() {
    System.setProperty("javax.net.ssl.keyStore", "/Users/181095/server.jks");
    try {


        SSLServerSocketFactory sf = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();

        SSLServerSocket serverSocket = (SSLServerSocket)sf.createServerSocket(Ting.port);



        System.out.println("Server Started and listening to the port "
                + Ting.port);

        // Server is running always. This is done using this while(true)
        // loop
        while (true) {

            // Reading the message from the client
            socket = (SSLSocket)serverSocket.accept();


            InputStream is = socket.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String input = br.readLine();
            System.out.println("Message received from client is " + input);
            /*if(PacketReader.isPacket(input)){
                if(PacketReader.shouldSendDataBack(input)){

                }
            }*/
            /*
             * 
             * if client has data waiting or client has new data
             * request new data.
             * else, wait 5 seconds and repeat
             * 
             * 
             */



            // Sending the response back to the client.
            /*OutputStream os = socket.getOutputStream();
            OutputStreamWriter osw = new OutputStreamWriter(os);
            BufferedWriter bw = new BufferedWriter(osw);
            bw.write("");*/

            //TODO Implement method to send this data to client storage data.

            //bw.flush();
        }
    //Check for exceptions and try to close the socket.
    } catch (Exception e) {

        e.printStackTrace();
        } finally {
            try {
                socket.close();
            } catch (Exception e) {
        }
    }
}

Редактировать: Я только что добавил пароль, но в моей записи / сертификате нет ключа. Может ли это быть причиной ошибки? Как я могу это исправить?

Ответы на вопрос(1)

Ваш ответ на вопрос