Java SSL握手问题

Java SSL握手问题,java,ssl,applet,rsa,Java,Ssl,Applet,Rsa,我正朝着让这个SSL连接工作的方向前进,但是如果有人能告诉我为什么我的小程序会触发“sslv3警报证书未知”错误,那就太好了。我通过运行“openssl s_服务器”和(尝试)发现了这个错误使用我的Java客户端连接到它。我将包括程序的源代码。我听说可能是缺少信任存储,但我创建了一个,它没有帮助 public class first extends JApplet { PrintWriter toServer = null; BufferedReader fromServer

我正朝着让这个SSL连接工作的方向前进,但是如果有人能告诉我为什么我的小程序会触发“sslv3警报证书未知”错误,那就太好了。我通过运行“openssl s_服务器”和(尝试)发现了这个错误使用我的Java客户端连接到它。我将包括程序的源代码。我听说可能是缺少信任存储,但我创建了一个,它没有帮助

public class first extends JApplet  {

    PrintWriter toServer = null;
    BufferedReader fromServer = null;

    public void init() {

        System.setProperty("javax.net.ssl.keyStore", "javakeys");
        System.setProperty("javax.net.ssl.keyStorePassword", "javakeys");
        System.setProperty("javax.net.ssl.trustStore", "truststore.ts"); 
        System.setProperty("javax.net.ssl.trustStorePassword", "javakeys"); 

try {

        SSLSocketFactory sslsocketfactory = (SSLSocketFactory) SSLSocketFactory.getDefault();
        SSLSocket sslsocket = (SSLSocket) sslsocketfactory.createSocket("localhost", 4000);

        toServer = new PrintWriter(sslsocket.getOutputStream(), true);

        toServer.println("Flystar\n\r");

        InputStreamReader isr = new InputStreamReader(sslsocket.getInputStream());
        fromServer = new BufferedReader(isr, 1);

        JOptionPane.showMessageDialog( null, fromServer );


    } catch (Exception exception) {
            exception.printStackTrace();
    }

//      toServer.println("Flystar".getBytes());

    }

    public void paint(Graphics g) {

        g.setColor( Color.red );
        g.drawString("Welcome to Java!!", 50, 60 );
    }


}
谢谢,
-罗兰

“sslv3警报证书未知”表示服务器证书的格式您的Java客户端无法理解。

是服务器端(.key)的问题或者Java客户端公共证书?我需要创建一个签名的jar吗?@user1220811冷静!你的问题在于服务器的证书,正如我已经说过的,也就是说,在另一端:不在你的代码中,你的jar、你的证书、你的密钥……我可以使用“openssl s_client”很好地连接到我的服务器“这一切似乎都很好end@user1220811因此openSSL客户端理解服务器证书。但是Java没有。因此,除非您准备好不使用Java客户机,否则一切都不是“好的”。