java sslsocket程序,使用SSLSocket Java创建应用程序

I want to create an app use SSLSocket: client send a String to server and server will uppercase that String and send back to client for display.

SSLServer

public class SSLServer {

public static void main(String args[]) throws Exception

{

try{

//Creaet a SSLServersocket

SSLServerSocketFactory factory=(SSLServerSocketFactory) SSLServerSocketFactory.getDefault();

SSLServerSocket sslserversocket=(SSLServerSocket) factory.createServerSocket(1234);

//Tạo 1 đối tượng Socket từ serversocket để lắng nghe và chấp nhận kết nối từ client

SSLSocket sslsocket=(SSLSocket) sslserversocket.accept();

//Tao cac luong de nhan va gui du lieu cua client

DataInputStream is=new DataInputStream(sslsocket.getInputStream());

PrintStream os=new PrintStream(sslsocket.getOutputStream());

while(true) //khi dang ket noi voi client

{

//Doc du lieu den

String input=is.readUTF();

String ketqua=input.toUpperCase();

//Du lieu tra ve

os.println(ketqua);

}

}

catch(IOException e)

{

System.out.print(e);

}

}

}

SSLClient

public class SSLClient {

public static void main(String args[])

{

try

{

//Mo 1 client socket den server voi so cong va dia chi xac dinh

SSLSocketFactory factory=(SSLSocketFactory) SSLSocketFactory.getDefault();

SSLSocket sslsocket=(SSLSocket) factory.createSocket("127.0.0.1",1234);

//Tao luong nhan va gui du lieu len server

DataOutputStream os=new DataOutputStream(sslsocket.getOutputStream());

DataInputStream is=new DataInputStream(sslsocket.getInputStream());

//Gui du lieu len server

String str="helloworld";

os.writeBytes(str);

//Nhan du lieu da qua xu li tu server ve

String responseStr;

if((responseStr=is.readUTF())!=null)

{

System.out.println(responseStr);

}

os.close();

is.close();

sslsocket.close();

}

catch(UnknownHostException e)

{

System.out.println(e.getMessage());

}

catch(IOException e)

{

System.out.println(e.getMessage());

}

}

}

When run SSLServer. It displays this error:

javax.net.ssl.SSLException: No available certificate or key corresponds

to the SSL cipher suites which are enabled

I have search and do some ways but.. Can you help me.

解决方案

This will generate certificate:

keytool -genkey -keystore yourKEYSTORE -keyalg RSA

Enter yourPASSWORD and than start your server with ssl debug information(put yourKEYSTORE into directory with SSLServer.class):

java -Djavax.net.ssl.keyStore=yourKEYSTORE -Djavax.net.ssl.keyStorePassword=yourPASSWORD -Djava.protocol.handler.pkgs=com.sun.net.ssl.internal.www.protocol -Djavax.net.debug=ssl SSLServer

Than start your client(put yourKEYSTORE into directory with SSLClient.class):

java -Djavax.net.ssl.trustStore=yourKEYSTORE -Djavax.net.ssl.trustStorePassword=yourPASSWORD SSLClient

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值