use*_*578 14 java sockets ssl jsse
我想创建一个应用程序使用SSLSocket:客户端发送String到服务器,服务器将大写,String然后发送回客户端进行显示.
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);
}
}
}
Run Code Online (Sandbox Code Playgroud)
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());
}
}
}
Run Code Online (Sandbox Code Playgroud)
当运行SSLServer.它显示以下错误:
javax.net.ssl.SSLException: No available certificate or key corresponds
to the SSL cipher suites which are enabled
Run Code Online (Sandbox Code Playgroud)
我有搜索和做某些方法但是..你能帮助我吗?
小智 13
这将生成证书:
keytool -genkey -keystore yourKEYSTORE -keyalg RSA
Run Code Online (Sandbox Code Playgroud)
输入yourPASSWORD,然后使用ssl调试信息启动服务器(将yourKEYSTORE放入带有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
Run Code Online (Sandbox Code Playgroud)
比启动客户端(将yourKEYSTORE放入SSLClient.class目录):
java -Djavax.net.ssl.trustStore=yourKEYSTORE -Djavax.net.ssl.trustStorePassword=yourPASSWORD SSLClient
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
43730 次 |
| 最近记录: |