2009-03-30 14 views
6

Estoy escribiendo un servicio web en Perl que se ejecutará bajo SSL (HTTPS) con certificados de cliente. ¿Cómo puedo determinar qué certificado está utilizando el cliente en la conexión actual para poder filtrar los no deseados?¿Cómo puedo determinar qué certificado de cliente SSL está usando una conexión en mod_perl?

Nota: el servicio web se está ejecutando como una secuencia de comandos mod_perl.

+0

¿Será esto una secuencia de comandos cgi o mod_perl o va a abrir el zócalo del servidor de escucha usted mismo? – innaM

+0

será un script mod_perl. Estaba pensando en usar SOAP :: WSDL :: Server :: Mod_Perl2 – Sklivvz

Respuesta

4

encontrado la respuesta en PerlMonks:

Usa el 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 entorno de referencia here.

Cuestiones relacionadas