我發現很多問題與我的問題非常相似,但它們沒有解決問題,所以在這裏我要求您的幫助。LWP/IO :: Socket :: SSL失敗,SSL3_GET_SERVER_HELLO:返回錯誤的密碼
我想從使用https的Perl LWP的網頁獲取數據。 我幾乎可以從我嘗試過的每個站點獲取數據,除了我真正需要使用的站點之外。 我在Windows x64下使用Perl版本v5.18.2。 這是我的基本假例如:
use strict;
use LWP::UserAgent;
use HTTP::Request;
use IO::Socket::SSL qw(debug3);
my $ua = LWP::UserAgent->new;
my $url = 'https://www.domainx.com:443';
my $req = HTTP::Request->new(GET => $url);
my $response = $ua->request($req);
print $response->status_line . "\n";
而導致的響應 - > status_line: 500 Can't connect to www.domainx.com:443
調試用於SSL:
DEBUG: .../IO/Socket/SSL.pm:1890: new ctx 48125200
DEBUG: .../IO/Socket/SSL.pm:393: socket not yet connected
DEBUG: .../IO/Socket/SSL.pm:395: socket connected
DEBUG: .../IO/Socket/SSL.pm:413: ssl handshake not started
DEBUG: .../IO/Socket/SSL.pm:443: using SNI with hostname www.domainx.com
DEBUG: .../IO/Socket/SSL.pm:466: set socket to non-blocking to enforce timeout=180
DEBUG: .../IO/Socket/SSL.pm:479: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:489: ssl handshake in progress
DEBUG: .../IO/Socket/SSL.pm:499: waiting for fd to become ready: SSL wants a read first
DEBUG: .../IO/Socket/SSL.pm:519: socket ready, retrying connect
DEBUG: .../IO/Socket/SSL.pm:479: Net::SSLeay::connect -> -1
DEBUG: .../IO/Socket/SSL.pm:1359: SSL connect attempt failed with unknown error
DEBUG: .../IO/Socket/SSL.pm:485: fatal SSL error: SSL connect attempt failed with unknown error error:14092105:SSL routines:SSL3_GET_SERVER_HELLO:wrong cipher returned
DEBUG: .../IO/Socket/SSL.pm:1924: free ctx 48125200 open=48125200
DEBUG: .../IO/Socket/SSL.pm:1932: OK free ctx 48125200
從檢查以前的職位,我想申請:ssl_opts => {verify_hostname => 0},但這沒有幫助。 如果我嘗試使用瀏覽器(IE或Chrome)連接到相同的網站,它工作得很好。
這是一些基於證書的錯誤還是這裏出了什麼問題?
這是一個握手錯誤,無法通過禁用證書驗證來修復。如果你提供了真正的目標主機名以及IO :: Socket :: SSL的版本和你正在使用的底層openssl,我會很有幫助。 –
實際網站是www.firstcard.fi 和包IO :: Socket :: SSL; - 我們的$ VERSION ='1.962'; 我將不得不檢查openssl -version以後 – tommi