Add
use IO::Socket::SSL qw(debug99);
and you'll get this from a.exe
DEBUG: IO/Socket/SSL.pm:1213: Invalid certificate authority locationse
+rror:02001003:system library:fopen:No such process
SSL error: 1724: 1 - error:2006D080:BIO routines:BIO_new_file:no such
+ file
SSL error: 1724: 2 - error:0B084002:x509 certificate routines:X509_lo
+ad_cert_crl_file:system lib
Problem, PAR doesn't know about C:\perl\site\5.14.1\lib\Mozilla\CA\cacert.pem, it doesn't pack it along with C:\perl\site\5.14.1\lib\Mozilla\CA.pm
Solution, add the file with
-a "C:\perl\site\5.14.1\lib\Mozilla\CA\cacert.pem;cacert.pem"
then in your .pl tell LWP about it
$ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catdir( $ENV{PAR_TEMP}, 'cacert.pem');
update: After testing, I see cacert.pem doesn't end up in root, so you'd have to something like
$ENV{PERL_LWP_SSL_CA_FILE} = File::Spec->catdir( $ENV{PAR_TEMP}, qw[ i
+nc perl site 5.14.1 lib Mozilla CA cacert.pem ] );
Or specify a path where to install, like
-a "C:\perl\site\5.14.1\lib\Mozilla\CA\cacert.pem;/cacert.pem"
forget it, you'd have to use PAR::read_file for it to get unpacked, bah caveats
If Mozilla::CA had used File::ShareDir, you would simply add use File::ShareDir::PAR; to your .pl and it would just work
So, the bugs are as follows
- IO::Socket::SSL doesn't give a useful error message to LWP::Protocol::https, so LWP can't give you a useful error message -- you shouldn't need debuging to learn which critical/fatal error occurred
- Mozilla::CA doesn't use File::ShareDir
- PAR doesn't automagically add File::ShareDir::PAR when it detects File::ShareDir
- File::ShareDir::PAR is still experimental :)
- PAR doesn't have an option to detect/pack ssleay32.dll libeay32.dll
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.