#!/usr/local/bin/perl -w
# DEBUGGING SWITCH / LOW LEVEL SSL DIAGNOSTICS
$ENV{HTTPS_DEBUG} = 1;
# DEFAULT SSL VERSION
$ENV{HTTPS_VERSION} = '3';
# CLIENT PKCS12 CERT SUPPORT
$ENV{HTTPS_PKCS12_FILE} = 'test.p12';
$ENV{HTTPS_PKCS12_PASSWORD} = 'PASSWORD';
use strict;
use WWW::Mechanize;
my $agent = WWW::Mechanize->new( autocheck => 1 );
# Can we access the host?
my $response = $agent->get("https://hostname/secure/area");
print $response->content;
####
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 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 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
SSL3 alert read:fatal:certificate unknown
SSL_connect:failed in SSLv3 read finished A
Error GETing https://hostname/secure/area: read failed: error:14094416:SSL routines:SSL3_READ_BYTES:sslv3 alert certificate unknown | error:140940E5:SSL routines:SSL3_READ_BYTES:ssl handshake failure at ./test.pl line 26
####
openssl pkcs12 -in test.p12 -out test.crt -clcerts -nokeys
openssl pkcs12 -in test.p12 -out test.key -nodes -nocerts
openssl pkcs12 -in test.p12 -out cacerts.crt -nokeys -cacerts
####
openssl s_client -cert test.crt -key test.key -CAfile cacerts.crt -connect hostname:443