免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1659 | 回复: 2
打印 上一主题 下一主题

如何在windows平台使用FTPSSL? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-21 02:34 |只看该作者 |倒序浏览
由于FTP都是明文方式,现在客户要求加密,服务端启用FTP的SSL模式,
郁闷啊,由于是生成环境,没有外部网络,就安装一个FTPSSL模块都搞死我了。
好像依赖的模块比较多,我在本机上用ppm install的方式安装,装了好多东西,然后在本机上测试一个例子,如下:
    my $ftps = Net::FTPSSL->new("$ftpHost",
                                Port => 990,
                                Encryption => 'E',
                                Debug => 1)
      or die "Can't open ftp.yoursecureserver.com";
   
    $ftps->login("$ftpHostUser", "$ftpHostPwd")
      or die "Can't login: ", $ftps->$last_message();
   
    $ftps->cwd("$dstdir") or die "Can't change directory: ", $ftps->last_message;
   
    $ftps->put("made.pl") or die "Can't get file: ", $ftps->last_message;
   
    $ftps->quit();

运行报错,显示:
“无法定位序号334于动态链接库LIBEAY32.dll上”

求救啊,是什么回事,同时,如何在封闭网络环境安装FTPSSL呀。手工安装非常麻烦啊,要装C编译器,然后一堆依赖的模块需要拷贝过去,大侠们有无好的解决方案啊。

论坛徽章:
0
2 [报告]
发表于 2012-05-21 22:43 |只看该作者
本帖最后由 meihuaqi 于 2012-05-21 22:54 编辑

我曾经用过的ftps客户端,给你参考一下:
  1. use IO::Socket::SSL;
  2. #use IO::Socket::INET6;


  3. if(!($sock = IO::Socket::SSL->new( PeerAddr => '172.16.73.212',
  4.                                    PeerPort => '990',
  5.                                    Proto    => 'tcp',
  6.                                    SSL_verify_mode => 0x00,
  7.                                    SSL_key_file => 'ca2048_s_interca_1.key',
  8.                                    SSL_cert_file => 'ca2048_s_interca_1.crt',
  9.                                    SSL_use_cert => 1,
  10.                                 ))) {
  11.     warn "unable to create socket: ", &IO::Socket::SSL::errstr, "\n";
  12.     exit(0);
  13. } else {
  14.     warn "connect ($sock).\n" if ($IO::Socket::SSL::DEBUG);
  15. }


  16. print $sock "USER test\r\n" ;
  17. $sock->sysread($data,1024);
  18. print $data;
  19. print $sock "PASS click1\r\n" ;
  20. $sock->sysread($data,1024);
  21. print $data;

  22. while(1)
  23. {
  24.         print $sock "PASV\r\n" ;
  25.         #print $sock "EPSV\r\n" ;
  26.         while(<$sock>)
  27.         {
  28. #               print "$_\n";
  29.                 $data=$_;
  30.                 last if $data=~/(227)|(229)/;
  31.         }

  32.         chomp($data);
  33.         
  34.         if($data=~/\|(\d+)\|/)
  35.         {
  36.                 ($port)=$data=~/\|(\d+)\|/;
  37.         } else {
  38.                 ($num1,$num2)=$data=~/,(\d+),(\d+)\)/;
  39. #               print "num1 is $num1. num2 is $num2\n";
  40.                 $port=$num1*256+$num2;
  41.         }

  42. #        print "the port is $port\n";

  43.         if(!($s = IO::Socket::SSL->new( PeerAddr => '172.16.73.212',
  44.                                            PeerPort => "$port",
  45.                                            Proto    => 'tcp',
  46.                                            SSL_verify_mode => 0x00,
  47.                                           SSL_key_file => 'ca2048_s_interca_1.key',
  48.                                           SSL_cert_file => 'ca2048_s_interca_1.crt',
  49.                                           SSL_use_cert => 1,
  50.                                         ))) {
  51.             warn "unable to create socket: ", &IO::Socket::SSL::errstr, "\n";
  52.             exit(0);
  53.         } else {
  54.             warn "connect ($sock).\n" if ($IO::Socket::SSL::DEBUG);
  55.         }
  56.                                        
  57.         print $sock "RETR hostname.txt\r\n" ;
  58.         #print $sock "RETR vmcore.219\r\n" ;
  59. #        while(<$s>)
  60. #        {
  61. #               
  62. #        }
  63.         $s->sysread($data,1024);
  64.         print "$data";
  65.         close($s);
  66. }
  67. close($sock);
复制代码

论坛徽章:
0
3 [报告]
发表于 2012-05-23 22:13 |只看该作者
谢谢楼上的,我拿来尝试下。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP