我在嘗試將POST消息發送到網站時收到證書錯誤。PERL Get_Server_Certificate證書驗證失敗錯誤
我收到的錯誤:
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;
到目前爲止,我已經嘗試了一些「補丁」,我」 ve在線發現:
試圖通過環境變量禁用驗證主機名: $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
試過嗎?
在這一點上,我沒有選擇嘗試,所以我希望有人遇到過這個問題,可以提供援助。
請指出您正在使用的庫的哪些版本,即perl -MLWP :: UserAgent -e'警告LWP :: UserAgent-> VERSION''和LWP :: Protocol :: https和IO相同: :插座:: SSL。同時檢查訪問是否使用普通瀏覽器獲得成功,或者是否對無效證書抱怨。 –
哇!我認爲你在釘上擊中它!我的LWP :: UserAgent和IO :: Socket :: SSL是最新版本,但LWP :: Protocol :: https庫甚至沒有安裝。 雖然試圖安裝它,但我掛斷了http-nb.t 1/14 你以前遇到過這個嗎? –
如果將LWP :: UserAgent安裝爲最新版本,則不會在未安裝LWP :: Protocol :: https的情況下執行任何HTTPS請求,因此您不應該得到有關證書驗證問題的此SSL相關錯誤消息。不,我沒有得到測試中的錯誤,但請注意Perl 5.8.8。是一箇舊的,完全不受支持的版本(甚至不是5.8.x系列的最後一個版本),並且可能會有一些問題沒有人修復。 –