无法定位对象方法" SSL_ca_file"

时间:2014-03-19 04:03:55

标签: perl sockets ssl methods

我正在尝试使用IO::Socket::SSL at CSPAN中的SSL示例。

我在示例中添加了SSL_ca_file

$client->SSL_ca_file('ca-rsa-cert.pem')
        || die "failed to set CA certificate";

当我尝试执行脚本时,我得到:

Can't locate object method "SSL_ca_file" via package "IO::Socket::SSL"

任何想法我可能做错了什么?谷歌没有提出有用的回应。

编辑:当我尝试使用米勒的建议时:

my $client = IO::Socket::SSL->new("example.com:8443",
        SSL_ca_file => 'ca-rsa-cert.pem')
        || warn "I encountered a problem: ".IO::Socket::SSL::errstr();

我收到错误:

Odd number of elements in hash assignment at /usr/share/perl5/IO/Socket/IP.pm line 328.
I encountered a problem: IO::Socket::IP configuration failed error:00000000:lib(0):func(0):reason(0) at ./TestCert.pl line 6.

编辑:按照米勒提供的文档,一切正常:

my $client = IO::Socket::SSL->new(
        PeerAddr => 'example.com',
        PeerPort => '8443',
        Proto    => 'tcp',
        SSL_ca_file => 'ca-rsa-cert.pem')
        || warn "I encountered a problem: ".IO::Socket::SSL::errstr();

系统是Debian Wheezy(7.3,x64)。 PERL是版本5.14.2。

1 个答案:

答案 0 :(得分:2)

SSL_ca_fileIO::Socket::SSLnew构造函数的可用选项。它不是一种可用的方法。

my $client = IO::Socket::SSL->new(
    SSL_ca_file => 'ca-rsa-cert.pem',
) or warn "I encountered a problem: ".IO::Socket::SSL::errstr();

我之前从未需要使用此模块,但是文档声明如果有帮助,则example directory包中有示例。