使用Perl从需要p12证书的网站下载文件

时间:2013-02-28 16:31:10

标签: perl lwp

我有一个网站,我需要从中下载文件。该网站需要我拥有的数字证书。我有一个网站提供的p12文件,很容易导入到Windows中,允许访问该网站。我想要做的是从网站下载一堆csv文件并解析它们。

我找到了Net :: SSLeay和Crypt :: SSLeay包。我也看到LWP :: Useragent提到了SSL,但我不确定这是否足以满足我的目的。

所以基本上我需要知道从哪里开始以及哪些包最容易用于此目的 我正在使用草莓perl 5.16.2运行Windows 7

3 个答案:

答案 0 :(得分:4)

借助PKCS #12 certificate命令将openssl pkcs12转换为PEM格式。安装LWP::Protocol::https。将SSL_ca_file parameter设置为指向PEM文件。

答案 1 :(得分:2)

如果您将P12转换为PEM格式,您可以使用:

use Mojo::UserAgent;
my $url = 'https://some.site.com/path/to/file.zip';
my $ua = Mojo::UserAgent->new( max_redirects=>5, 
                               cert=>'client_cert.crt.pem', 
                               key=>'client_cert.key.pem' );
$ua->get($url)->res->content->asset->move_to('downloaded_file.zip');

如果您使用的是草莓perl,首先需要安装Mojo :: UserAgent模块:

c:\> cpan -i Mojo::UserAgent

答案 2 :(得分:1)

从这篇文章看起来我觉得openssl自2006年以来支持64位linux:

http://www.mail-archive.com/openssl-users@openssl.org/msg47285.html

可以在Windows 64bit How do you compile OpenSSL for x64?

上安装它

因此绝对可以在linux上安装它。请告诉我们您的错误。

此致