我正在运行基于Apache MINA / FTP的FTP服务器,在尝试以SSL模式连接时,我一直收到以下异常:
javax.net.ssl.SSLHandshakeException: no cipher suites in common
我已经验证了密码套件在客户端正确设置如下:
SSLServerSocketFactory serverSocketFactory = (SSLServerSocketFactory)
SSLServerSocketFactory.getDefault();
String[] cipherSuites = serverSocketFactory.getDefaultCipherSuites();
SslConfigurationFactory sslConfigFactory = new SslConfigurationFactory();
sslConfigFactory.setKeystoreFile(keyStoreFile);
sslConfigFactory.setKeystorePassword(keyPass);
sslConfigFactory.setEnabledCipherSuites(cipherSuites);
sslConfigFactory.setSslProtocol("SSL");
SslConfiguration sslConfig = sslConfigFactory.createSslConfiguration();
sslFactory.setSslConfiguration(sslConfig);
Listener listener = sslFactory.createListener();
serverFactory.addListener("SSL-listener", listener);
那么,如何验证客户端使用的密码套件是否与服务器端提供的密码套件匹配?
我正在使用FileZilla和Cyberduck进行测试,但我在这些客户端的设置中找不到任何可以说明支持哪些密码套件的内容。
答案 0 :(得分:0)
我发现在JVM的开始时设置sysproperty javax.net.debug =“ssl”然后查看stdout以获取详细报告很有用。
HTH,Axel。