【问题标题】:ColdFusion FTP Explicit TLSColdFusion FTP 显式 TLS
【发布时间】:2013-05-16 09:50:15
【问题描述】:

是否可以使用显式 TLS 进行 ColdFusion FTP 连接?

我在谷歌上搜索过,但无济于事。

【问题讨论】:

  • 你试过了吗?如果是这样,但它不起作用,你得到了什么错误?您是否在询问使用cfftp 标签?您正在运行什么版本的 ColdFusion?在什么操作系统上?我们需要更多信息来帮助您,但我想说第一步就是尝试一下,看看会发生什么。如果它失败了,那么回发你尝试过的内容以及它是如何失败的。 Here are the docs for cfftp and secure connections.

标签: coldfusion ftp ftps


【解决方案1】:

Apache Commons 也有一个 FTPSClient 类,我认为它已经在 Coldfusion 的更高版本中可用。

只是添加一个例子。它使用我发现可用的测试服务器。我使用的是 CF 9.0.2,不需要下载任何额外的 jar。

ftpsClient = CreateObject("java","org.apache.commons.net.ftp.FTPSClient").init(JavaCast("boolean",true));
ftpsClient.connect(JavaCast("string","ftp.secureftp-test.com"),990);
connected = ftpsClient.isConnected();

WriteOutput("Is Connected:" &  connected & '<br/>');

login = ftpsClient.login('test','test');
WriteOutput("Is Logged in:" &  login & '<br/>');


ftpsClient.logout();
ftpsClient.disconnect();
connected = ftpsClient.isConnected();

WriteOutput("Is Connected:" &  connected & '<br/>');

【讨论】:

  • 我在这段代码中使用的测试服务器不再可用,但我设置了自己的本地服务器进行测试
【解决方案2】:

除非在 CF10 中有所改变,否则CFFTP 支持secure FTP,但不支持SFTPFTPS。您可能需要使用 FTP4J 之类的 java 库,如 this blog 中所述。

来自FTP4J documentation

FTPS/FTPES 安全连接

ftp4j 库同时支持 FTPS (通过隐式 TLS/SSL 的 FTP)和 FTPES(通过显式 TLS/SSL 的 FTP)。

setSecurity() 方法可用于开启该功能:

client.setSecurity(FTPClient.SECURITY_FTPS); // 启用 FTPS client.setSecurity(FTPClient.SECURITY_FTPES); // 启用 FTPES

正如 Miguel-F 指出的那样,如果您在这两行上切换注释,它应该启用 FTPES。

//FTPClient.setSecurity(FTPClient.SECURITY_FTPES); // enables FTPES
FTPClient.setSecurity(FTPClient.SECURITY_FTPS); // enables FTPS

【讨论】:

  • 由于我们给出了相同的答案,甚至引用了相同的博客文章,而你比我早了几秒钟,所以我删除了我的答案并投票赞成你的答案。摸摸我的朋友... ;)
  • 不,继续保持,您引用了启用 ftpes 所需的代码行。我也会投票给你。
  • 没什么大不了的,只需添加对您的引用即可。谢谢你。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-28
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2011-09-29
相关资源
最近更新 更多