To continue this exciting debate:

On Mon, Oct 01, 2007 at 07:17:17AM -0700, Bill Moseley wrote:
> Yes, according to man LWP:
> 
>     my $host = $req->uri->host;
>     $req->header( 'If-SSL-Cert-Subject', '\QCN=' . $host );

Oops, that doesn't look right.  Perhaps:

>     $req->header( 'If-SSL-Cert-Subject', qr/\QCN=$host/ );


Hum, but for possible wild card certificates might need something
like:

    my $host = $request->uri->host;
    my $match_string = "CN=(?:\Q$host\E";
    $match_string .= "|\Q$host\E" if $host =~ s/[^.]+(\.[^.]{2,})/*$1/;
    $match_string .= ')';


And a note for the archives:

I was wondering how to get SSLeay to use the default compiled-in CA
directory when using LWP/Crypt::SSLeay, which is done by calling
SSL_CTX_set_default_verify_paths() in SSLeay.

It might be handy to use the defaults in situation where you don't
know where the CA certs are installed in a deployed application.

So the question is how to enable searching the defaults?
Looking at SSLeay.xs I noted that

    SSL_CTX_set_default_verify_paths(ctx);

was always called, but verify is only enabled if HTTPS_CA_DIR or
HTTPS_CA_FILE is set.

So the effect of setting $ENV{HTTPS_CA_DIR} to *any* value
will enable verification and thus searching in the default verify
paths.

That is, if the CA certs are in, say, /etc/ssl/certs and that happens
to be the default path then

    $ENV{HTTPS_CA_DIR} = '/etc/ssl/certs';

and

    $ENV{HTTPS_CA_DIR} = '/whatever';

probably work the same.




-- 
Bill Moseley
[EMAIL PROTECTED]

Reply via email to