2014-03-19 92 views
0

我正在嘗試通過來自IO::Socket::SSL at CSPAN的SSL示例。無法找到對象方法「SSL_ca_file」

我加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版本。

+0

如果您查看文檔頂部的使用示例,您將找到正確使用SSL_ca_file的方法。 –

+0

Steffen - Under synopsis?這就是我作爲基礎項目/程序所使用的內容(並引用了參考文獻)。但是使用示例不包含'SSL_ca_file'。 – jww

+1

是的,在大綱中:http://search.cpan.org/~sullr/IO-Socket-SSL-1.969/lib/IO/Socket/SSL.pm - 並且這些參數甚至在大綱中的示例中進行了評論。 –

回答

1

SSL_ca_file是針對IO::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例子是否有幫助。

+0

是的,缺少的報價是一個錯字。固定。 – Miller

+0

完美,感謝您的鏈接和幫助。 – jww

相關問題