每次客户端一连,服务端就报javax.net.ssl.SSLHandshakeException: no cipher suites in common,连接就断了,求解释
服务端代码如下:
package com.test.niossl;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.nio.ByteBuffer;
import java.nio.channels.SelectionKey;
import java.nio.channels.Selector;
import java.nio.channels.ServerSocketChannel;
import java.nio.channels.SocketChannel;
import java.security.KeyStore;
import java.util.Iterator;
import javax.net.ssl.KeyManagerFactory;
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLEngine;
import javax.net.ssl.SSLEngineResult;
import javax.net.ssl.TrustManagerFactory;
import javax.net.ssl.SSLEngineResult.HandshakeStatus;
import javax.net.ssl.SSLEngineResult.Status;
import javax.net.ssl.SSLSession;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.fastjson.JSONObject;
public class SSLHandshakeServer {
private static Logger logger = LoggerFactory.getLogger(SSLHandshakeServer.class);
private SocketChannel sc;
private SSLEngine sslEngine;
private Selector selector;
private ByteBuffer myNetData;
private ByteBuffer myAppData;
private ByteBuffer peerNetData;
private ByteBuffer peerAppData;
private ByteBuffer dummy = ByteBuffer.allocate(1000);
private HandshakeStatus hsStatus;
private Status status;
public void run() throws Exception{
char[] password = "1234kp".toCharArray();
KeyStore keyStore = KeyStore.getInstance("JKS");
InputStream in = this.getClass().getResourceAsStream("D:\\Ss_myeclipse_workspce\\test2\\src\\main\\resources\\certificate/server.jks");
keyStore.load(in, password);
KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");
kmf.init(keyStore, password);
KeyStore trustStore = KeyStore.getInstance("JKS");
trustStore.load(new FileInputStream("D:\\Ss_myeclipse_workspce\\test2\\src\\main\\resources\\certificate/serverTrust.jks"),
"1234sp".toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("SunX509");
tmf.init(trustStore);