簡體   English   中英

錯誤:500 無法連接到 example.com:443(證書驗證失敗)

[英]Error: 500 Can't connect to example.com:443 (certificate verify failed)

我得到那個錯誤。 這是我的代碼。

   use LWP::UserAgent;
    use HTTP::Request::Common qw(POST);
    use HTTP::Cookies;

$URL="https://example.com/my.plicy";
$UA = LWP::UserAgent->new();
$UA->ssl_opts( verify_hostnames => 0 ); 
#UA->ssl_opts( SSL_ca_file => Mozilla::CA::SSL_ca_file() );

$req =HTTP::Request::Common::POST("$URL",
   Content_type=>'form-data',
   Content =>[
         'username'=>'111',
         'password'=>'2222',
         'vhost'=>'standard'
   ]
);
$req->header('Cookie' =>q(TIN=287000; LastMRH_Session=439960f5; MRHSession=78c9c47291c1fcedae166121439960f5));


$resp=$UA->request($req);

if( ($resp->code() >= 200) && ($resp->code() <400) ) {
  print $resp->decoded_content;

}else{
  print "Error: ". $resp->status_line. "\n";
}
   

問題是我沒有真正的證書可以提供,因為該站點處於開發階段,並且使用了本地主機的證書......瀏覽器無法識別它。

有沒有辦法繞過驗證? 並避免錯誤?

更新:

我稍微改變了我的代碼。 添加了另一個庫並添加了此功能:

use CACertOrg::CA;

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

$UA->ssl_opts(
    verify_hostnames => 0,
    SSL_ca_file      => CACertOrg::CA::SSL_ca_file()
);

現在我明白了:


不推薦使用 SSL_VERIFY_NONE 的默認 SSL_verify_mode 客戶端! 請將 SSL_verify_mode 與 SSL_ca_file|SSL_ca_path 一起設置為 SSL_VERIFY_PEER 以進行驗證。 如果您真的不想驗證證書並保持連接對中間人攻擊開放,請在您的應用程序中將 SSL_verify_mode 顯式設置為 SSL_VERIFY_NONE。


在 C:/Perl/lib/LWP/Protocol/http.pm 第 31 行。

所以我把選項改成這樣:

    $UA->ssl_opts(
     SSL_verify_mode   => 'SSL_VERIFY_NONE',
    verify_hostnames => 0,
    SSL_ca_file      => CACertOrg::CA::SSL_ca_file()
);

我什么也沒打印……不過我沒有收到錯誤消息。 這是一個好兆頭嗎?

您需要在use ..部分后添加這一行:

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;

試試這個

my $UA   = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0, } );

在這里挖掘屍體,但我處於相同的位置,這是您需要包含的內容才能修復它;)

$ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
$ENV{PERL_LWP_SSL_CA_FILE} = "/path/to/your/cert.pem";

當您使用自簽名證書時,僅將 verify_hostnames 設置為 0 是不夠的。

這些解決方案都不適用於我(上次更新兩年半后......但仍然是頂級搜索結果) - 我需要一個額外的包:

cpan install LWP::Protocol::https

沒有對我的代碼做任何進一步的修改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM