2009-03-30 14 views
6

J'écris un service web en Perl qui fonctionnera sous SSL (HTTPS) avec des certificats clients. Comment puis-je déterminer quel certificat est utilisé par le client dans la connexion actuelle pour pouvoir filtrer les certificats indésirables?Comment puis-je déterminer quel certificat client SSL une connexion utilise dans mod_perl?

Remarque: le service Web est en cours d'exécution en tant que script mod_perl.

+0

Est-ce que ce sera un script cgi ou mod_perl ou allez-vous ouvrir le socket du serveur d'écoute vous-même? – innaM

+0

ce sera un script mod_perl. Je pensais utiliser SOAP :: WSDL :: Server :: Mod_Perl2 – Sklivvz

Répondre

4

trouvé la réponse sur PerlMonks:

Utilisez le 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'); 

    ... 
    } 

environnement mod_ssl référence here.