请教:怎么实现ftp + ssl 访问服务器,并上传文件 【急】!!

我终于知道为什么你那个可以连接了,因为你那个服务器没有真正的启动SSL功能,而且端口都还是ftp 的默认端口“21”

请看看下面一个介绍:


一般的FTP服务器是以明文方式传输数据的,安全性极差,信息很容易被盗,即使它提供了SSL加密功能,默认情况下也可能没有启用,如大家常用的Serv-U FTP服务器(以下简称Serv-U)。为了保证特殊环境下的数据安全,有时是有必要启用SSL功能的。下面笔者以Serv-U服务器为例,介绍如何启用SSL加密功能。

创建SSL证书

要想使用Serv-U的SSL功能,当然需要SSL证书的支持才行。虽然Serv-U 在安装之时就已经自动生成了一个SSL证书,但这个默认生成的SSL证书在所有的Serv-U服务器中都是一样的,非常不安全,所以我们需要手工创建一个新的SSL证书。
笔者以Serv-U5.0汉化版为例,在“Serv-U管理员”窗口中,展开“本地服务器→设置”选项,然后切换到“SSL证书”标签页,在这里笔者创建一个新的SSL证书。

首先在“普通名称”栏中输入FTP服务器的IP地址,接着其它栏目的内容,如电子邮件、组织和单位等,根据用户的情况进行填写,完成SSL证书标签页中所有内容的填写后,点击下方的“应用”按钮即可,这时Serv-U就会生成一个新的SSL证书。

启用SSL功能

虽然为Serv-U服务器创建了新的SSL证书,但默认情况下,Serv-U是没有启用SSL功能的,要想利用该SSL证书,首先要启用Serv-U的SSL功能才行。

这里笔者要启用Serv-U服务器中域名为“RTJ”的SSL功能。在“Serv-U管理员”窗口中,依次展开“本地服务器→域→ RTJ”选项,然后在右侧的“域”管理框中找到“安全性”下拉列表选项。这里Serv-U提供了3种选项,分别是“仅仅规则FTP,无SSL/TLS进程”、“允许SSL/TLS和规则进程”、“只允许SSL/TLS进程”,默认情况下,Serv-U使用的是“仅仅规则FTP,无SSL/TLS进程”,因此是没有启用SSL加密功能的。在这里,笔者在“安全性”下拉选项框种选择“只允许SSL/TLS进程”选项,然后点击“应用”按钮,即可启用RTJ域的SSL功能。

注意:启用了SSL功能后,Serv-U服务器使用的默认端口号就不再是“21”了,而是“990”了,这点FTP用户一定要留意,否则就会无法成功连接Serv-U服务器。



不是990,这文章我看过。我昨天晚上特地试验了。没有990端口开放的。

你看服务端的日志就证明确实是SSL.
引用:
AUTH TLS
234 AUTH command OK. Initializing SSL connection.
USER skyover
331 User name okay, need password.
PASS xxxxx
230 User logged in, proceed.
PBSZ 0
200 PBSZ command OK. Protection buffer size set to 0.
我参考以老外的写过一个,比较慢,好久没用了,晚上回家看看能不能找到。
恩,说的也是!
那既然我可以连上你给的地址,说明我客户端的环境应该没什么问题吧?!

是不是服务器的问题呢?你用flashfxp 连接的时候站点是怎么配置的呢?

还有你方便告诉一下,你服务器配置SSL的步骤吗?
引用:
原帖由 iceskysl 于 2007-8-17 15:03 发表
我参考以老外的写过一个,比较慢,好久没用了,晚上回家看看能不能找到。
引用:
原帖由 caicai89 于 2007-8-17 15:12 发表
恩,说的也是!
那既然我可以连上你给的地址,说明我客户端的环境应该没什么问题吧?!

是不是服务器的问题呢?你用flashfxp 连接的时候站点是怎么配置的呢?

还有你方便告诉一下,你服务器配置SSL的步骤吗?
不需要什么证书吗?

我配置的flashfxp访问我要连接的服务器的时候都有一个什么证书弹出来
flashfxp会有的。我是指服务端。
可以的。你再试试,使用new(host)的方式来初始化。
我昨天试了好像不能指定port
直接用new肯定不行的了!
因为new 如果指定连了host,就会执行connect,默认port是“21”,而我要连接的服务器是指定了一个端口的。所以必须用无参的new 和 带 ip,port 参数的connect来连接

用ftp = Net::FTPTLS.new() ; ftp.connect( “www.nbun.com”,21)
与ftp = Net::FTPTLS.new("www.nbun.com") 是同样的效果