这是我的代码
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
发布于 2013-03-16 08:14:55
信息是明确的。您正在与明文对等方对话SSL。该主机的端口21上是否真的有FTPS服务器?
发布于 2016-01-28 06:04:16
请确保使用正确的安全设置,例如FTPClient.SECURITY_FTPS或FTPClient.SECURITY_FTPES
FTPS (基于隐式
/SSL)和FTPES (基于显式TLS/SSL)
https://stackoverflow.com/questions/15434338
复制相似问题