我正在进一步努力让这个 SSL 连接正常工作,但如果有人能告诉我为什么我的小程序会触发“sslv3 警报证书未知”错误,那就太好了。我通过运行“openssl s_server”和(尝试)发现了这个错误使用我的 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 alert certificate unknown”表示服务器证书的格式您的 Java 客户端无法理解。
关于Java SSL 握手问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598287/