0
嗨我想从一个Perl脚本获取SSL证书。主要目的是检查不可信的SSL证书,如here所述。但是我不确定如何继续。我没有证书颁发机构,我可以检查证书,因此甚至可以使用有效证书的URL来引发错误。下面是我写的试图获得SSL证书错误
#!/usr/bin/perl
require LWP::UserAgent;
use Crypt::SSLeay::CTX;
use Crypt::SSLeay::Conn;
use Crypt::SSLeay::X509;
use LWP::Simple qw(get);
$ENV{HTTPS_DEBUG} = 1;
my $ua = LWP::UserAgent->new;
#$ua->ssl_opts(verify_hostname => "true");
$ua->timeout(300);
my $req = HTTP::Request->new(GET => 'https://abcdefxyz.com');
my $res = $ua->request($req);
print $res->headers_as_string . "\n" . $res->status_line;
我跑它这样
perl的test2.pm>测试
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server key exchange A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
这里是相同输出的代码。
Connection: close
Date: Tue, 29 Mar 2011 01:56:44 GMT
Server: Server
Vary: Accept-Encoding,User-Agent
WWW-Authenticate: Negotiate
WWW-Authenticate: Basic realm="abc (Windows) Login"
Content-Length: 401
Content-Type: text/html; charset=iso-8859-1
Client-Date: Tue, 29 Mar 2011 01:56:44 GMT
Client-Peer: 127.0.0.1:5443
Client-Response-Num: 1
Client-SSL-Cert-Issuer: /C=US/ST=Illinois/L=Chicago/O=abcdefxyz.com /CN=abcdefxyz.com
Client-SSL-Cert-Subject: /C=US/ST=Illinois/L=Chicago/O=abcdefxyz.com /CN=abcdefxyz.com
Client-SSL-Cipher: DHE-RSA-AES256-SHA
Client-SSL-Warning: Peer certificate not verified
Client-Warning: Unsupported authentication scheme 'negotiate'
Title: 401 Authorization Required
X-Pad: avoid browser bug
401 Authorization Required
反正我有没有获得本地CA文件的SSL证书的错误类型的证书。我在这里是一个新手和perl,所以非常感激有用的见解。
安装[Mozilla :: CA](http://search.cpan.org/perldoc/Mozilla::CA),看看是否有帮助。 – 2011-03-29 03:15:56