Perl LWP::Simple HTTPS error

10,188

Perhaps the following will be helpful:

use strict;
use warnings;
use LWP::UserAgent;
use open qw(:std :utf8);

my $ua = LWP::UserAgent->new( ssl_opts => { verify_hostname => 0 } );
my $response = $ua->get('https://<website>');

if ( $response->is_success ) {
    print $response->decoded_content;
}
else {
    die $response->status_line;
}

See LWP::Protocol::https and LWP::UserAgent.

Share:
10,188
CircuitB0T
Author by

CircuitB0T

Updated on June 04, 2022

Comments

  • CircuitB0T
    CircuitB0T almost 2 years

    I am trying to get the contents of a website and print. The code worked how I wanted it to work with a regular HTTP website, but it will not work with HTTPS.

    I have looked up fixes for this issue, but they are not working in my program. This is the code I currently have:

    #! usr/bin/perl
    use strict;
    use warnings;
    use LWP::Simple;
    use LWP::UserAgent;
    use 5.014;
    
    $ENV{PERL_LWP_SSL_VERIFY_HOSTNAME} = 0;
    
    my $ua = LWP::UserAgent->new();
    $ua->ssl_opts( verify_hostnames => 0 );
    
    getprint('https://<website>')or die 'Unable to get page';
    

    And this is the error I am getting:

    500 Can't connect to <IP address>:443 (certificate verify failed) <URL:https://<website>>
    
  • Richard Huxton
    Richard Huxton about 10 years
  • Kenosis
    Kenosis about 10 years
    @CircuitB0T - As a clarification, did it work for you when verify_hostname => 0 or verify_hostname => 1?