Java应用程序SSLSockets - 身份验证

时间:2013-06-21 15:21:17

标签: java certificate keytool jarsigner jsse

我正在开发一个Java应用程序,我需要通过安全套接字向服务器发送一些字符串,我必须使用我自己的可信CA生成的证书

文件证书是myOwnCRT.crt

客户端

        InputStream is = new FileInputStream("app.config.properties");       
        Properties objProperties = new Properties();
        objProperties.load(is);        
        String ipServer = objProperties.getProperty("ip");             
        String portServer = objProperties.getProperty("port");

        SSLSocketFactory factory = (SSLSocketFactory)SSLSocketFactory.getDefault();
        SSLSocket socketSsl = (SSLSocket)factory.createSocket(idServer, Integer.parseInt(portServer));

        BufferedReader in = new BufferedReader(new InputStreamReader());
        BufferedWriter out = new BufferedWriter(new OutputStreamWriter(socketSsl.getOutputStream()));

服务器

//        System.setProperty("javax.net.ssl.trustStore", "myOwnCRT.crt");
//        System.setProperty("javax.net.ssl.keyStorePassword", "pass");
        SSLServerSocketFactory fact = (SSLServerSocketFactory)SSLServerSocketFactory.getDefault();
        SSLServerSocket socketServidorSsl = (SSLServerSocket)fact.createServerSocket(Integer.parseInt(1099));
        SSLSocket socketSsl = (SSLSocket)socketServidorSsl.accept();

        BufferedReader entrada = new BufferedReader(new InputStreamReader(socketSsl.getInputStream()));

        String line= null;
        System.out.println( "Waiting..." );

        while( (linea = entrada.readLine()) != null ) 
        {
            System.out.println(line);
            System.out.flush();
        }

如何通过SSLSockets向服务器发送两个字符串?

我希望你能帮助我。

非常感谢

1 个答案:

答案 0 :(得分:1)

你可以从做研究开始。阅读keytool和jarsigner的工作原理以及如何使用它们。阅读网络加密标准。如果您不知道,请研究证书和CSR是什么。研究如何使用存储加密数据的后端数据库正确设置身份验证系统。

完成所有这些后,获取白板或图表工具并确定代码范围。说明每个模块如何与其他模块进行交互。

  • 在此处插入其他步骤

然后开始编码。当你的代码不起作用时,你就回到我们这里,问问为什么。