[英]ftp4j: client.login returns Unrecognized SSL message, plaintext connection?
这是我的代码
try{
TrustManager[] trustManager = new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() { return null; }
public void checkClientTrusted(X509Certificate[] certs, String authType) {}
public void checkServerTrusted(X509Certificate[] certs, String authType) {}
} };
SSLContext sslContext = null;
sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, trustManager, new SecureRandom());
SSLSocketFactory sslSocketFactory = sslContext.getSocketFactory();
FTPClient client = new FTPClient();
client.setSSLSocketFactory(sslSocketFactory);
client.setSecurity(FTPClient.SECURITY_FTPES);
client.connect("xxx.xxx.xxx", 21);
System.out.println("Connected (" + client.isConnected() + ") to host " + client.getHost() + ":" + client.getPort());
client.login("xxxxx", "xxxxx");
}catch (Exception e) {
e.printStackTrace();
}
运行时返回
Connected (true) to host xxx.xxx.xxx:21
然后在client.login(“ xxxxx”,“ xxxxx”);上断开 有例外
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
知道为什么会这样吗?
Java版本是1.4.2,ftp4j版本是1.7.2
消息很清楚。 您正在与纯文本对等方通信。 该主机的端口21上确实有一个FTPS服务器吗?
请确保使用正确的安全设置,例如FTPClient.SECURITY_FTPS
或FTPClient.SECURITY_FTPES
FTPS(基于隐式TLS / SSL的FTP)和FTPES(基于显式TLS / SSL的FTP)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.