当前位置:  技术问答>java相关

一个SSL的具体编程问题。不知道哪错了?(附代码)

    来源: 互联网  发布时间:2015-04-18

    本文导语:  服务端:       Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());       KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509") ;       KeyStore ks =KeyStore.getInstance("JKS") ;       //"2andnotafnord"是生成jnp2e19.keys...

服务端:
      Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

      KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509") ;
      KeyStore ks =KeyStore.getInstance("JKS") ;
      //"2andnotafnord"是生成jnp2e19.keys文件时的密码
      char[] password = "2andnotafnord".toCharArray() ;
      ks.load(new FileInputStream("jnp2e19.keys"),password);
      kmf.init(ks,password);
      SSLContext context = SSLContext.getInstance("SSLv3") ;
      context.init(kmf.getKeyManagers() ,null,null);

      SSLServerSocketFactory factory
        = context.getServerSocketFactory() ;

      SSLServerSocket server
        = (SSLServerSocket) factory.createServerSocket(111);

      SSLSocket client=(SSLSocket)server.accept(); //接受客户机的连接请求

      String destIP=client.getInetAddress().toString(); //客户机IP地址
      int destport=client.getPort(); //客户机端口号
      System.out.println("connected to "+destIP+" on port "+destport+".");
      DataInputStream in=new DataInputStream(client.getInputStream());
      String inline=in.readLine(); //读取Web浏览器提交的请求信息
      System.out.println("Received:"+inline);
 
客户端:
      Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());

      KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509") ;
      KeyStore ks =KeyStore.getInstance("JKS") ;
      char[] password = "2andnotafnord".toCharArray() ;
      ks.load(new FileInputStream("jnp2e19.keys"),password);
      kmf.init(ks,password);
      SSLContext context = SSLContext.getInstance("SSLv3") ;
      context.init(kmf.getKeyManagers() ,null,null);

      SSLSocketFactory factory
        = context.getSocketFactory() ;

      SSLSocket socket
        = (SSLSocket) factory.createServerSocket("127.0.0.1",111);
      //发送数据
      Writer out = new OutputStreamWriter
          (socket.getOutputStream() );
      String sSend="Firstrn";
      out.write(sSend);
      out.flush();

结果:
   (服务端)
    connected to 127.0.0.1/127.0.0.1 on port 1573.
    Received:null
   (客户端)
    javax.net.ssl.SSLException: untrusted server cert chain



|
it means that you need to obtain the certificate with IE, export the certificate from IE, and import the certificate into the keystore of server.

Here's how you do it:

Using Internet Explorer, open up the site indicated in the error log. 
Double click on the lock icon in the browser window (bottom, right hand side). 
Select the "Install Certificate..." button under the Certificate window General tab. 
Make note of the Certification Path and click OK. 
Then left click on IE:Tools-->Internet Options..., select the Content tab and select the Certificates... button. 
Search through the tabs to find the certificate you just installed and select export. 
A Certificate Export Wizard appears and assists you with the format. Select the Base-64 encoded X.509 (.CER) format. 
Then ftp (or other means) to the Solaris machine and follow the directions in the tech note to import the certificate into the Restart server

|
javax.net.ssl.SSLException: untrusted server cert chain
的意思是你的服务器应该有一个可以信任的证书。解决办法你可以在
http://www.google.com里输入untrusted server cert chain搜索一下有很多
答案的。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.net.ssl接口handshakecompletedlistener的类成员方法: handshakecompleted定义及介绍
  • SSL VPN解决方案 SSL-Explorer
  • java命名空间javax.net.ssl类sslcontext的类成员方法: getclientsessioncontext定义及介绍
  • windows服务器中检测PHP SSL是否开启以及开启SSL的方法
  • java命名空间javax.net.ssl类sslcontext的类成员方法: getserversessioncontext定义及介绍
  • Linux下怎样配置SSL的Apache服务器
  • java命名空间javax.net.ssl类sslprotocolexception的类成员方法: sslprotocolexception定义及介绍
  • ssl与ssh的区别
  • java命名空间javax.rmi.ssl类sslrmiserversocketfactory的类成员方法: sslrmiserversocketfactory定义及介绍
  • 有谁做关ssl方面的东西,高分想送(分可以加到300)
  • java命名空间javax.net.ssl类sslserversocket的类成员方法: getuseclientmode定义及介绍
  • 请问我要用SSL,在JSP中验证用户时需要怎么作??
  • java命名空间javax.net.ssl类sslserversocket的类成员方法: setuseclientmode定义及介绍
  • 为什么SSL_accept总是返回失败?
  • java命名空间javax.net.ssl类sslsocket的类成员方法: getsupportedprotocols定义及介绍
  • TLS/SSL服务软件 stunnel
  • java命名空间javax.net.ssl类sslcontext的类成员方法: getdefaultsslparameters定义及介绍
  • SSL:前辈们帮忙哦~~
  • java命名空间javax.net.ssl类sslpeerunverifiedexception的类成员方法: sslpeerunverifiedexception定义及介绍
  • 关于mail服务中ssl的问题
  • java命名空间javax.net.ssl类sslcontext的类成员方法: getsupportedsslparameters定义及介绍
  • Linux下的内核SSL如何实现


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3