그 오류가 발생합니다. 다음은 내 코드입니다.
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";
}
probelm은 사이트가 개발 단계에 있고 localhost의 인증서가 사용되기 때문에 제공 할 실제 인증서가 없다는 것입니다. 브라우저가이를 인식하지 못합니다.
확인을 우회하는 방법이 있습니까 ?? 오류를 피합니까?
최신 정보:
코드를 약간 변경했습니다. 다른 라이브러리를 추가하고 다음 기능을 추가했습니다.
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_mode의 기본값 인 SSL_VERIFY_NONE을 사용하는 것은 더 이상 사용되지 않습니다! SSL_verify_mode를 SSL_ca_file | SSL_ca_path와 함께 SSL_VERIFY_PEER로 설정하여 확인하십시오. 인증서를 확인하지 않고 Man-In-The-Middle 공격에 대한 연결을 유지하고 싶지 않다면 애플리케이션에서 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;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다