【问题标题】:Use Perl to download files from website that requires a p12 certificate使用 Perl 从需要 p12 证书的网站下载文件
【发布时间】:2013-02-14 22:45:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: perl lwp


    【解决方案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 上。请告诉我们您遇到的错误。

    问候,

    【讨论】:

    • 抱歉,我提出了与 OpenSSL 有关的部分问题,直到我确定我什至需要它来完成我正在尝试做的事情。
    • 或者,安装 cygwin 并使用它的 openssl 实用程序。
    • openssl 实用程序与草莓 perl 捆绑在一起,只需尝试从命令提示符运行“openssl”
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您将 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
      

      【讨论】:

        猜你喜欢
        • 2016-10-17
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-10
        相关资源
        最近更新 更多