在证书的帮助下使用 SSL 套接字连接到服务器
Connect to Server using SSL Socket with the help of certificate
我有一个使用 SSL Java 编写的 SSL 服务器 Socket.Server 运行 properly.Now 我需要使用客户端应用程序连接到服务器。
客户代码:
System.setProperty("javax.net.ssl.trustStore", "C:\cacerts.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
try {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("127.0.0.1", 800);
InputStream inputstream = System.in;
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
OutputStream outputstream = sslsocket.getOutputStream();
OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream);
BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
bufferedwriter.write("test"+"\n");
bufferedwriter.flush();
bufferedwriter.close();
} catch (Exception exception) {
exception.printStackTrace();
}
在上面的代码中,我使用了与信任库相同的密钥库文件。
在客户端使用与信任库相同的密钥库文件是个好主意吗?如果不是,我如何以安全的方式连接到服务器?
In the above code,i'm using the same keystore file as truststore.
不,你不是。您只使用信任库。如果您使用的是密钥库,则必须指定它:
System.setProperty("javax.net.ssl.keyStore", ...);
System.setProperty("javax.net.ssl.keyStorePassword", ...);
你当然应该而不是对两者使用相同的文件。
我有一个使用 SSL Java 编写的 SSL 服务器 Socket.Server 运行 properly.Now 我需要使用客户端应用程序连接到服务器。
客户代码:
System.setProperty("javax.net.ssl.trustStore", "C:\cacerts.jks");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
try {
SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("127.0.0.1", 800);
InputStream inputstream = System.in;
InputStreamReader inputstreamreader = new InputStreamReader(inputstream);
BufferedReader bufferedreader = new BufferedReader(inputstreamreader);
OutputStream outputstream = sslsocket.getOutputStream();
OutputStreamWriter outputstreamwriter = new OutputStreamWriter(outputstream);
BufferedWriter bufferedwriter = new BufferedWriter(outputstreamwriter);
bufferedwriter.write("test"+"\n");
bufferedwriter.flush();
bufferedwriter.close();
} catch (Exception exception) {
exception.printStackTrace();
}
在上面的代码中,我使用了与信任库相同的密钥库文件。
在客户端使用与信任库相同的密钥库文件是个好主意吗?如果不是,我如何以安全的方式连接到服务器?
In the above code,i'm using the same keystore file as truststore.
不,你不是。您只使用信任库。如果您使用的是密钥库,则必须指定它:
System.setProperty("javax.net.ssl.keyStore", ...);
System.setProperty("javax.net.ssl.keyStorePassword", ...);
你当然应该而不是对两者使用相同的文件。