2009-03-30 16 views
6

Ich schreibe einen Webdienst in Perl, der unter SSL (HTTPS) mit Clientzertifikaten ausgeführt wird. Wie kann ich feststellen, welches Zertifikat vom Client in der aktuellen Verbindung verwendet wird, damit ich unerwünschte herausfiltern kann?Wie kann ich feststellen, welches SSL-Client-Zertifikat eine Verbindung in mod_perl verwendet?

Hinweis: Der Webservice wird als mod_perl-Skript ausgeführt.

+0

Wird dies ein cgi oder mod_perl Skript sein oder wirst du den listening Server Socket selbst öffnen? – innaM

+0

wird es ein mod_perl Skript sein. Ich habe über SOAP :: WSDL :: Server :: Mod_Perl2 nachgedacht – Sklivvz

Antwort

4

Konnten Sie die Antwort auf PerlMonks:

Verwenden 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 Umgebung Referenz here.