2009-03-30 8 views
6

Sto scrivendo un servizio Web in Perl che verrà eseguito in SSL (HTTPS) con certificati client. Come posso determinare quale certificato viene utilizzato dal client nella connessione corrente in modo da poter filtrare quelli indesiderati?Come posso determinare quale certificato client SSL sta usando una connessione in mod_perl?

Nota: il servizio Web viene eseguito come script mod_perl.

+0

Questo sarà uno script cgi o mod_perl o aprirai tu stesso la presa del server di ascolto? – innaM

+0

sarà uno script mod_perl. Stavo pensando di usare SOAP :: WSDL :: Server :: Mod_Perl2 – Sklivvz

risposta

4

trovato la risposta su PerlMonks:

Utilizzare il Apache::SSLLookup module

sub handler { 
    my $r = Apache::SSLLookup->new(shift); 
    my $request_is_over_ssl = $r->is_https; 
    my $certificate = $r->lookup_var('SSL_CLIENT_CERT'); 

    ... 
    } 

mod_ssl ambiente di riferimento here.

Problemi correlati