Ok, got past that one.. OpenSSL was looking for the certs.pem file where
it didn't exist.. copied that over to the proper location and this
problem was fixed.. Now I have hit an even uglier snag..
I am using the same script and now when I run it on the Solaris box all
of the SSL handshake completes properly, including the client
certitficate parts but the socket seems to be closed by my side before
any response can be sent back from the server. Has anyone else seen this?
Here is the output I get now when running the below script on the
Solaris 8 box..
SSL_connect:before/connect initialization
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server key exchange A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
SSL_connect:SSL renegotiate ciphers
SSL_connect:SSLv3 write client hello A
SSL_connect:SSLv3 read server hello A
SSL_connect:SSLv3 read server certificate A
SSL_connect:SSLv3 read server key exchange A
SSL_connect:SSLv3 read server certificate request A
SSL_connect:SSLv3 read server done A
SSL_connect:SSLv3 write client certificate A
SSL_connect:SSLv3 write client key exchange A
SSL_connect:SSLv3 write certificate verify A
SSL_connect:SSLv3 write change cipher spec A
SSL_connect:SSLv3 write finished A
SSL_connect:SSLv3 flush data
SSL_connect:SSLv3 read finished A
500 (Internal Server Error) read failed:
Net::SSL::die_with_error('Net::SSL=GLOB(0x356870)', 'read failed')
called at /usr/local/lib/perl5/site_perl/5.6.0/sun4-solaris/Net/SSL.pm line
211
Net::SSL::read('Net::SSL=GLOB(0x356870)', '', 4096, 0) called at
/usr/local/lib/perl5/site_perl/5.6.0/LWP/Protocol/http.pm line 193
LWP::Protocol::http::request('LWP::Protocol::https=HASH(0xf713c)',
'HTTP::Request=HASH(0xf5cb0)', undef, undef, undef, 180) called at
/usr/local/lib/perl5/site_perl/5.6.0/LWP/UserAgent.pm line 212
require 0 called at
/usr/local/lib/perl5/site_perl/5.6.0/LWP/UserAgent.pm line 211
LWP::UserAgent::simple_request('LWP::UserAgent=HASH(0x2227bc)',
'HTTP::Request=HASH(0xf5cb0)', undef, undef) called at
/usr/local/lib/perl5/site_perl/5.6.0/LWP/UserAgent.pm line 249
LWP::UserAgent::request('LWP::UserAgent=HASH(0x2227bc)',
'HTTP::Request=HASH(0xf5cb0)') called at ./dammit line 32
Client-Date: Thu, 04 Oct 2001 15:27:56 GM
-Del
Del Simmons wrote:
> Hey everyone..
>
> I am using the following:
>
> machine 1: Linux 2.4.8 (RedHat 7.1 with new kernel)
> machine 2: Solaris 8
>
> packages on both machines:
> openssl version 0.9.6
> perl 5.6.0
> Crypt::SSLeay 0.31
> LWP 5.53
>
> And I have the following code in a script:
> --
> #!/usr/bin/perl
> use strict;
>
> $ENV{HTTPS_CERT_FILE} = 'certs/clcert.pem';
> $ENV{HTTPS_KEY_FILE} = 'certs/key.pem';
>
> $ENV{HTTPS_CA_FILE} = 'certs/cacerts.pem';
> $ENV{HTTPS_CA_DIR} = '/usr/share/ssl/';
>
> $ENV{HTTPS_VERSION} = '3';
> $ENV{_SSL_DEBUG} = '1';
> $ENV{SSL_DEBUG} = '1';
> $ENV{HTTPS_DEBUG} = '1';
>
>
> use HTTP::Request::Common qw(POST);
> use LWP::UserAgent;
>
> my $ua = LWP::UserAgent->new;
> my $req = POST 'https://secure.server.name.net',
> [param => 'value'];
>
> my $res = $ua->request($req);
>
>
> When I run this on machine 1 I get the following:
>
>
> [del@Rhino rioport]$ ./cert_test
> SSL_connect:before/connect initialization
> SSL_connect:SSLv3 write client hello A
> SSL_connect:SSLv3 read server hello A
> SSL_connect:SSLv3 read server certificate A
> SSL_connect:SSLv3 read server key exchange A
> SSL_connect:SSLv3 read server done A
> SSL_connect:SSLv3 write client key exchange A
> SSL_connect:SSLv3 write change cipher spec A
> SSL_connect:SSLv3 write finished A
> SSL_connect:SSLv3 flush data
> SSL_connect:SSLv3 read finished A
> SSL_connect:SSL renegotiate ciphers
> SSL_connect:SSLv3 write client hello A
> SSL_connect:SSLv3 read server hello A
> SSL_connect:SSLv3 read server certificate A
> SSL_connect:SSLv3 read server key exchange A
> SSL_connect:SSLv3 read server certificate request A
> SSL_connect:SSLv3 read server done A
> SSL_connect:SSLv3 write client certificate A
> SSL_connect:SSLv3 write client key exchange A
> SSL_connect:SSLv3 write certificate verify A
> SSL_connect:SSLv3 write change cipher spec A
> SSL_connect:SSLv3 write finished A
> SSL_connect:SSLv3 flush data
> SSL_connect:SSLv3 read finished A
> SSL3 alert read:warning:close notify
> [del@Rhino rioport]$
>
>
>--
>
>
>
> So everything looks good under linux.. When I run it on the Solaris
> machine I get