尝试将POST消息发送到网站时,我收到证书错误。
我收到的错误:LWP::Protocol::https::Socket: SSL connect attempt failed error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed at /usr/lib/perl5/site_perl/5.8.8/LWP/Protocol/http.pm line 49
我正在使用的代码是:
my $webpage = "";
my $ua = LWP::UserAgent->new( );
$ua->agent('Mozilla');
$webpage = "https://mysite:444/myapp/app.aspx";
my $msg = 'An XML Message';
my $req = POST $webpage,
Content_Type => 'text/xml',
Content => $msg;
到目前为止,我已经尝试了一些在网上找到的“修复程序”:
尝试通过环境变量禁用验证主机名:
$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME}=0;
尝试通过ssl_opts禁用验证主机名:
my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 }, );
尝试使用Mozilla CA并将HTTPS_CA_FILE设置为
/usr/lib/perl5/site_perl/5.8.8/Mozilla/CA/cacert.pem
?在这一点上,我无法尝试,所以我希望有人以前遇到过此问题并可以提供帮助。
最佳答案
这只是一个错字,请使用“ verify_hostname”而不使用“ s”:
我的$ ua = LWP :: UserAgent-> new(ssl_opts => {verify_hostname => 0},);
关于perl - PERL Get_Server_Certificate证书验证失败错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27692063/