套接字HTTPS(SSL) - Java

时间:2013-10-22 13:02:11

标签: java sockets ssl https

我有以下代码用于使用套接字并通过https连接:

public static void main(String[] argv) throws Exception {
    SSLServerSocketFactory factory = (SSLServerSocketFactory) SSLServerSocketFactory.getDefault();
    SSLServerSocket serverSocket = (SSLServerSocket) factory.createServerSocket(8080);
    String[] suites = serverSocket.getSupportedCipherSuites();
    for (int i = 0; i < suites.length; i++) {
        System.out.println(suites[i]);
    }
    serverSocket.setEnabledCipherSuites(suites);
    String[] protocols = serverSocket.getSupportedProtocols();
    for (int i = 0; i < protocols.length; i++) {
        System.out.println(protocols[i]);
    }
    while (!serverSocket.isClosed()) {
        SSLSocket socket = (SSLSocket) serverSocket.accept();
        socket.startHandshake();
        DataOutputStream ClienteEscribir = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
        ClienteEscribir.write("Hi".getBytes());

        ClienteEscribir.close();
        socket.close();
    }
    serverSocket.close();
}

每次客户端连接时,我都会收到此错误:

SSLv2Hello
SSLv3
TLSv1
TLSv1.1
TLSv1.2
Exception in thread "main" javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
    at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:541)
    at sun.security.ssl.InputRecord.read(InputRecord.java:374)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1294)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1321)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1305)
    at Main.main(Main.java:21)
Java Result: 1

有什么想法吗?

0 个答案:

没有答案