网上看了一些  好像说要导入服务器的信任证书
但是 具体导入到哪里?  不太清楚
还有如果不知道服务器的证书   该怎么办?

解决方案 »

  1.   

    如果做双向的ssl,那么服务器也要验证客户端的证书,这时必须在IE中导入客户端证书。
    如果只是要验证服务器端,那么不导入信任证书也是可以的,不过IE会提醒你。
      

  2.   

    to shenpipi(皮皮) 下面的程序有连接超时的错误
    是什么原因?我想要读出页面的内容需要在哪里导入证书?
    /////////////////////////////////////////////////////////////////////////////
    import javax.net.ssl.SSLSocketFactory;
    import javax.net.ssl.SSLSocket;import com.sun.net.ssl.SSLContext;
    import com.sun.net.ssl.TrustManager;
    import com.sun.net.ssl.X509TrustManager;import java.net.UnknownHostException;
    import java.security.KeyManagementException;
    import java.security.NoSuchAlgorithmException;
    import java.security.cert.CertificateException;
    import java.security.cert.X509Certificate;
    import java.util.Properties;
    import java.io.IOException;
    import java.io.*;
    public class SSLTest { public static void main(String args[])
    {
    /*
    X509TrustManager   xtm   =   new   MyTrustManager();   
    TrustManager   mytm[]   =   {xtm};   

    SSLSocketFactory   factory =null;
    try{
    SSLContext   ctx   =   SSLContext.getInstance("SSL");   
    ctx.init(null,mytm,   null);   

    factory   =   ctx.getSocketFactory();  

    }catch(KeyManagementException e2)
    {
    e2.printStackTrace();
    }catch(NoSuchAlgorithmException e3)
    {
    e3.printStackTrace();
    }

    */
    Properties pro=System.getProperties();
    pro.setProperty("https.proxyHost","172.25.75.2");
    pro.setProperty("https.proxyPort","443");


    SSLSocketFactory factory =(SSLSocketFactory)SSLSocketFactory.getDefault();
    SSLSocket socket=null;
    try{
     socket =
    (SSLSocket)factory.createSocket("72.5.124.61", 443); socket.startHandshake();


    }catch(UnknownHostException e1)
    {
    e1.printStackTrace();
    }catch(IOException e2)
    {
    e2.printStackTrace();
    }


    String getRequest = "GET /" + "index.html" + " HTTP/1.1";
    String hostSpecification = "Host: " + "72.5.124.61";
    System.out.println(getRequest);
    System.out.println(hostSpecification);


    try
    { PrintWriter out = new PrintWriter(
    new BufferedWriter(
    new OutputStreamWriter(
    socket.getOutputStream()))); out.println(getRequest);
    out.println(hostSpecification);
    out.println();
    out.flush(); if (out.checkError())
    System.out.println("SSLSocketClient:  java.io.PrintWriter error"); /* read response */
    BufferedReader in = new BufferedReader(
    new InputStreamReader(socket.getInputStream())); String inputLine;
    while ((inputLine = in.readLine()) != null)
    {
    System.out.println(inputLine);
    } in.close();
    out.close();
    socket.close(); }
    catch(Exception e)
    {
    e.printStackTrace();
    }


    }

    }
    //////////////////////////////////////////////////////////////////////////////
    异常:
    java.net.ConnectException: Connection timed out: connect
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
    at java.net.Socket.connect(Socket.java:507)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:546)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:349)GET /index.html HTTP/1.1
    Host: 72.5.124.61 at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:69)
    at SSLTest.main(SSLTest.java:51)
    java.lang.NullPointerException
    at SSLTest.main(SSLTest.java:77)
      

  3.   

    72.5.124.61  是sun 公司的www.sun.com的ip地址
    to  amozon() 必须手动导入服务器证书 到证书库吗?
    如果不知道服务器的证书 怎么办?
      

  4.   

    老大,以为你要用IE连接https服务器呢。
    用程序的话,好像要导入到keystore里面。具体我也记不清楚了。不好意思
      

  5.   

    pro.setProperty("https.proxyHost","172.25.75.2");
    pro.setProperty("https.proxyPort","443");你这个使用了代理服务器,是不是代理服务器有问题啊。
      

  6.   

    谢谢楼上的  
    原因是网络的问题  
    现在可以读出页面出来了 但是如果过通过代理连接  在程序当中该怎样实现呢?
    下面是我的另一个帖子.
    http://community.csdn.net/Expert/TopicView3.asp?id=5055384
    能不能帮忙看哈