各位高手,小弟问个问题。项目决定在rmi远程操作时,传输的数据必须为密文形式发送。怎么建立rmi,生成证书不说了,只是我自定义了sslsocket,服务端代码大致如下(我稍作了修改):
public class RMISSLServerSocketFactory implements RMIServerSocketFactory { private SSLServerSocketFactory ssf = null; public RMISSLServerSocketFactory(String server_crt, String client_crt,
   String password) throws Exception {
  try {
   SSLContext ctx = SSLContext.getInstance("TLS");   KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
   TrustManagerFactory tmf = TrustManagerFactory
     .getInstance("SunX509");   KeyStore ks = KeyStore.getInstance("JKS");
   KeyStore tks = KeyStore.getInstance("JKS");   ks.load(new FileInputStream(server_crt), password.toCharArray());
   tks.load(new FileInputStream(client_crt), password.toCharArray());   kmf.init(ks, password.toCharArray());
   tmf.init(tks);   ctx.init(kmf.getKeyManagers(), tmf.getTrustManagers(), null);   ssf = ctx.getServerSocketFactory();
   
  } catch (Exception err) {
   err.printStackTrace();
  }
 } public ServerSocket createServerSocket(int port) throws IOException {
  SSLServerSocket mysslsocket = (SSLServerSocket)ssf.createServerSocket(port);
  
  return mysslsocket;
 }客户端简单:
ppublic class RMISSLClientSocketFactory implements RMIClientSocketFactory,
  Serializable {
 
 public Socket createSocket(String host, int port) {
  try {
   SSLSocketFactory factory=(SSLSocketFactory)SSLSocketFactory.getDefault();    Socket s=factory.createSocket("localhost",port);   return s;
  } catch (Exception err) {
   err.printStackTrace();
  }
  return null;
 }
可是我用抓包工具查看还是属于明文传输,这是为什么呢,难道有哪里设置不对吗